Cisco(59)——Hub&Spoke MPLS

Posted H_Cisco

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cisco(59)——Hub&Spoke MPLS相关的知识,希望对你有一定的参考价值。

目录

一、背景

二、拓扑

三、实现

1.配置IP地址。

2.在ISP域内配置OSPF,启用MPLS。

 3.在两个Spoke的PE(R2、R3)上启用VRF关联接口。

4.在两个Spoke的CE(R5、R6)上启用BGP。

5.在两个Spoke的PE(R2、R3)上回指BGP的邻接关系。

6.ISP域内建立Full Mesh的VPNv4的BGP邻接关系。

7.在Hub的PE(R1)上起两个子接口,关联对应的VRF。

8.在Hub的CE(R4)上起两个子接口。

9.在Hub的CE(R4)上和R1建立BGP。

10.在Hub的PE(R1)上和R4建立BGP.

11.测试。


一、背景

两个Spoke通过Hub做中转实现互访。

二、拓扑

三、实现

1.配置IP地址。

R1(config)#int loo 0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#no shutdown 
R1(config-if)#exit 

R1(config)#int ethernet 0/0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no shutdown 
R1(config-if)#exit 

R1(config)#int ethernet 0/1
R1(config-if)#ip add 13.1.1.1 255.255.255.0
R1(config-if)#no shutdown 
R1(config-if)#exit 
R2(config)#int loo 0
R2(config-if)#ip add 2.2.2.2 255.255.255.255
R2(config-if)#no shutdown 
R2(config-if)#exit

R2(config)#int ethernet 0/1
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no shutdown 
R2(config-if)#exit 

R2(config)#int ethernet 0/0
R2(config-if)#ip add 172.16.25.2 255.255.255.0
R2(config-if)#no shutdown 
R2(config-if)#exit 
R3(config)#int loo 0
R3(config-if)#ip add 3.3.3.3 255.255.255.255 
R3(config-if)#no shutdown
R3(config-if)#exit 

R3(config)#int e0/0
R3(config-if)#ip add 13.1.1.3 255.255.255.0
R3(config-if)#no shutdown 
R3(config-if)#exit

R3(config)#int e0/1
R3(config-if)#ip add 172.16.36.3 255.255.255.0
R3(config-if)#no shutdown 
R3(config-if)#exit 
R4(config)#int loo 0
R4(config-if)#ip add 172.16.4.4 255.255.255.255
R4(config-if)#no shutdown 
R5(config)#int loo 0
R5(config-if)#ip add 172.16.5.5 255.255.255.255
R5(config-if)#no shutdown 

R5(config)#int e0/0
R5(config-if)#ip add 172.16.25.5 255.255.255.0
R5(config-if)#no shutdown 
R5(config-if)#exit 
R6(config)#int loo 0
R6(config-if)#ip add 172.16.6.6 255.255.255.255
R6(config-if)#no shutdown 
R6(config-if)#exit 

R6(config)#int e0/0
R6(config-if)#ip add 172.16.36.6 255.255.255.0
R6(config-if)#no shutdown 
R6(config-if)#exit 

2.在ISP域内配置OSPF,启用MPLS。

R1(config)#ip cef
R1(config)#mpls ip
R1(config)#mpls label protocol ldp 
R1(config)#mpls ldp router-id loopback 0 force 

R1(config)#int ran e0/0-1
R1(config-if-range)#mpls ip
R1(config-if-range)#exit 

R1(config)#router ospf 10
R1(config-router)#router-id 1.1.1.1
R1(config-router)#net 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 12.1.1.2 0.0.0.0 area 0
R1(config-router)#net 13.1.1.1 0.0.0.0 area 0
R1(config-router)#exit
R2(config)#ip cef
R2(config)#mpls ip 
R2(config)#mpls label protocol ldp 
R2(config)#mpls ldp router-id loopback 0 force 

R2(config)#int e0/1
R2(config-if)#mpls ip
R2(config-if)#exit

