配置OptionC方式跨域VPN示例(方案一)
通过在不同AS的PE之间建立多跳的MP-EBGP对等体,实现跨域的VPN OptionC方案。
配置思路
本例配置主要思路是:
在不同AS间的PE间建立MP-EBGP对等体关系,并配置PE之间的最大跳数。
在ASBR上配置路由策略:对从本AS的PE接收的Loopback路由,在向对端ASBR发布时,分配MPLS标签;对于向本AS的PE发布的路由,如果是带标签的IPv4路由,为其分配新的MPLS标签。
PE与本AS的ASBR之间能够交换带标签的IPv4路由。
ASBR与对端ASBR之间能够交换带标签的IPv4路由。
数据准备
为完成此配置例,需准备如下的数据:
PE及ASBR上的MPLS LSR-ID分别为1.1.1.9、2.2.2.9、3.3.3.9、4.4.4.9
PE上创建的VPN实例名为vpn1、路由标志RD为100:1,出方向和入方向的VPN-Target值为1:1
ASBR上配置的路由策略
操作步骤
- 在AS100和AS200的MPLS骨干网上分别配置IGP协议,实现各自骨干网内部PE和ASBR的互通
本例中IGP协议采用OSPF,具体配置步骤略。
需要将作为LSR ID的LoopBack接口的32位地址通过OSPF发布出去。
配置完成后,同一AS的ASBR与PE之间应能建立OSPF邻居关系,执行display ospf peer命令可以看到邻居状态为Full。
以PE1为例:
<PE1> display ospf peer
OSPF Process 1 with Router ID 1.1.1.9
Neighbors
Area 0.0.0.0 interface 10.10.1.2(GigabitEthernet1/0/0)'s neighbors
Router ID: 2.2.2.9 Address: 10.10.1.1
State: Full Mode:Nbr is Master Priority: 1
DR: 2.2.2.9 BDR: 2.2.2.9 MTU: 0
Dead timer due in 31 sec
Retrans timer interval: 5
Neighbor is up for 00:28:11
Authentication Sequence: [ 0 ]
同一AS的ASBR和PE能学习到对方的Loopback1的IP地址,并能够互相ping通。
- 在AS100和AS200的MPLS骨干网上分别配置MPLS基本能力和MPLS LDP,建立LDP LSP
具体配置步骤请参见后面的配置文件,此处不再赘述。
- 为AS100和AS200分别配置IPv4地址族的IBGP对等体关系
具体配置请参见后面的配置文件,此处不赘述。
- 在PE上配置VPN实例,并接入CE
具体配置请参见后面的配置文件,此处不再赘述。
PE1的VPN实例的import VPN-Target需要匹配PE2的VPN实例的export VPN-Target;PE2的VPN实例的import VPN-Target需要匹配PE1的VPN实例的export VPN-Target。
- 配置标签IPv4路由交换
# 配置PE1:使能与ASBR1交换标签IPv4路由的能力。
[~PE1] bgp 100
[*PE1-bgp] peer 2.2.2.9 label-route-capability
[*PE1-bgp] quit
[*PE1] commit
# 配置ASBR1:在与ASBR2相连的接口GE2/0/0上使能MPLS。
[~ASBR1] interface gigabitethernet 2/0/0
[*ASBR1-GigabitEthernet2/0/0] ip address 10.21.1.1 24
[*ASBR1-GigabitEthernet2/0/0] mpls
[*ASBR1-GigabitEthernet2/0/0] quit
[*ASBR1] commit
# 配置ASBR1:创建路由策略。
[~ASBR1] route-policy policy1 permit node 1
[*ASBR1-route-policy] apply mpls-label
[*ASBR1-route-policy] quit
[*ASBR1] route-policy policy2 permit node 1
[*ASBR1-route-policy] if-match mpls-label
[*ASBR1-route-policy] apply mpls-label
[*ASBR1-route-policy] quit
[*ASBR1] commit
# 配置ASBR1:对向PE1发布的路由应用路由策略,并使能与PE1交换标签IPv4路由的能力。
[~ASBR1] bgp 100
[*ASBR1-bgp] peer 1.1.1.9 route-policy policy2 export
[*ASBR1-bgp] peer 1.1.1.9 label-route-capability
# 配置ASBR1:对向ASBR2发布的路由应用路由策略,并使能与ASBR2交换标签IPv4路由的能力。
[*ASBR1-bgp] peer 10.21.1.2 as-number 200
[*ASBR1-bgp] peer 10.21.1.2 route-policy policy1 export
[*ASBR1-bgp] peer 10.21.1.2 label-route-capability
[*ASBR1-bgp] quit
# 配置ASBR1:将PE1的Loopback路由发布给ASBR2,进而发布给PE2。
[*ASBR1] bgp 100
[*ASBR1-bgp] network 1.1.1.9 32
[*ASBR1-bgp] quit
[*ASBR1] commit
PE2、ASBR2上的配置分别与PE1、ASBR1类似,此处不再详述。
- PE1与PE2建立MP-EBGP对等体关系
# 配置PE1。
[~PE1] bgp 100
[*PE1-bgp] peer 4.4.4.9 as-number 200
[*PE1-bgp] peer 4.4.4.9 connect-interface LoopBack 1
[*PE1-bgp] peer 4.4.4.9 ebgp-max-hop 10
[*PE1-bgp] ipv4-family vpnv4
[*PE1-bgp-af-vpnv4] peer 4.4.4.9 enable
[*PE1-bgp-af-vpnv4] quit
[*PE1-bgp] quit
[*PE1] commit
# 配置PE2。
[~PE2] bgp 200
[*PE2-bgp] peer 1.1.1.9 as-number 100
[*PE2-bgp] peer 1.1.1.9 connect-interface LoopBack 1
[*PE2-bgp] peer 1.1.1.9 ebgp-max-hop 10
[*PE2-bgp] ipv4-family vpnv4
[*PE2-bgp-af-vpnv4] peer 1.1.1.9 enable
[*PE2-bgp-af-vpnv4] quit
[*PE2-bgp] quit
[*PE2] commit
- 检查配置结果
上述配置完成后,CE之间能学习到对方的接口路由,CE1和CE2能够相互ping通。
以CE1的显示为例:
[~CE1] display ip routing-table
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.1.0/24 Direct 0 0 D 10.1.1.1 GigabitEthernet1/0/0
10.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet1/0/0
10.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet1/0/0
10.2.1.0/24 EBGP 255 0 D 10.1.1.2 GigabitEthernet1/0/0
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
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
[~CE1] ping 10.2.1.1
PING 10.2.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.2.1.1: bytes=56 Sequence=1 ttl=252 time=102 ms
Reply from 10.2.1.1: bytes=56 Sequence=2 ttl=252 time=89 ms
Reply from 10.2.1.1: bytes=56 Sequence=3 ttl=252 time=106 ms
Reply from 10.2.1.1: bytes=56 Sequence=4 ttl=252 time=104 ms
Reply from 10.2.1.1: bytes=56 Sequence=5 ttl=252 time=56 ms
--- 10.2.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 56/91/106 ms
ASBR上没有VPNv4路由。在ASBR上执行display bgp routing-table label命令,可以看到路由的标签信息。
以ASBR1为例:
[~ASBR1] display bgp routing-table label
Total Number of Routes: 2
BGP Local router ID is 2.2.2.9
Status codes: * - valid, > - best, d - damped, x - best external, a - add path,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V - valid, I - invalid, N - not-found
Network NextHop In/Out Label
*> 1.1.1.9 10.10.1.2 15360/NULL
*> 4.4.4.9 10.21.1.2 15361/15361
配置文件
CE1的配置文件
#
sysname CE1
#
interface GigabitEthernet1/0/0
undo shutdown
ip address 10.1.1.1 255.255.255.0
#
bgp 65001
peer 10.1.1.2 as-number 100
#
ipv4-family unicast
undo synchronization import-route direct
peer 10.1.1.2 enable
#
return
PE1的配置文件
#
sysname PE1
#
ip vpn-instance vpn1
ipv4-family
route-distinguisher 100:1
apply-label per-instance
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
#
mpls lsr-id 1.1.1.9
#
mpls
#
mpls ldp
#
interface GigabitEthernet1/0/0
undo shutdown
ip address 10.10.1.2 255.255.255.0
mpls
mpls ldp
#
interface GigabitEthernet2/0/0
undo shutdown
ip binding vpn-instance vpn1
ip address 10.1.1.2 255.255.255.0
#
interface LoopBack1
ip address 1.1.1.9 255.255.255.255
#
bgp 100
peer 4.4.4.9 as-number 200
peer 4.4.4.9 ebgp-max-hop 10
peer 4.4.4.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 4.4.4.9 enable
peer 2.2.2.9 enable
peer 2.2.2.9 label-route-capability
#
ipv4-family vpnv4
policy vpn-target
peer 4.4.4.9 enable
#
ipv4-family vpn-instance vpn1
peer 10.1.1.1 as-number 65001
import-route direct
#
ospf 1
area 0.0.0.0
network 1.1.1.9 0.0.0.0
network 10.10.1.0 0.0.0.255
#
return
ASBR1的配置文件
#
sysname ASBR1
#
mpls lsr-id 2.2.2.9
#
mpls
#
mpls ldp
#
interface GigabitEthernet1/0/0
undo shutdown
ip address 10.10.1.1 255.255.255.0
mpls
mpls ldp
#
interface GigabitEthernet2/0/0
undo shutdown
ip address 10.21.1.1 255.255.255.0
mpls
#
interface LoopBack1
ip address 2.2.2.9 255.255.255.255
#
bgp 100
peer 10.21.1.2 as-number 200
peer 1.1.1.9 as-number 100
peer 1.1.1.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization network 1.1.1.9 255.255.255.255
peer 10.21.1.2 enable
peer 10.21.1.2 route-policy policy1 export
peer 10.21.1.2 label-route-capability
peer 1.1.1.9 enable
peer 1.1.1.9 route-policy policy2 export
peer 1.1.1.9 label-route-capability
#
ospf 1
area 0.0.0.0
network 2.2.2.9 0.0.0.0
network 10.10.1.0 0.0.0.255
#
route-policy policy1 permit node 1
apply mpls-label
route-policy policy2 permit node 1
if-match mpls-label
apply mpls-label
#
return
ASBR2的配置文件
#
sysname ASBR2
#
mpls lsr-id 3.3.3.9
#
mpls
#
mpls ldp
#
interface GigabitEthernet1/0/0
undo shutdown
ip address 10.40.1.1 255.255.255.0
mpls
mpls ldp
#
interface GigabitEthernet2/0/0
undo shutdown
ip address 10.21.1.2 255.255.255.0
mpls
#
interface LoopBack1
ip address 3.3.3.9 255.255.255.255
#
bgp 200
peer 10.21.1.1 as-number 100
peer 4.4.4.9 as-number 200
peer 4.4.4.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization network 4.4.4.9 255.255.255.255
peer 10.21.1.1 enable
peer 10.21.1.1 route-policy policy1 export
peer 10.21.1.1 label-route-capability
peer 4.4.4.9 enable
peer 4.4.4.9 route-policy policy2 export
peer 4.4.4.9 label-route-capability
#
ospf 1
area 0.0.0.0
network 3.3.3.9 0.0.0.0
network 10.40.1.0 0.0.0.255
#
route-policy policy1 permit node 1
apply mpls-label
route-policy policy2 permit node 1
if-match mpls-label
apply mpls-label
#
return
PE2的配置文件
#
sysname PE2
#
ip vpn-instance vpn1
ipv4-family
route-distinguisher 200:1
apply-label per-instance
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
#
mpls lsr-id 4.4.4.9
#
mpls
#
mpls ldp
#
interface GigabitEthernet1/0/0
undo shutdown
ip address 10.40.1.2 255.255.255.0
mpls
mpls ldp
#
interface GigabitEthernet2/0/0
undo shutdown
ip binding vpn-instance vpn1
ip address 10.2.1.2 255.255.255.0
#
interface LoopBack1
ip address 4.4.4.9 255.255.255.255
#
bgp 200
peer 1.1.1.9 as-number 100
peer 1.1.1.9 ebgp-max-hop 10
peer 1.1.1.9 connect-interface LoopBack1
peer 3.3.3.9 as-number 200
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
peer 3.3.3.9 label-route-capability
#
ipv4-family vpnv4
policy vpn-target
peer 1.1.1.9 enable
#
ipv4-family vpn-instance vpn1
peer 10.2.1.1 as-number 65002
import-route direct
#
ospf 1
area 0.0.0.0
network 4.4.4.9 0.0.0.0
network 10.40.1.0 0.0.0.255
#
return
CE2的配置文件
#
sysname CE2
#
interface GigabitEthernet1/0/0
undo shutdown
ip address 10.2.1.1 255.255.255.0
#
bgp 65002
peer 10.2.1.2 as-number 200
#
ipv4-family unicast
undo synchronization import-route direct
peer 10.2.1.2 enable
#
return