拓扑如上图
背景:R4 是公司A总部 R5是公司A分公司R6是公司B总部,R7是公司B分公司。R1 R2 R3是isp网络,isp提供mpls ***接入。
需求:实现总公司与分公司的mpls *** 互通。
地址分配:
R1:f0/0 12.1.1.1 f0/1 13.1.1.1 loopback 1.1.1.1
R2:s1/0 24.1.1.2 s1/1 26.1.1.2 f0/0 12.1.1.2 loopback 2.2.2.2
R3:s1/0 35.1.1.3 s1/1 37.1.1.3 f0/0 13.1.1.3 loopback 3.3.3.3
R4:s1/0 24.1.1.4 loopback 4.4.4.4
R5:s1/0 35.1.1.5 loopback 5.5.5.5
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协议,并做单点双向重分发。