R2(config)#router ospf 10
R2(config-router)#router-id 2.2.2.2
R2(config-router)#net 2.2.2.2 0.0.0.0 area 0
R2(config-router)#net 12.1.1.2 0.0.0.0 area 0
R2(config-router)#exit 
R3(config)#ip cef
R3(config)#mpls ip
R3(config)#mpls label protocol ldp 
R3(config)#mpls ldp router-id loopback 0 force 

R3(config)#int e0/0
R3(config-if)#mpls ip
R3(config-if)#exit 

R3(config)#router ospf 10
R3(config-router)#router-id 3.3.3.3
R3(config-router)#net 3.3.3.3 0.0.0.0 area 0
R3(config-router)#net 13.1.1.3 0.0.0.0 area 0
R3(config-router)#exit 

 

 3.在两个Spoke的PE(R2、R3)上启用VRF关联接口。

R2(config)#vrf definition Spoke1
R2(config-vrf)#rd 5:5
R2(config-vrf)#address-family ipv4 
R2(config-vrf-af)#route-target export 5:5
R2(config-vrf-af)#route-target import 100:100
R2(config-vrf-af)#exit
R2(config-vrf)#exit 

R2(config-if)#int e0/0       
R2(config-if)#vrf forwarding Spoke1
R2(config-if)#ip address 172.16.25.2 255.255.255.0
R2(config-if)#exit 
R3(config)#vrf definition Spoke2
R3(config-vrf)#rd 6:6
R3(config-vrf)#address-family ipv4
R3(config-vrf-af)#route-target export 6:6
R3(config-vrf-af)#route-target import 100:100
R3(config-vrf-af)#exit-address-family 
R3(config-vrf)#exit 

R3(config)#int e0/1
R3(config-if)#vrf forwarding Spoke2
R3(config-if)# ip address 172.16.36.3 255.255.255.0
R3(config-if)#exit 

 

4.在两个Spoke的CE(R5、R6)上启用BGP。

R5(config)#router bgp 5

R5(config-router)#bgp router-id 5.5.5.5

R5(config-router)#no auto-summary 
R5(config-router)#no synchronization 
R5(config-router)#no bgp default ipv4-unicast 

R5(config-router)#neighbor 172.16.25.2 remote-as 10

R5(config-router)#address-family ipv4 unicast        
R5(config-router-af)#neighbor 172.16.25.2 activate 
R5(config-router-af)#redistribute connected 

R5(config-router-af)#exit-address-family 
R5(config-router)#exit
R6(config)#router bgp 6
R6(config-router)#bgp router-id 6.6.6.6

R6(config-router)#no auto-summary 
R6(config-router)#no synchronization 
R6(config-router)#no bgp default ipv4-unicast 

R6(config-router)#neighbor 172.16.36.3 remote-as 10

R6(config-router)#address-family ipv4 unicast        
R6(config-router-af)#neighbor 172.16.36.3 activate 
R6(config-router-af)#redistribute connected 

R6(config-router-af)#exit-address-family 
R6(config-router)#exit 

5.在两个Spoke的PE(R2、R3)上回指BGP的邻接关系。

R2(config)#router bgp 10
R2(config-router)#bgp router-id 2.2.2.2

R2(config-router)#no auto-summary 
R2(config-router)#no synchronization 
R2(config-router)#no bgp default ipv4

R2(config-router)#address-family ipv4 vrf Spoke1
R2(config-router-af)#neighbor 172.16.25.5 remote-as 5 

R2(config-router-af)#exit-address-family 
R2(config-router)#exi
R2(config-router)#exit 
R3(config)#router bgp 10
R3(config-router)#bgp router-id 3.3.3.3
             
R3(config-router)# no auto-summary 
R3(config-router)#no synchronization 
R3(config-router)#no bgp default ipv4-unicast 

