解读MPLSVPNHub-Spoke组网实验:解读MPLSVPNHub-Spoke组网实验
解读MPLSVPNHub-Spoke组网实验:解读MPLSVPNHub-Spoke组网实验2:配置并验证MPLS VPN Hub-Spoke组网,Hub Spoke的设计核心是对Hub PE及Spoke PE设备上的vpn-instance的设计。1:基本的IP地址配置如拓扑所示,每个设备都有一个loopback0口,ISP骨干网IGP采用OSPF,MPLS LDP(本步骤省略)实验拓扑实验采用华为ENSP模拟器来完成,完成以上MPLS VPN Hub-Spoke VPN组网建设后,可以使得HUB中心站点能够访问任意Spoke站点,同时Spoke站点能够通过Hub站点进行中转互访。具体的实验步骤如下:实验步骤
在HCIE-Routing & Switching考试中,我们需要掌握MPLS VPN的知识点,其中涉及到了如何部署MPLS VPN Hub Spoke、MPLS VPN Hub Spoke实现原理等。今天就让我们通过一个实验来学习MPLS VPN Hub Spoke实现原理及配置。
首先通过一张图来了解HUB Spoke组网,HUB一般为公司的总部站点,Spoke一般为公司的分支站点,HUB spoke的模型要求是spoke之间的互访流量必须经过HUB中心站点的中转(图中PC1和PC2互访流量必须经过中间HUB站点完成)。
这样的架构模型叫做Hub Spoke模型,最早在OSPF FR环境中经常用到,但随着网络的发展,Hub Spoke模型不再局限于OSPF FR,而且FR已经被淘汰。只要符合这种流量模型的组网架构都可以统称为Hub Spoke模型。例如在MSPLS VPN组网中、IPsec VPN组网中都有此架构。
Hub Spoke MPLS VPN实验拓扑如下:
实验拓扑
实验采用华为ENSP模拟器来完成,完成以上MPLS VPN Hub-Spoke VPN组网建设后,可以使得HUB中心站点能够访问任意Spoke站点,同时Spoke站点能够通过Hub站点进行中转互访。具体的实验步骤如下:
实验步骤
1:基本的IP地址配置如拓扑所示,每个设备都有一个loopback0口,ISP骨干网IGP采用OSPF,MPLS LDP(本步骤省略)
2:配置并验证MPLS VPN Hub-Spoke组网,Hub Spoke的设计核心是对Hub PE及Spoke PE设备上的vpn-instance的设计。
参数规划:
与Site1连接的vpn-instance
Name:ccz
RD:100:1
RT:100:1 export,100:2 import
出向RT值等于HUB站点入向vpn-instance里的入向RT,入向RT等于HUB站点出向vpn-instance里的出向RT。
与Site2连接的vpn-instance(配置同与Site1连接的VRF)
Name:ccz
RD: 100:1
RT:100:1 export,100:2 import
在HUB PE设备上需要配置两个vpn-instance,一个的目的是为了从spoke PE接收路由,并且将路由发布给Hub CE,另外一个vpn-instance是为了从Hub CE接收路由并通过MP-BGP发布给spoke PE。
与Hub连接的vpn-instance
Name:ccz_in
RD: 100:1
RT:100:1 import
与Hub连接的 vpn-instance
Name:ccz_out
RD: 100:2
RT:100:2 export
各个PE设备配置VPN-Instance,并与相应的接口绑定:
在R2上配置如下:
[R2]ip vpn-instance ccz
[R2-vpn-instance-ccz]route-distinguisher 100:1
[R2-vpn-instance-ccz-af-ipv4]vpn-target 100:1 export-extcommunity
[R2-vpn-instance-ccz-af-ipv4]vpn-target 100:2 import-extcommunity
[R2-vpn-instance-ccz-af-ipv4]quit
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0]ip binding vpn-instance czz
[R2-GigabitEthernet0/0/0]ip add 10.1.12.2 24
[R2-GigabitEthernet0/0/0]quit
[R2]
在R5上配置以下命令:
[R5]ip vpn-instance ccz
[R5-vpn-instance-ccz]route-distinguisher 100:1
[R5-vpn-instance-ccz-af-ipv4]vpn-target 100:1 export-extcommunity
[R5-vpn-instance-ccz-af-ipv4]vpn-target 100:2 import-extcommunity
[R5-vpn-instance-ccz-af-ipv4]quit
[R5]interface g0/0/0
[R5-GigabitEthernet0/0/0]ip binding vpn-instance czz
[R5-GigabitEthernet0/0/0]ip add 10.1.56.5 24
[R5-GigabitEthernet0/0/0]quit
[R5]
重点强调:
对于连接Hub点的PE设备,需要配置两个vpn-instance,ccz_in和ccz_out。在控制层面,ccz_in用于接收各Spoke节点通告的路由,ccz_out用于将Spoke节点通告的路由转告给其他Spoke节点同时将Hub节点的路由信息通告给Spoke节点;在数据转发层面,Spoke互访或者Sopke访问Hub的流量通过ccz_out转发给Hub,通过Hub中转后通过ccz_in转发给目的Spoke节点。如果每个vpn-instance都绑定一个物理接口与Hub-CE设备互联,将使用过多的物理接口,为了节省物理接口,此处采用子接口与Hub-CE设备互联,将子接口绑定到vpn-instance:
在R3上配置以下命令:
[R3]ip vpn-instance czz_in
[R3-vpn-instance-czz_in]route-distinguisher 100:1
[R3-vpn-instance-czz_in]vpn-target 100:1 import-extcommunity //只需配置出向RT
[R3-vpn-instance-czz_in]quit
[R3]
[R3]ip vpn-instance czz_out
[R3-vpn-instance-czz_out]route-distinguisher 100:2 //RD值需保持本地唯一
[R3-vpn-instance-czz_out]vpn-target 100:2 import-extcommunity //只需配置出向RT
[R3-vpn-instance-czz_out]quit
[R3]
R3与CE之间采用子接口方式互联;
[R3]interface GigabitEthernet 0/0/0.1
[R3-GigabitEthernet0/0/0.1]dot1q termination vid 1
[R3-GigabitEthernet0/0/0.1]ip binding vpn-instance ccz_in
[R3-GigabitEthernet0/0/0.1]arp broadcast enable
[R3-GigabitEthernet0/0/0.1]quit
[R3]
[R3]interface GigabitEthernet 0/0/0.2
[R3-GigabitEthernet0/0/0.2]dot1q termination vid 2
[R3-GigabitEthernet0/0/0.2]ip binding vpn-instance ccz_out
[R3-GigabitEthernet0/0/0.2]arp broadcast enable
[R3-GigabitEthernet0/0/0.2]quit
[R3]
PE和CE之间理论上IGP和BGP都可以采用,本次实验PEs和CEs之间我们采用最熟悉的OSPF协议,配置如下:
R1上配置如下:
[R1]router id 10.1.1.1
[R1]ospf 10
[R1-ospf-10]ar 0
[R1-ospf-10-area-0.0.0.0]network 10.1.1.1 0.0.0.0
[R1-ospf-10-area-0.0.0.0]network 10.1.12.1 0.0.0.0
[R1-ospf-10-area-0.0.0.0]quit
[R1-ospf-10]quit
[R1]
R2上的配置如下:
[R2]ospf 10 vpn-instance czz
[R2-ospf-10]area 0
[R2-ospf-10-area-0.0.0.0]network 10.1.12.2 0.0.0.0
[R2-ospf-10-area-0.0.0.0]q
[R2-ospf-10]q
[R2]
[R2]
R6上的配置如下:
[R6]ospf 10
[R6-ospf-10]ar 0
[R6-ospf-10-area-0.0.0.0]network 10.6.6.6 0.0.0.0
[R6-ospf-10-area-0.0.0.0]network 10.1.56.6 0.0.0.0
[R6-ospf-10-area-0.0.0.0]quit
[R6-ospf-10]quit
[R6]
R5上的配置如下:
[R5]ospf 10 vpn-instance ccz
[R5-ospf-10]area 0
[R5-ospf-10-area-0.0.0.0]network 10.1.56.5 0.0.0.0
[R5-ospf-10-area-0.0.0.0]quit
[R5-ospf-10]
R3上的配置如下;需要配置两个OSPF进程,分别服务于两个vpn-instance,将与HUB-CE互联的两个子接口地址分别宣告进入两个OSPF的区域0中。
[R3]ospf 10 vpn-instance ccz_in
[R3-ospf-10]area 0
[R3-ospf-10-area-0.0.0.0]network 10.1.34.3 0.0.0.0
[R3-ospf-10-area-0.0.0.0]quit
[R3-ospf-10]quit
[R3]
[R3]ospf 20 vpn-instance ccz_out
[R3-ospf-20]area 0
[R3-ospf-20-area-0.0.0.0]network 10.1.43.3 0.0.0.0
[R3-ospf-20-area-0.0.0.0]quit
[R3-ospf-20]quit
[R3]
由于HUB-PE设备通过两个子接口与HUB-CE设备互联,所以HUB-CE设备也需要配置两个子接口。第一种实现方式是在HUB CE上同时配置两个OSPF进程,进程10和进程20,分别通过两个子接口与 HUB-PE建立邻居关系,进程10用于接收Spoke节点的路由,进程20用于向Spoke节点发布路由,并把HUB点需要发布的路由宣告进进程20,然后两个OSPF进程相互引入(至少把接收Spoke节点路由的进程引入到向Spoke节点发布路由的进程中,此处即将进程10进入进程20),在做引入时可以使用路由策略,从而起到在Hub点控制Spoke互访的作用。
R4的配置如下:
[R4]ospf 10
[R4-ospf-10]area 0
[R4-ospf-10-area-0.0.0.0]network 10.1.34.4 0.0.0.0
[R4-ospf-10-area-0.0.0.0]q
[R4-ospf-10]q
[R4]
//进程10通过G0/0/0.1接口与服务于HUB-PE VRF ccz_in的OSPF进程10建立邻居关系,用于接收Spoke节点的路由。
[R4]ospf 20
[R4-ospf-20]import-route ospf 10
[R4-ospf-20]area 0
[R4-ospf-20-area-0.0.0.0]network 10.1.43.4 0.0.0.0
[R4-ospf-20-area-0.0.0.0]network 10.4.4.4 0.0.0.0
[R4-ospf-20-area-0.0.0.0]q
[R4-ospf-20]q
[R4]
//OSPF进程20通过G0/0/0.2接口与HUB-PE服务于vpn-instance ccz_out的ospf进程20建立邻居关系,并将本地需要向spoke节点发布的路由宣告在本地进程下。
由于spoke节点要通过hub几点互访,所以需要将ospf进程10引入到进程20中,再通过本地进程发布到其他spoke节点,在引入是可以使用路由策略,从而控制spoke节点之间的互访。
配置完成后,在Hub-PE R3设备查看两个OSPF进程的邻居关系:
[R3]dis ospf 10 peerbrief
oSPF Process 10 withRouter ID 10.1.34.3
Peer statisticInformation
--------------------------------------------------------
Area_id Interface Neighborid State
0.0.0.0 GigabitEtherneto/o/o.110.4.4.4 Fu11
-----------------------------------------------------------
[R3]dis ospf 20 peer brief
oSPF Process 20 withRouter ID 10.1.43.3
Peer Statisticinformation
----------------------
Area_id Interface Neighborid State
0.0.0.0 GigabitEtherneto/o/o.2 10.4.4.4 Fu11
Spoke-PE和Hub-PE之间建立MP-BGP,并与vpn-instance的OSPF进程相互引入路由:
R2的配置如下:
[R2]bgp 100
[R2-bgp]undo default ipv4-unicast
[R2-bgp]peer 10.3.3.3 as-number 100
[R2-bgp]peer 10.3.3.3 connect-interface lo0
[R2-bgp]ipv4-family vpnv4 unicast
[R2-bgp-af-vpnv4]peer 10.3.3.3 enable
[R2-bgp-af-vpnv4]quit
[R2-bgp]ipv4-family vpn-instance ccz
[R2-bgp-ccz]import-route ospf 10
[R2-bgp-ccz]quit
[R2-bgp]
[R2]ospf 10
[R2-ospf-10]import-route bgp
[R2-ospf-10]q
[R2]
R5的配置如下:
[R5]bgp 100
[R5-bgp]undo default ipv4-unicast
[R5-bgp]peer 10.3.3.3 as-number 100
[R5-bgp]peer 10.3.3.3 connect-interface lo0
[R5-bgp]ipv4-family vpnv4 unicast
[R5-bgp-af-vpnv4]peer 10.3.3.3 enable
[R5-bgp-af-vpnv4]quit
[R5-bgp]ipv4-family vpn-instance ccz
[R5-bgp-ccz]import-route ospf 10
[R5-bgp-ccz]quit
[R5-bgp]
[R5]ospf 10
[R5-ospf-10]import-route bgp
[R5-ospf-10]q
[R5]
R3的配置如下:
[R3]bgp 100
[R3-bgp]undo default ipv4-unicast
[R3-bgp]peer 10.2.2.2 as-number 100
[R3-bgp]peer 10.2.2.2 connect-interface lo0
[R3-bgp]peer 10.5.5.5 as-number 100
[R3-bgp]peer 10.5.5.5 connect-interface lo0
[R3-bgp]ipv4-family vpnv4 unicast
[R3-bgp-af-vpnv4]peer 10.2.2.2 enable
[R3-bgp-af-vpnv4]peer 10.5.5.5 enable
[R3-bgp-af-vpnv4]quit
[R3-bgp]ipv4-family vpn-instance ccz_in
[R3-bgp-ccz_in]import-route ospf 10 //将OSPF路由引入到MP-BGP中。
[R3-bgp-ccz_in]quit
[R3-bgp]ipv4-family vpn-instance ccz_out //将OSPF路由引入到MP-BGP中。
[R3-bgp-ccz_out]import-route ospf 20
[R3-bgp-ccz_out]quit
[R3]ospf 10
[R3-ospf-10]import-route bgp //将MP-BGP传递过来的对端site的路由引入到OSPF中
[R3-ospf-10]q
[R3]
[R3]ospf 20
[R3-ospf-20]import-route bgp //将MP-BGP传递过来的对端site的路由引入到OSPF中
[R3-ospf-20]q
[R3]
完成操作后,查看Spoke节点和Hub节点的路由表信息。
在R1上检查路由表:
[R1]dis_ip routing-table protocol ospf
Route Flags: R- reiay D - download to fib
----------------------------------------------------------------·
Routing Tables: Public
Destinations : 13 Routes : 13
//由于是在hub节点执行引入操作,所以其他spoke节点的路信息以路由信息以外外部路由呈现,在某些情况下,有可能以域间路由的形式存在,具体请看后续的实验步骤。
在R6上检查路由表:
[R6]dis_ip routing-table protocol ospf
Route Flags: R- reiay D - download to fib
----------------------------------------------------------------·