拓扑如上图

背景: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 

定义VRFVRFVirtual Routing Forwarding Table×××路由转发表):在一台PE上虚拟出来的一个路由器,包括一些特定的接口,一张路由表,一个路由协议,一个RD和一组RT规则

R2(config)#ip vrf A 

R2(config-vrf)#rd 10:10RDRoute Distinguisher,路由标识):为了防止一台PE接收到远端PE发来的不同VRF的相同路由时不知所措,而加在路由前面的特殊信息。在PE发布路由时加上,在远端PE接收到路由后放在本地路由表中,用来与后来接收到的路由进行比较

R2(config-vrf)#route-target 10:10RTRoute Target:表明了一个VRF的路由喜好,通过他可以实现不同VRF之间的路由互通。他的本质就是BGPcommunity属性。

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上已经学到了打D4.4.4.4的路由。

 

然后把eigrp 90重分发进bgpR3学到这条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

 

 

R3R4上配置路由协议:

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 

R5show ip route 已经学到了打o E24.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 EX5.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-idmpls ldp router-id loopback 0 force

6)部署定义VRF

7)mpls域运行bgp 确切的说是mp bgp

8)***v4 里面激活邻接关系 配置send-community 

9)pe端和客户端运行一个igp协议,并做单点双向重分发。