R3(config-router)#address-family ipv4 vrf Spoke2
R3(config-router-af)#neighbor 172.16.36.6 remote-as 6
R3(config-router-af)#neighbor 172.16.36.6 activate 

R3(config-router-af)#exi
R3(config-router)#exit 

 

6.ISP域内建立Full Mesh的VPNv4的BGP邻接关系。

R2(config)#router bgp 10 

R2(config-router)#neighbor 1.1.1.1 remote-as 10
R2(config-router)#neighbor 1.1.1.1 update-source loopback 0

R2(config-router)#neighbor 3.3.3.3 remote-as 10
R2(config-router)#neighbor 3.3.3.3 update-source loopback 0

R2(config-router)#address-family vpnv4 unicast    
             
R2(config-router-af)#neighbor 1.1.1.1 activate 
R2(config-router-af)#neighbor 1.1.1.1 send-community extended 
                  
R2(config-router-af)#neighbor 3.3.3.3 activate 
R2(config-router-af)#neighbor 3.3.3.3 send-community extended 

R2(config-router-af)#exit-address-family 
R2(config-router)#exit 
R3(config)#router bgp 10

R3(config-router)#neighbor 1.1.1.1 remote-as 10
R3(config-router)#neighbor 1.1.1.1 update-source loopback 0

R3(config-router)#neighbor 2.2.2.2 remote-as 10
R3(config-router)#neighbor 2.2.2.2 update-source loopback 0

R3(config-router)#address-family vpnv4 unicast 
                
R3(config-router-af)#neighbor 1.1.1.1 activate 
R3(config-router-af)#neighbor 1.1.1.1 send-community extended 

R3(config-router-af)#neighbor 2.2.2.2 activate 
R3(config-router-af)#neighbor 2.2.2.2 send-community extended 

R3(config-router-af)#exit-address-family 
R3(config-router)#exit 
R1(config)#router bgp 10
R1(config-router)#bgp router-id 1.1.1.1

R1(config-router)#no auto-summary 
R1(config-router)#no synchronization 
R1(config-router)#no bgp default ipv4-unicast 

R1(config-router)#neighbor 2.2.2.2 remote-as 10
R1(config-router)#neighbor 2.2.2.2 update-source loopback 0
             
R1(config-router)#neighbor 3.3.3.3 remote-as 10
R1(config-router)#neighbor 3.3.3.3 update-source loopback 0

R1(config-router)#address-family vpnv4 unicast   
              
R1(config-router-af)#neighbor 2.2.2.2 activate 
R1(config-router-af)#neighbor 2.2.2.2 send-community extended 

R1(config-router-af)#neighbor 3.3.3.3 activate      
R1(config-router-af)#neighbor 3.3.3.3 send-community extended 

R1(config-router-af)#exit-address-family 
R1(config-router)#exit 

7.在Hub的PE(R1)上起两个子接口,关联对应的VRF。

R1(config)#vrf definition Spoke-to-Hub
R1(config-vrf)#rd 56:56 
R1(config-vrf)#address-family ipv4 
R1(config-vrf-af)#route-target import 5:5
R1(config-vrf-af)#route-target import 6:6
R1(config-vrf-af)#exit-address-family 
R1(config-vrf)#exit 

R1(config)#vrf definition Hub-to-Spoke
R1(config-vrf)#rd 100:100
R1(config-vrf)#address-family ipv4 
R1(config-vrf-af)#route-target export 100:100
R1(config-vrf-af)#exit-address-family 
R1(config-vrf)#exit 

R1(config)#interface ethernet 0/2
R1(config-if)#no shutdown 
R1(config-if)#exit 

R1(config)#int ethernet 0/2.56
R1(config-subif)#vrf forwarding Spoke-to-Hub
R1(config-subif)#encapsulation dot1Q 56
R1(config-subif)#ip address 172.16.56.1 255.255.255.0
R1(config-subif)#no shutdown 
R1(config-subif)#exit 

