配置CE双归属Kompella方式的VPLS示例
组网需求
如图6-40,某企业机构,自建骨干网。分支Site1使用CE1连接PE1和RR双归属接入骨干网,分支Site2使用CE2连接PE2接入骨干网。RR为路由反射器,PE1和PE2是RR的客户机。
现在Site1和Site2的用户需要进行二层业务的互通,同时要求在穿越骨干网时保留二层报文中用户信息,并且CE1-PE1-RR-PE2-CE2为主路径,CE1-RR-PE2-CE2为备份路径。
请确保该场景下互联接口的STP处于未使能状态。同时将互连接口退出VLAN1,避免形成环路。因为在使能STP的环形网络中,如果用交换机的VLANIF接口构建三层网络,会导致某个端口被阻塞,从而导致三层业务不能正常运行。
配置思路
采用如下的思路配置CE双归属Kompella方式的VPLS基本功能:
为实现Site1和Site2的二层业务互通,同时在穿越骨干网时保留二层报文的用户信息,故需要使用VPLS技术在骨干网透传二层报文。
由于企业网络规划要求,选择CE双归属Kompella方式的VPLS,实现各CE设备二层网络的互通。
为实现PE间数据的公网传输,需要在骨干网上配置IGP路由协议实现PE1、RR及PE2之间的互通。
VPLS实现依靠MPLS基本功能,故需要在PE1、PE2和RR设备上配置MPLS基本功能和LDP。
为使PE间传输的数据不被公网感知,需要在PE间建立传输数据所使用的隧道。
为实现VPLS功能,需要在PE上使能MPLS L2VPN。
为实现对端成员发现,需要在PE上使能BGP对等体交换VPLS信息的能力,在PE1、PE2分别与RR建立MP-IBGP对等体关系;在RR上配置路由反射功能。
为实现Kompella方式VPLS,需要在PE上创建VSI,指定信令为BGP,指定RD、VPN-Target和Site,再将AC接口与VSI进行绑定。
为实现优先选择PE1进行转发,需要增大PE1上的VSI多归属优先级,使BGP优选该VSI的标签块。
操作步骤
- 配置接口所属VLAN
在各Switch上配置各接口所属的VLAN以及相关接口IP地址。
# 配置CE1。PE1、PE2、CE2和RR的配置与CE1类似,不再赘述。
<HUAWEI> system-view [HUAWEI] sysname CE1 [CE1] vlan 10 [CE1-vlan10] quit [CE1] interface vlanif 10 [CE1-Vlanif10] ip address 10.1.1.1 255.255.255.0 [CE1-Vlanif10] quit [CE1] interface gigabitethernet 1/0/0 [CE1-GigabitEthernet1/0/0] port link-type trunk [CE1-GigabitEthernet1/0/0] port trunk allow-pass vlan 10 [CE1-GigabitEthernet1/0/0] quit [CE1] interface gigabitethernet 2/0/0 [CE1-GigabitEthernet2/0/0] port link-type trunk [CE1-GigabitEthernet2/0/0] port trunk allow-pass vlan 10 [CE1-GigabitEthernet2/0/0] quit
避免将PE上AC侧和PW侧的物理接口加入相同的VLAN中,否则可能引起环路。
- 配置骨干网的IGP协议
在MPLS骨干网上配置IGP协议,实现骨干网PE1、RR及PE2之间的互通。本例采用IS-IS,注意Loopback1上也要使能IS-IS。
在PE1、RR和PE2上配置ISIS。
# 配置PE1。PE2和RR的配置与PE1类似,不再赘述。
[PE1] isis 1 [PE1-isis-1] network-entity 10.0000.0000.0001.00 [PE1-isis-1] quit [PE1] interface loopback 1 [PE1-LoopBack1] ip address 1.1.1.1 255.255.255.255 [PE1-LoopBack1] isis enable 1 [PE1-LoopBack1] quit [PE1] interface vlanif 20 [PE1-Vlanif20] isis enable 1 [PE1-Vlanif20] quit
配置完成后,PE1、RR和PE2两两之间都能互相学习到对方的Loopback地址。
以PE1为例:
[PE1] display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 8 Routes : 8 Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack1 2.2.2.2/32 ISIS-L1 15 10 D 100.1.1.2 Vlanif20 3.3.3.3/32 ISIS-L1 15 20 D 100.1.1.2 Vlanif20 100.1.1.0/30 Direct 0 0 D 100.1.1.1 Vlanif20 100.1.1.1/32 Direct 0 0 D 127.0.0.1 Vlanif20 100.2.1.0/30 ISIS-L1 15 20 D 100.1.1.2 Vlanif20 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
PE1、RR和PE2两两之间能够互相ping通对方的Loopback1接口。
- 配置MPLS基本能力和LDP
在PE1、RR和PE2上使能MPLS和MPLS LDP,并在PE1和RR、RR和PE2之间相连的接口上都使能MPLS和MPLS LDP,以便建立LSP。
# 配置PE1。PE2和RR的配置与PE1类似,不再赘述。
[PE1] mpls lsr-id 1.1.1.1 [PE1] mpls [PE1-mpls] quit [PE1] mpls ldp [PE1-mpls-ldp] quit [PE1] interface vlanif 20 [PE1-Vlanif20] mpls [PE1-Vlanif20] mpls ldp [PE1-Vlanif20] quit
配置完成后,在各Switch上执行display mpls lsp命令,可以看到PE1、RR和PE2两两之间存在LSP。
以PE1为例:
[PE1] display mpls lsp Flag after Out IF: (I) - LSP Is Only Iterated by RLFA ------------------------------------------------------------------------------- LSP Information: LDP LSP ------------------------------------------------------------------------------- FEC In/Out Label In/Out IF Vrf Name 1.1.1.1/32 3/NULL -/- 2.2.2.2/32 NULL/3 -/Vlanif20 2.2.2.2/32 1024/3 -/Vlanif20 3.3.3.3/32 NULL/1025 -/Vlanif20 3.3.3.3/32 1025/1025 -/Vlanif20
- 建立BGP对等体,使能交换VPLS信息的能力
在PE1、RR和PE2进行配置,建立MP-IBGP连接,并使能BGP的VPLS能力。
# 配置PE1。
[PE1] bgp 100 [PE1-bgp] peer 2.2.2.2 as-number 100 [PE1-bgp] peer 2.2.2.2 connect-interface loopback 1 [PE1-bgp] vpls-family [PE1-bgp-af-vpls] peer 2.2.2.2 enable [PE1-bgp-af-vpls] quit [PE1-bgp] quit
# 配置RR。
[RR] bgp 100 [RR-bgp] peer 1.1.1.1 as-number 100 [RR-bgp] peer 3.3.3.3 as-number 100 [RR-bgp] peer 1.1.1.1 connect-interface loopback 1 [RR-bgp] peer 3.3.3.3 connect-interface loopback 1 [RR-bgp] vpls-family [RR-bgp-af-vpls] peer 1.1.1.1 enable [RR-bgp-af-vpls] peer 3.3.3.3 enable [RR-bgp-af-vpls] quit [RR-bgp] quit
# 配置PE2。
[PE2] bgp 100 [PE2-bgp] peer 2.2.2.2 as-number 100 [PE2-bgp] peer 2.2.2.2 connect-interface loopback 1 [PE2-bgp] vpls-family [PE2-bgp-af-vpls] peer 2.2.2.2 enable [PE2-bgp-af-vpls] quit [PE2-bgp] quit
完成此步骤后,在PE或RR上执行display bgp vpls peer命令,可看到MP-IBGP对等体连接状态为“Established”。
- 在RR上配置反射功能
# 配置RR。
[RR] bgp 100 [RR-bgp] vpls-family [RR-bgp-af-vpls] reflector cluster-id 100 [RR-bgp-af-vpls] peer 1.1.1.1 reflect-client [RR-bgp-af-vpls] peer 3.3.3.3 reflect-client [RR-bgp-af-vpls] undo policy vpn-target [RR-bgp-af-vpls] quit [RR-bgp] quit
- 在PE、RR和PE2上使能MPLS L2VPN
# 配置PE1。
[PE1] mpls l2vpn [PE1-l2vpn] quit
# 配置RR。
[RR] mpls l2vpn [RR-l2vpn] quit
# 配置PE2。
[PE2] mpls l2vpn [PE2-l2vpn] quit
- 在PE1、RR和PE2上配置VSI实例,并绑定到AC接口
# 配置PE1。
[PE1] vsi v1 auto [PE1-vsi-v1] pwsignal bgp [PE1-vsi-v1-bgp] route-distinguisher 100:1 [PE1-vsi-v1-bgp] vpn-target 1:1 import-extcommunity [PE1-vsi-v1-bgp] vpn-target 1:1 export-extcommunity [PE1-vsi-v1-bgp] site 1 range 5 default-offset 0 [PE1-vsi-v1-bgp] quit [PE1-vsi-v1] quit [PE1] interface vlanif 10 [PE1-Vlanif10] l2 binding vsi v1 [PE1-Vlanif10] quit
# 配置RR。
[RR] vsi v1 auto [RR-vsi-v1] pwsignal bgp [RR-vsi-v1-bgp] route-distinguisher 100:1 [RR-vsi-v1-bgp] vpn-target 1:1 import-extcommunity [RR-vsi-v1-bgp] vpn-target 1:1 export-extcommunity [RR-vsi-v1-bgp] site 1 range 5 default-offset 0 [RR-vsi-v1-bgp] quit [RR-vsi-v1] quit [RR] interface vlanif 10 [RR-Vlanif10] l2 binding vsi v1 [RR-Vlanif10] quit
# 配置PE2。
[PE2] vsi v1 auto [PE2-vsi-v1] pwsignal bgp [PE2-vsi-v1-bgp] route-distinguisher 100:2 [PE2-vsi-v1-bgp] vpn-target 1:1 import-extcommunity [PE2-vsi-v1-bgp] vpn-target 1:1 export-extcommunity [PE2-vsi-v1-bgp] site 2 range 5 default-offset 0 [PE2-vsi-v1-bgp] quit [PE2-vsi-v1] quit [PE2] interface vlanif 40 [PE2-Vlanif40] l2 binding vsi v1 [PE2-Vlanif40] quit
完成以上配置后,在PE或RR上执行display bgp vpls all命令,可看到VPLS本地标签块信息和远端标签块信息。且RR优选本地标签块。
[RR] display bgp vpls all BGP Local Router ID : 2.2.2.2, Local AS Number : 100 Status codes : * - active, > - best BGP.VPLS : 3 Label Blocks -------------------------------------------------------------------------------- Route Distinguisher: 100:1 SiteID Offset NextHop Range LabBase TunnelID FromPeer MHPref -------------------------------------------------------------------------------- > 1 0 0.0.0.0 5 35840 0x0 0.0.0.0 0 1 0 1.1.1.1 5 35840 0x0 1.1.1.1 0 -------------------------------------------------------------------------------- Route Distinguisher: 100:2 SiteID Offset NextHop Range LabBase TunnelID FromPeer MHPref -------------------------------------------------------------------------------- *> 2 0 3.3.3.3 5 35840 0x0 3.3.3.3 0
- 修改VSI多归属优先级
# 增大PE1的VSI实例的多归属优先级,使BGP优先选择PE1发布的标签块。
[PE1] vsi v1 [PE1-vsi-v1] multi-homing-preference 10 [PE1-vsi-v1] quit
配置完成后,在RR上执行display bgp vpls all命令,可看到RR优选PE1发布的标签块。
[RR] display bgp vpls all BGP Local Router ID : 2.2.2.2, Local AS Number : 100 Status codes : * - active, > - best BGP.VPLS : 3 Label Blocks -------------------------------------------------------------------------------- Route Distinguisher: 100:1 SiteID Offset NextHop Range LabBase TunnelID FromPeer MHPref -------------------------------------------------------------------------------- 1 0 0.0.0.0 5 35840 0x0 0.0.0.0 0 *> 1 0 1.1.1.1 5 35840 0x0 1.1.1.1 10 -------------------------------------------------------------------------------- Route Distinguisher: 100:2 SiteID Offset NextHop Range LabBase TunnelID FromPeer MHPref -------------------------------------------------------------------------------- *> 2 0 3.3.3.3 5 35840 0x0 3.3.3.3 0
在PE2上执行display bgp vpls all命令,可看到PE2的远端标签块是PE1发布的。
[PE2] display bgp vpls all BGP Local Router ID : 3.3.3.3, Local AS Number : 100 Status codes : * - active, > - best BGP.VPLS : 2 Label Blocks -------------------------------------------------------------------------------- Route Distinguisher: 100:1 SiteID Offset NextHop Range LabBase TunnelID FromPeer MHPref -------------------------------------------------------------------------------- *> 1 0 1.1.1.1 5 35840 0x0 2.2.2.2 10 -------------------------------------------------------------------------------- Route Distinguisher: 100:2 SiteID Offset NextHop Range LabBase TunnelID FromPeer MHPref -------------------------------------------------------------------------------- > 2 0 0.0.0.0 5 35840 0x0 0.0.0.0 0
- 检验配置结果
分别在PE1和RR上执行display vpls connection bgp命令查看VPLS连接信息。
可发现PE1上的VC状态为Up:
[PE1] display vpls connection bgp verbose VSI Name: v1 Signaling: bgp **Remote Site ID : 2 VC State : up RD : 100:2 Encapsulation : vlan MTU : 1500 Peer Ip Address : 3.3.3.3 PW Type : label Local VC Label : 35842 Remote VC Label : 35841 Tunnel Policy : -- Tunnel ID : 0x10c Remote Label Block : 35840/5/0 Export vpn target : 1:1
RR上的显示结果为空:
[RR] display vpls connection bgp
说明PE1为主PE,RR为备份PE。
在CE上执行ping命令,发现CE1与CE2可以相互ping通。
[CE1] ping 10.1.1.2 PING 10.1.1.2: 56 data bytes, press CTRL_C to break Reply from 10.1.1.2: bytes=56 Sequence=1 ttl=255 time=90 ms Reply from 10.1.1.2: bytes=56 Sequence=1 ttl=255 time=77 ms Reply from 10.1.1.2: bytes=56 Sequence=1 ttl=255 time=34 ms Reply from 10.1.1.2: bytes=56 Sequence=1 ttl=255 time=46 ms Reply from 10.1.1.2: bytes=56 Sequence=1 ttl=255 time=94 ms --- 10.1.1.2 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 34/68/94 ms
配置文件
CE1的配置文件
# sysname CE1 # vlan batch 10 # interface Vlanif10 ip address 10.1.1.1 255.255.255.0 # interface GigabitEthernet1/0/0 port link-type trunk port trunk allow-pass vlan 10 # interface GigabitEthernet2/0/0 port link-type trunk port trunk allow-pass vlan 10 # return
PE1的配置文件
# sysname PE1 # vlan batch 10 20 # mpls lsr-id 1.1.1.1 mpls # mpls l2vpn # vsi v1 auto pwsignal bgp route-distinguisher 100:1 vpn-target 1:1 import-extcommunity vpn-target 1:1 export-extcommunity site 1 range 5 default-offset 0 multi-homing-preference 10 # mpls ldp # isis 1 network-entity 10.0000.0000.0001.00 # interface Vlanif10 l2 binding vsi v1 # interface Vlanif20 ip address 100.1.1.1 255.255.255.252 isis enable 1 mpls mpls ldp # interface GigabitEthernet1/0/0 port link-type trunk port trunk allow-pass vlan 10 # interface GigabitEthernet2/0/0 port link-type trunk port trunk allow-pass vlan 20 # interface LoopBack1 ip address 1.1.1.1 255.255.255.255 isis enable 1 # bgp 100 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 2.2.2.2 enable # vpls-family policy vpn-target peer 2.2.2.2 enable # return
RR的配置文件
# sysname RR # vlan batch 10 20 30 # mpls lsr-id 2.2.2.2 mpls # mpls l2vpn # vsi v1 auto pwsignal bgp route-distinguisher 100:1 vpn-target 1:1 import-extcommunity vpn-target 1:1 export-extcommunity site 1 range 5 default-offset 0 # mpls ldp # isis 1 network-entity 10.0000.0000.0002.00 # interface Vlanif10 l2 binding vsi v1 # interface Vlanif20 ip address 100.1.1.2 255.255.255.252 isis enable 1 mpls mpls ldp # interface Vlanif30 ip address 100.2.1.1 255.255.255.252 isis enable 1 mpls mpls ldp # interface GigabitEthernet1/0/0 port link-type trunk port trunk allow-pass vlan 20 # interface GigabitEthernet2/0/0 port link-type trunk port trunk allow-pass vlan 30 # interface GigabitEthernet3/0/0 port link-type trunk port trunk allow-pass vlan 10 # interface LoopBack1 ip address 2.2.2.2 255.255.255.255 isis enable 1 # bgp 100 peer 1.1.1.1 as-number 100 peer 1.1.1.1 connect-interface LoopBack1 peer 3.3.3.3 as-number 100 peer 3.3.3.3 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 1.1.1.1 enable peer 3.3.3.3 enable # vpls-family reflector cluster-id 100 undo policy vpn-target peer 1.1.1.1 enable peer 1.1.1.1 reflect-client peer 3.3.3.3 enable peer 3.3.3.3 reflect-client # return
PE2的配置文件
# sysname PE2 # vlan batch 30 40 # mpls lsr-id 3.3.3.3 mpls # mpls l2vpn # vsi v1 auto pwsignal bgp route-distinguisher 100:2 vpn-target 1:1 import-extcommunity vpn-target 1:1 export-extcommunity site 2 range 5 default-offset 0 # mpls ldp # isis 1 network-entity 10.0000.0000.0004.00 # interface Vlanif30 ip address 100.2.1.2 255.255.255.252 isis enable 1 mpls mpls ldp # interface Vlanif40 l2 binding vsi v1 # interface GigabitEthernet1/0/0 port link-type trunk port trunk allow-pass vlan 30 # interface GigabitEthernet2/0/0 port link-type trunk port trunk allow-pass vlan 40 # interface LoopBack1 ip address 3.3.3.3 255.255.255.255 isis enable 1 # bgp 100 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 2.2.2.2 enable # vpls-family policy vpn-target peer 2.2.2.2 enable # return
CE2的配置文件
# sysname CE2 # vlan batch 40 # interface Vlanif40 ip address 10.1.1.2 255.255.255.0 # interface GigabitEthernet1/0/0 port link-type trunk port trunk allow-pass vlan 40 # return