配置BGP AD方式VPLS示例
组网需求
如图1,某企业机构,自建骨干网。分支Site站点较多(举例中只列出3个站点,其余省略),网络环境经常发生变动。分支Site1使用CE1连接PE1设备接入骨干网,分支Site2使用CE2连接PE2接入骨干网,分支Site3使用CE3接入骨干网。现在Site1、Site2和Site3的用户需要进行二层业务的互通,同时要求在穿越骨干网时保留二层报文中用户信息。
图1 配置BGP AD方式vpls组网图
配置思路
采用如下的思路配置BGP AD方式VPLS的基本功能:
1.为实现Site1、Site2和Site3的二层业务互通,同时在穿越骨干网时保留二层报文的用户信息,故需要使用VPLS技术在骨干网透传二层报文。
2.由于企业site站点较多且网络环境经常发生变动,可以选择BGP AD方式的VPLS,实现各CE设备二层网络的互通。
3.为实现PE间数据的公网传输,需要在骨干网上配置IGP路由协议实现互通。
4.VPLS实现依靠MPLS基本功能,故需要在骨干网上的设备配置MPLS基本功能和LDP。
5.为使PE间传输的数据不被公网感知,需要在PE间建立传输数据所使用的隧道。
6.为实现VPLS功能,需要在PE上使能MPLS L2×××。
7.为实现BGP AD方式VPLS,需要在PE上使能BGP对等体交换VPLS信息的能力,同时在PE上创建VSI,指定信令为BGP,指定VPLS ID、×××-Target,再将AC接口与VSI进行绑定。
操作步骤
1.配置接口所属VLAN
在各Switch上配置各接口所属的VLAN以及相关接口IP地址。
配置CE1。PE1、PE2、PE3、CE2和CE3的配置与CE1类似,不再赘述。
[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
说明:
避免将PE上AC侧和PW侧的物理接口加入相同的VLAN中,否则可能引起环路。
2.配置IGP,本例中使用OSPF
配置OSPF时,注意需要发布PE1、PE2和PE3的32位Loopback接口地址(LSR-ID)。
在PE1、PE2和PE3上配置OSPF。
配置PE1。PE2和PE3的配置与PE1类似,不再赘述。
[PE1] interface loopback 1
[PE1-LoopBack1] ip address 1.1.1.9 255.255.255.255
[PE1-LoopBack1] quit
[PE1] ospf 1
[PE1-ospf-1] area 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 168.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 168.1.2.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
配置完成后,在PE1、PE2和PE3上执行display ip routing-table命令可以看到已学到彼此的路由。
3.配置MPLS基本能力和LDP
在PE1、PE2和PE3上配置MPLS基本能力和LDP。
配置PE1。PE2和PE3的配置与PE1类似,不再赘述。
[PE1] mpls lsr-id 1.1.1.9
[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
[PE1] interface vlanif 30
[PE1-Vlanif30] mpls
[PE1-Vlanif30] mpls ldp
[PE1-Vlanif30] quit
配置完成后,在PE1、PE2和PE3上执行display mpls ldp peer命令可以看到PE1和PE2之间、PE1和PE3之间及PE2和PE3之间的对等体关系已建立。在PE1、PE2和PE3上执行display mpls ldp session命令可以看到对等体之间的LDP会话已建立。执行display mpls lsp命令可以看到LSP的建立情况。
4.使能BGP对等体交换VPLS成员信息的能力
#配置PE1。
[PE1] bgp 100
[PE1-bgp] peer 2.2.2.9 as-number 100
[PE1-bgp] peer 2.2.2.9 connect-interface loopback 1
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 1
[PE1-bgp] l2***-ad-family
[PE1-bgp-af-l2***-ad] peer 2.2.2.9 enable
[PE1-bgp-af-l2***-ad] peer 3.3.3.9 enable
[PE1-bgp-af-l2***-ad] quit
[PE1-bgp] quit
#配置PE2。
[PE2] bgp 100
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 1
[PE2-bgp] peer 3.3.3.9 as-number 100
[PE2-bgp] peer 3.3.3.9 connect-interface loopback 1
[PE2-bgp] l2***-ad-family
[PE2-bgp-af-l2***-ad] peer 1.1.1.9 enable
[PE2-bgp-af-l2***-ad] peer 3.3.3.9 enable
[PE2-bgp-af-l2***-ad] quit
[PE2-bgp] quit
#配置PE3。
[PE3] bgp 100
[PE3-bgp] peer 1.1.1.9 as-number 100
[PE3-bgp] peer 1.1.1.9 connect-interface loopback 1
[PE3-bgp] peer 2.2.2.9 as-number 100
[PE3-bgp] peer 2.2.2.9 connect-interface loopback 1
[PE3-bgp] l2***-ad-family
[PE3-bgp-af-l2***-ad] peer 1.1.1.9 enable
[PE3-bgp-af-l2***-ad] peer 2.2.2.9 enable
[PE3-bgp-af-l2***-ad] quit
[PE3-bgp] quit
5.在PE上使能MPLS L2×××
#配置PE1。
[PE1] mpls l2***
[PE1-l2***] quit
#配置PE2。
[PE2] mpls l2***
[PE2-l2***] quit
#配置PE3。
[PE3] mpls l2***
[PE3-l2***] quit
6.在PE上配置VSI
#配置PE1。
[PE1] vsi vplsad1
[PE1-vsi-vplsad1] bgp-ad
[PE1-vsi-vplsad1-bgpad] vpls-id 168.1.1.1:1
[PE1-vsi-vplsad1-bgpad] ***-target 100:1 import-extcommunity
[PE1-vsi-vplsad1-bgpad] ***-target 100:1 export-extcommunity
[PE1-vsi-vplsad1-bgpad] quit
[PE1-vsi-vplsad1] quit
#配置PE2。
[PE2] vsi vplsad1
[PE2-vsi-vplsad1] bgp-ad
[PE2-vsi-vplsad1-bgpad] vpls-id 168.1.1.1:1
[PE2-vsi-vplsad1-bgpad] ***-target 100:1 import-extcommunity
[PE2-vsi-vplsad1-bgpad] ***-target 100:1 export-extcommunity
[PE2-vsi-vplsad1-bgpad] quit
[PE2-vsi-vplsad1] quit
#配置PE3。
[PE3] vsi vplsad1
[PE3-vsi-vplsad1] bgp-ad
[PE3-vsi-vplsad1-bgpad] vpls-id 168.1.1.1:1
[PE3-vsi-vplsad1-bgpad] ***-target 100:1 import-extcommunity
[PE3-vsi-vplsad1-bgpad] ***-target 100:1 export-extcommunity
[PE3-vsi-vplsad1-bgpad] quit
[PE3-vsi-vplsad1] quit
7.在PE上将VSI与AC接口进行绑定
#绑定PE1上VLANIF10接口与VSI。
[PE1] interface vlanif 10
[PE1-Vlanif10] l2 binding vsi vplsad1
[PE1-Vlanif10] quit
#绑定PE2上VLANIF50接口与VSI。
[PE2] interface vlanif 50
[PE2-Vlanif50] l2 binding vsi vplsad1
[PE2-Vlanif50] quit
#绑定PE3上VLANIF60接口与VSI。
[PE3] interface vlanif 60
[PE3-Vlanif60] l2 binding vsi vplsad1
[PE3-Vlanif60] quit
8.验证配置结果
#在网络稳定后,在PE1上执行display vsi name vplsad1 verbose命令,可以看到名字为vplsad1的VSI建立了一条到PE2的PW和一条到PE3的PW,VSI状态均为Up。同样的,PE2和PE3之间也建立了PW,VSI状态为Up。
[PE1] display vsi name vplsad1 verbose
***VSI Name : vplsad1
Administrator VSI : no
Isolate Spoken : disable
VSI Index : 0
PW Signaling : bgpad
Member Discovery Style : --
PW MAC Learn Style : unqualify
Encapsulation Type : vlan
MTU : 1500
Diffserv Mode : uniform
Mpls Exp : --
DomainId : 255
Domain Name :
Ignore AcState : disable
P2P VSI : disable
Create Time : 0 days, 18 hours, 5 minutes, 30 seconds
VSI State : up
VPLS ID : 168.1.1.1:1
RD : 168.1.1.1:1
Import *** target : 100:1
Export *** target : 100:1
BGPAD VSI ID : 1.1.1.9
*Peer Router ID : 2.2.2.9
VPLS ID : 168.1.1.1:1
SAII : 1.1.1.9
TAII : 2.2.2.9
VC Label : 1024
Peer Type : dynamic
Session : up
Tunnel ID : 0x80003f
Broadcast Tunnel ID : 0x80003f
CKey : 2
NKey : 1
*Peer Router ID : 3.3.3.9
VPLS ID : 168.1.1.1:1
SAII : 1.1.1.9
TAII : 3.3.3.9
VC Label : 1025
Peer Type : dynamic
Session : up
Tunnel ID : 0x800033
Broadcast Tunnel ID : 0x800033
CKey : 4
NKey : 3
Interface Name : Vlanif10
State : up
Access Port : false
Last Up Time : 2012/07/06 15:54:46
Total Up Time : 0 days, 0 hours, 58 minutes, 24 seconds
**PW Information:
Peer Ip Address : 2.2.2.9
PW State : up
Local VC Label : 1024
Remote VC Label : 1024
PW Type : label
Local VCCV : alert lsp-ping
Remote VCCV : alert lsp-ping
Tunnel ID : 0x80003f
Broadcast Tunnel ID : 0x80003f
Broad BackupTunnel ID : 0x0
Ckey : 0x2
Nkey : 0x1
Main PW Token : 0x80003f
Slave PW Token : 0x0
Tnl Type : LSP
OutInterface : Vlanif20
Backup OutInterface :
Stp Enable : 0
PW Last Up Time : 2012/07/06 16:18:23
PW Total Up Time : 0 days, 1 hours, 22 minutes, 13 seconds
Peer Ip Address : 3.3.3.9
PW State : up
Local VC Label : 1025
Remote VC Label : 1025
PW Type : label
Local VCCV : alert lsp-ping
Remote VCCV : alert lsp-ping
Tunnel ID : 0x800033
Broadcast Tunnel ID : 0x800033
Broad BackupTunnel ID : 0x0
Ckey : 0x4
Nkey : 0x3
Main PW Token : 0x800033
Slave PW Token : 0x0
Tnl Type : LSP
OutInterface : Vlanif30
Backup OutInterface :
Stp Enable : 0
PW Last Up Time : 2012/07/06 15:56:46
PW Total Up Time : 0 days, 1 hours, 0 minutes, 45 seconds
#CE1、CE2和CE3之间能够互相ping通。以CE1(10.1.1.1)ping CE2(10.1.1.2)为例。
[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=140 ms
Reply from 10.1.1.2: bytes=56 Sequence=2 ttl=255 time=140 ms
Reply from 10.1.1.2: bytes=56 Sequence=3 ttl=255 time=140 ms
Reply from 10.1.1.2: bytes=56 Sequence=4 ttl=255 time=190 ms
Reply from 10.1.1.2: bytes=56 Sequence=5 ttl=255 time=110 ms
--- 10.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 110/144/190 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
#
return
CE2的配置文件
#
sysname CE2
#
vlan batch 50
#
interface Vlanif50
ip address 10.1.1.2 255.255.255.0
#
interface GigabitEthernet1/0/0
port link-type trunk
port trunk allow-pass vlan 50
#
return
CE3的配置文件
#
sysname CE3
#
vlan batch 60
#
interface Vlanif60
ip address 10.1.1.3 255.255.255.0
#
interface GigabitEthernet1/0/0
port link-type trunk
port trunk allow-pass vlan 60
#
return
PE1的配置文件
#
sysname PE1
#
vlan batch 10 20 30
#
mpls lsr-id 1.1.1.9
mpls
#
mpls l2***
#
vsi vplsad1
bgp-ad
vpls-id 168.1.1.1:1
***-target 100:1 import-extcommunity
***-target 100:1 export-extcommunity
#
mpls ldp
#
interface Vlanif10
l2 binding vsi vplsad1
#
interface Vlanif20
ip address 168.1.2.1 255.255.255.0
mpls
mpls ldp
#
interface Vlanif30
ip address 168.1.1.1 255.255.255.0
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 GigabitEthernet3/0/0
port link-type trunk
port trunk allow-pass vlan 30
#
interface LoopBack1
ip address 1.1.1.9 255.255.255.255
#
bgp 100
peer 2.2.2.9 as-number 100
peer 2.2.2.9 connect-interface LoopBack1
peer 3.3.3.9 as-number 100
peer 3.3.3.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization
peer 2.2.2.9 enable
peer 3.3.3.9 enable
#
l2***-ad-family
policy ***-target
peer 2.2.2.9 enable
peer 3.3.3.9 enable
#
ospf 1
area 0.0.0.0
network 1.1.1.9 0.0.0.0
network 168.1.1.0 0.0.0.255
network 168.1.2.0 0.0.0.255
#
return
PE2的配置文件
#
sysname PE2
#
vlan batch 20 40 50
#
mpls lsr-id 2.2.2.9
mpls
#
mpls l2***
#
vsi vplsad1
bgp-ad
vpls-id 168.1.1.1:1
***-target 100:1 import-extcommunity
***-target 100:1 export-extcommunity
#
mpls ldp
#
interface Vlanif20
ip address 168.1.2.2 255.255.255.0
mpls
mpls ldp
#
interface Vlanif40
ip address 169.1.3.1 255.255.255.0
mpls
mpls ldp
#
interface Vlanif50
l2 binding vsi vplsad1
#
interface GigabitEthernet1/0/0
port link-type trunk
port trunk allow-pass vlan 50
#
interface GigabitEthernet2/0/0
port link-type trunk
port trunk allow-pass vlan 20
#
interface GigabitEthernet3/0/0
port link-type trunk
port trunk allow-pass vlan 40
#
interface LoopBack1
ip address 2.2.2.9 255.255.255.255
#
bgp 100
peer 1.1.1.9 as-number 100
peer 1.1.1.9 connect-interface LoopBack1
peer 3.3.3.9 as-number 100
peer 3.3.3.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization
peer 1.1.1.9 enable
peer 3.3.3.9 enable
#
l2***-ad-family
policy ***-target
peer 1.1.1.9 enable
peer 3.3.3.9 enable
#
ospf 1
area 0.0.0.0
network 2.2.2.9 0.0.0.0
network 168.1.2.0 0.0.0.255
network 169.1.3.0 0.0.0.255
#
return
PE3的配置文件
#
sysname PE3
#
vlan batch 30 40 60
#
mpls lsr-id 3.3.3.9
mpls
#
mpls l2***
#
vsi vplsad1
bgp-ad
vpls-id 168.1.1.1:1
***-target 100:1 import-extcommunity
***-target 100:1 export-extcommunity
#
mpls ldp
#
interface Vlanif30
ip address 168.1.1.2 255.255.255.0
mpls
mpls ldp
#
interface Vlanif40
ip address 169.1.3.2 255.255.255.0
mpls
mpls ldp
#
interface Vlanif60
l2 binding vsi vplsad1
#
interface GigabitEthernet1/0/0
port link-type trunk
port trunk allow-pass vlan 60
#
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 40
#
interface LoopBack1
ip address 3.3.3.9 255.255.255.255
#
bgp 100
peer 1.1.1.9 as-number 100
peer 1.1.1.9 connect-interface LoopBack1
peer 2.2.2.9 as-number 100
peer 2.2.2.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization
peer 1.1.1.9 enable
peer 2.2.2.9 enable
#
l2***-ad-family
policy ***-target
peer 1.1.1.9 enable
peer 2.2.2.9 enable
#
ospf 1
area 0.0.0.0
network 3.3.3.9 0.0.0.0
network 168.1.1.0 0.0.0.255
network 169.1.3.0 0.0.0.255
#
return