R1(config)#int ethernet 0/2.100        
R1(config-subif)#vrf forwarding Hub-to-Spoke        
R1(config-subif)#encapsulation dot1Q 100             
R1(config-subif)#ip address 172.16.100.1 255.255.255.0
R1(config-subif)#no shutdown 
R1(config-subif)#exit 

8.在Hub的CE(R4)上起两个子接口。

R4(config)#int ethernet 0/0
R4(config-if)#no shutdown 
R4(config-if)#exit 

R4(config)#int ethernet 0/0.56
R4(config-subif)#encapsulation dot1Q 56
R4(config-subif)#ip address 172.16.56.4 255.255.255.0
R4(config-subif)#no shutdown 

R4(config)#int ethernet 0/0.100                
R4(config-subif)#encapsulation dot1Q 100             
R4(config-subif)#ip address 172.16.100.4 255.255.255.0
R4(config-subif)#no shutdown                          
R4(config-subif)#exit  

9.在Hub的CE(R4)上和R1建立BGP。

R4(config)#router bgp 4
R4(config-router)#bgp router-id 4.4.4.4

R4(config-router)#no auto-summary 
R4(config-router)#no synchronization 
R4(config-router)#no bgp default ipv4-unicast 

R4(config-router)#neighbor 172.16.56.1 remote-as 10
R4(config-router)#neighbor 172.16.100.1 remote-as 10

R4(config-router)#address-family ipv4 unicast 

R4(config-router-af)#neighbor 172.16.56.1 active          
R4(config-router-af)#neighbor 172.16.100.1 active
R4(config-router-af)#redistribute connected 
R4(config-router-af)#aggregate-address 172.16.0.0 255.255.0.0 summary-only 

R4(config-router-af)#exit-address-family 
R4(config-router)#exit 

10.在Hub的PE(R1)上和R4建立BGP.

R1(config)#router bgp 10

R1(config-router)#address-family ipv4 vrf Spoke-to-Hub
R1(config-router-af)#neighbor 172.16.56.4 remote-as 4
R1(config-router-af)#neighbor 172.16.56.4 activate 
R1(config-router-af)#exit-address-family 

R1(config-router)#address-family ipv4 vrf Hub-to-Spoke 
R1(config-router-af)#neighbor 172.16.100.4 remote-as 4        
R1(config-router-af)#neighbor 172.16.100.4 activate 

R1(config-router-af)#exit-address-family 
R1(config-router)#exit 

11.测试。

①.

 R1通过两个VRF都收到了关于172.16.0.0/16的路由,但是通过Spoke-to-Hub这个VRF收到是没有关系的,因为它不能给两个Spoke传,因为在Spoke-to-Hub的这个VRF中没有设置导出RT。这个Spoke-to-Hub的VRF是专门接收Spoke的明细路由的。

②.

 R4可以收到两个Spoke的明细路由,并且都是通过172.16.56.1收到的。接下来R4把这些路由汇总之后形成了一条 172.16.0.0/16的汇总路由。

③.

 

 自己把下游的明细发送上去,然后收到了一条汇总路由。

④.

 R5,和R6也会通过PE收到这条汇总路由。

⑤.R5和R6基于这条汇总路由可以访问Hub、也可以访问其他Spoke的网络。

 

 报文先发送给R2,R2给报文添加了一个标签19,19是内层标签,外层标签已经通过php去掉了;R2再把报文发送给R1,R1收到报文之后,会发现是VPNv4标签,查找对应的路由条目就发送走了。

 

以上是关于Cisco(59)——Hub&Spoke MPLS的主要内容,如果未能解决你的问题,请参考以下文章

Cisco(59)——Hub&Spoke MPLS

Cisco(59)——Hub&Spoke MPLS进阶

Hub、Spoke 和 ESB 之间的区别

Hub and Spoke配置案例

100集华为HCIE安全培训视频教材整理 | Hub Spoke IPSec VdPdN

100集华为HCIE安全培训视频教材整理 | Hub Spoke IPSec VPN