拓撲如上圖redis
背景:R4 是公司A總部 R5是公司A分公司R6是公司B總部,R7是公司B分公司。R1 R2 R3是isp網絡,isp提供mpls ***接入。網絡
需求:實現總公司與分公司的mpls *** 互通。ide
地址分配:oop
R1:f0/0 12.1.1.1 f0/1 13.1.1.1 loopback 1.1.1.1ui
R2:s1/0 24.1.1.2 s1/1 26.1.1.2 f0/0 12.1.1.2 loopback 2.2.2.2spa
R3:s1/0 35.1.1.3 s1/1 37.1.1.3 f0/0 13.1.1.3 loopback 3.3.3.33d
R4:s1/0 24.1.1.4 loopback 4.4.4.4router
R5:s1/0 35.1.1.5 loopback 5.5.5.5blog
R6:s1/1 26.1.1.6 loopback 6.6.6.6接口
R7:s1/1 37.1.1.7 loopback 7.7.7.7
首先在R1-7上配置ip地址。而後配置mpls域。在mpls域運行一個igp協議。
R1(config)#router eigrp 100
R1(config-router)#no auto-summary
R1(config-router)#network 1.1.1.1 0.0.0.0
R1(config-router)#network 12.1.1.1 0.0.0.0
R1(config-router)#network 13.1.1.1 0.0.0.0
R2(config)#router eigrp 100
R2(config-router)#no auto-summary
R2(config-router)#network 2.2.2.2 0.0.0.0
R2(config-router)#network 12.1.1.2 0.0.0.0
R3(config)#router eigrp 100
R3(config-router)#no auto-summary
R3(config-router)#network 3.3.3.3 0.0.0.0
R3(config-router)#network 13.1.1.3 0.0.0.0
在mpls域里路由器全局配置模式啓用ip cef
R1config)#ip cef
R2(config)#ip cef
R3(config)#ip cef
而後在mpls域全部路由器接口(屬於mpls域的接口)配置mpls ip mpls mtu 1504。
R1(config)#in fa0/0
R1(config-if)#mpls ip
R1(config-if)#mpls mtu 1504
R1(config-if)#in fa0/1
R1(config-if)#mpls ip ^
R1(config-if)#mpls mtu 1504
R2(config)#in fa0/0
R2(config-if)#mpls ip
R2(config-if)#mpls mtu 1504
R3(config)#in fa0/1
R3(config-if)#mpls ip
R3(config-if)#mpls mtu 1504
在R1-3上全局配置模式配置ldp route-id(也能夠不配置會本身選舉)
R1(config)#mpls ldp router-id loopback 0 force
R2(config)#mpls ldp router-id loopback 0 force
R3(config)#mpls ldp router-id loopback 0 force
定義VRF。VRF(Virtual Routing Forwarding Table,×××路由轉發表):在一臺PE上虛擬出來的一個路由器,包括一些特定的接口,一張路由表,一個路由協議,一個RD和一組RT規則
R2(config)#ip vrf A
R2(config-vrf)#rd 10:10(RD(Route Distinguisher,路由標識):爲了防止一臺PE接收到遠端PE發來的不一樣VRF的相同路由時不知所措,而加在路由前面的特殊信息。在PE發佈路由時加上,在遠端PE接收到路由後放在本地路由表中,用來與後來接收到的路由進行比較)
R2(config-vrf)#route-target 10:10(RT(Route Target):代表了一個VRF的路由喜愛,經過他能夠實現不一樣VRF之間的路由互通。他的本質就是BGP的community屬性。)
R2(config-vrf)#exit
R2(config)#in s1/0
R2(config-if)#ip vrf forwarding A (在接口上對vrf進行關聯)
R2(config-if)#ip add 24.1.1.2 255.255.255.0(當接口關聯vrf後,若是以前配置的有ip地址,那麼就會被移除,因此建議當關聯vrf後配置ip地址。)
R2(config-if)#no shut
R3(config)#ip vrf A
R3(config-vrf)#rd 10:10
R3(config-vrf)#route-target 10:10
R3(config-vrf)#exit
R3(config)#in s1/0
R3(config-if)#ip vrf f
R3(config-if)#ip vrf forwarding A
R3(config-if)#ip add 35.1.1.3 255.255.255.0
R3(config-if)#no shut
在mpls域配置 bgp
R2(config)#router bgp 1
R2(config-router)#no au
R2(config-router)#no synchronization
R2(config-router)#bgp router-id 2.2.2.2
RR2(config-router)#neighbor 3.3.3.3 remo
R2(config-router)#neighbor 3.3.3.3 remote-as 1
R2(config-router)#neighbor 3.3.3.3 update-source loopback 0
R2(config-router)#neighbor 3.3.3.3 next-hop-self
R3(config)#router bgp 1
R3(config-router)#no au
R3(config-router)#no synchronization
R3(config-router)#bgp router-id 3.3.3.3
R3(config-router)#neighbor 2.2.2.2 remote-as 1
R3(config-router)#neighbor 2.2.2.2 update-source loopback 0
創建***v4鄰接關係:
R2(config-router)#address-family ***v4
R2(config-router-af)#neighbor 3.3.3.3 activate
R2(config-router-af)#neighbor 3.3.3.3 send-community both
R3(config-router)#address-family ***v4
R3(config-router-af)#neighbor 2.2.2.2 activate
R3(config-router-af)#neighbor 2.2.2.2 send-community both
Mpls基本配置已經完了,如今是配置控制層面,先讓R4迴環口4.4.4.4傳遞到R5:
R4(config)#router eigrp 90
R4(config-router)#no au
R4(config-router)#network 0.0.0.0
R2(config)#router eigrp 90
R2(config-router)#no au
R2(config-router)#address-family ipv4 vrf A
R2(config-router-af)#network 24.1.1.2 0.0.0.0
R2(config-router-af)#autonomous-system (這個命令很重要!)
R2 R4配置好路由協議 在R2上已經學到了打D的4.4.4.4的路由。
而後把eigrp 90重分發進bgp讓R3學到這條4.4.4.4的路由
R2(config)#router bgp 1
R2(config-router)#address-family ipv4 vrf A
R2(config-router-af)#redistribute eigrp 90 metric 10
Show ip bgp all能夠查看到R3經過bgp學到了4.4.4.4路由
Show ip route vrf A
在R3和R4上配置路由協議:
R3(config)#router ospf 110 vrf A
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 35.1.1.3 0.0.0.0 area 0
R5(config)#router ospf 110
R5(config-router)#router-id 5.5.5.5
R5(config-router)#network 0.0.0.0 255.255.255.255 area 0
把bgp路由重分發進ospf:
R3(config)#router ospf 110 vrf A
R3(config-router)#redistribute bgp 1 subnets
在R5上show ip route 已經學到了打o E2的4.4.4.4路由
而後在R3上把OSPF重分發進bgp
R3(config-router)#address-family ipv4 vrf A
R3(config-router-af)#redistribute ospf 110 match internal external 1 external 2
在R2上把bgp重分發進eigrp
R2(config-router)#address-family ipv4 vrf A
R2(config-router-af)#redistribute bgp 1 metric 10000 100 255 1 1500
在R4上查看是否學到了路由:
已經學到了打D EX的5.5.5.5的外部路由。
Ping 5.5.5.5 source 4.4.4.4:
Ok已經通了,說明公司A到公司A分支的mpls *** 已經部署通了
部署公司B及其分支就更加簡單了。
Show running-config
R2上:
R3:
若是公司B被公司A收購了,爲了節約資金,咱們能夠把兩家公司的mpls ***進行合併。
R2(config)#ip vrf A
R2(config-vrf)#route-target 20:20
R2(config)#ip vrf B
R2(config-vrf)#route-target 10:10
R3(config)#ip vrf A
R3(config-vrf)#route-target 20:20
R3(config)#ip vrf B
R3(config-vrf)#route-target 10:10
總結下配置步驟:
1)配置基本ip
2)在mpls域運行igp
3)在mpls域配置ip cef
4)在屬於mpls域的接口配置mpls ip mtu
5)設置ldp router-id:mpls ldp router-id loopback 0 force
6)部署定義VRF
7)在mpls域運行bgp 確切的說是mp bgp
8)在***v4 裏面激活鄰接關係 配置send-community
9)在pe端和客戶端運行一個igp協議,並作單點雙向重分發。