组网需求
配置L3VPN迭代OSPF SR-MPLS BE隧道,保证相同VPN用户之间的安全互访。同时由于公网PE之间存在多条链路,要求数据流量在公网能够进行负载分担。
配置思路
采用如下的思路配置L3VPN迭代OSPF SR-MPLS BE隧道:
1. 骨干网上配置OSPF实现PE之间的互通。
2. 骨干网上使能MPLS,配置Segment Routing,建立SR LSP。使能TI-LFA FRR。
3. PE上配置使能IPv4地址族VPN实例,并把与CE相连的接口和相应的VPN实例绑定。
4. PE之间配置MP-IBGP交换路由信息。
5. CE与PE之间配置EBGP交换路由信息。
操作步骤
步骤1 配置接口的IP地址。
# 配置PE1。
<HUAWEI> system-view
[~HUAWEI] sysname PE1
[*HUAWEI] commit
[~PE1] interface loopback 1
[*PE1-LoopBack1] ip address 1.1.1.9 32
[*PE1-LoopBack1] quit
[*PE1] interface gigabitethernet1/0/0
[*PE1-GigabitEthernet1/0/0] ip address 172.18.1.1 24
[*PE1-GigabitEthernet1/0/0] quit
[*PE1] interface gigabitethernet3/0/0
[*PE1-GigabitEthernet3/0/0] ip address 172.16.1.1 24
[*PE1-GigabitEthernet3/0/0] quit
[*PE1] commit
# 配置P1。
<HUAWEI> system-view
[~HUAWEI] sysname P1
[*HUAWEI] commit
[~P1] interface loopback 1
[*P1-LoopBack1] ip address 2.2.2.9 32
[*P1-LoopBack1] quit
[*P1] interface gigabitethernet1/0/0
[*P1-GigabitEthernet1/0/0] ip address 172.16.1.2 24
[*P1-GigabitEthernet1/0/0] quit
[*P1] interface gigabitethernet2/0/0
[*P1-GigabitEthernet2/0/0] ip address 172.17.1.1 24
[*P1-GigabitEthernet2/0/0] quit
[*P1] commit
# 配置PE2。
<HUAWEI> system-view
[~HUAWEI] sysname PE2
[*HUAWEI] commit
[~PE2] interface loopback 1
[*PE2-LoopBack1] ip address 3.3.3.9 32
[*PE2-LoopBack1] quit
[*PE2] interface gigabitethernet1/0/0
[*PE2-GigabitEthernet1/0/0] ip address 172.19.1.2 24
[*PE2-GigabitEthernet1/0/0] quit
[*PE2] interface gigabitethernet3/0/0
[*PE2-GigabitEthernet3/0/0] ip address 172.17.1.2 24
[*PE2-GigabitEthernet3/0/0] quit
[*PE2] commit
# 配置P2。
<HUAWEI> system-view
[~HUAWEI] sysname P2
[*HUAWEI] commit
[~P2] interface loopback 1
[*P2-LoopBack1] ip address 4.4.4.9 32
[*P2-LoopBack1] quit
[*P2] interface gigabitethernet1/0/0
[*P2-GigabitEthernet1/0/0] ip address 172.18.1.2 24
[*P2-GigabitEthernet1/0/0] quit
[*P2] interface gigabitethernet2/0/0
[*P2-GigabitEthernet2/0/0] ip address 172.19.1.1 24
[*P2-GigabitEthernet2/0/0] quit
[*P2] commit
步骤2 在骨干网上配置IGP协议,实现骨干网PE和P的互通。本例中以OSPF为例进行说明。
# 配置PE1。
[~PE1] ospf 1
[*PE1-ospf-1] opaque-capability enable
[*PE1-ospf-1] area 0
[*PE1-ospf-1-area-0.0.0.0] quit
[*PE1-ospf-1] quit
[*PE1] commit
[*PE1] interface loopback 1
[*PE1-LoopBack1] ospf enable 1 area 0
[*PE1-LoopBack1] quit
[*PE1] interface gigabitethernet1/0/0
[*PE1-GigabitEthernet1/0/0] ospf enable 1 area 0
[*PE1-GigabitEthernet1/0/0] quit
[*PE1] interface gigabitethernet3/0/0
[*PE1-GigabitEthernet3/0/0] ospf enable 1 area 0
[*PE1-GigabitEthernet3/0/0] quit
[*PE1] commit
# 配置P1。
[~P1] ospf 1
[*P1-ospf-1] opaque-capability enable
[*P1-ospf-1] area 0
[*P1-ospf-1-area-0.0.0.0] quit
[*P1-ospf-1] quit
[*P1] commit
[~P1] interface loopback 1
[*P1-LoopBack1] ospf enable 1 area 0
[*P1-LoopBack1] quit
[*P1] interface gigabitethernet1/0/0
[*P1-GigabitEthernet1/0/0] ospf enable 1 area 0
[*P1-GigabitEthernet1/0/0] quit
[*P1] interface gigabitethernet2/0/0
[*P1-GigabitEthernet2/0/0] ospf enable 1 area 0
[*P1-GigabitEthernet2/0/0] quit
[*P1] commit
# 配置PE2。
[~PE2] ospf 1
[*PE2-ospf-1] opaque-capability enable
[*PE2-ospf-1] area 0
[*PE2-ospf-1-area-0.0.0.0] quit
[*PE2-ospf-1] quit
[*PE2] commit
[~PE2] interface loopback 1
[*PE2-LoopBack1] ospf enable 1 area 0
[*PE2-LoopBack1] quit
[*PE2] interface gigabitethernet3/0/0
[*PE2-GigabitEthernet3/0/0] ospf enable 1 area 0
[*PE2-GigabitEthernet3/0/0] quit
[*PE2] interface gigabitethernet1/0/0
[*PE2-GigabitEthernet1/0/0] ospf enable 1 area 0
[*PE2-GigabitEthernet1/0/0] quit
[*PE2] commit
# 配置P2。
[~P2] ospf 1
[*P2-ospf-1] opaque-capability enable
[*P2-ospf-1] area 0
[*P2-ospf-1-area-0.0.0.0] quit
[*P2-ospf-1] quit
[*P2] commit
[~P2] interface loopback 1
[*P2-LoopBack1] ospf enable 1 area 0
[*P2-LoopBack1] quit
[*P2] interface gigabitethernet1/0/0
[*P2-GigabitEthernet1/0/0] ospf enable 1 area 0
[*P2-GigabitEthernet1/0/0] quit
[*P2] interface gigabitethernet2/0/0
[*P2-GigabitEthernet2/0/0] ospf enable 1 area 0
[*P2-GigabitEthernet2/0/0] quit
[*P2] commit
步骤3 在骨干网上配置MPLS基本能力
# 配置PE1。
[~PE1] mpls lsr-id 1.1.1.9
[*PE1] mpls
[*PE1-mpls] commit
[~PE1-mpls] quit
# 配置P1。
[~P1] mpls lsr-id 2.2.2.9
[*P1] mpls
[*P1-mpls] commit
[~P1-mpls] quit
# 配置PE2。
[~PE2] mpls lsr-id 3.3.3.9
[*PE2] mpls
[*PE2-mpls] commit
[~PE2-mpls] quit
# 配置P2。
[~P2] mpls lsr-id 4.4.4.9
[*P2] mpls
[*P2-mpls] commit
[~P2-mpls] quit
步骤4 在骨干网上配置Segment Routing,同时使能TI-LFA FRR功能
# 配置PE1。
[~PE1] segment-routing
[*PE1-segment-routing] quit
[*PE1] commit
[~PE1] ospf 1
[*PE1-ospf-1] segment-routing mpls
[*PE1-ospf-1] segment-routing global-block 16000 23999
[*PE1-ospf-1] frr
[*PE1-ospf-1-frr] loop-free-alternate
[*PE1-ospf-1-frr] ti-lfa enable
[*PE1-ospf-1-frr] quit
[*PE1-ospf-1] quit
[*PE1] interface loopback 1
[*PE1-LoopBack1] ospf prefix-sid index 10
[*PE1-LoopBack1] quit
[*PE1] commit
# 配置P1。
[~P1] segment-routing
[*P1-segment-routing] quit
[*P1] commit
[~P1] ospf 1
[*P1-ospf-1] segment-routing mpls
[*P1-ospf-1] segment-routing global-block 16000 23999
[*P1-ospf-1] frr
[*P1-ospf-1-frr] loop-free-alternate
[*P1-ospf-1-frr] ti-lfa enable
[*P1-ospf-1-frr] quit
[*P1-ospf-1] quit
[*P1] interface loopback 1
[*P1-LoopBack1] ospf prefix-sid index 20
[*P1-LoopBack1] quit
[*P1] commit
# 配置PE2。
[~PE2] segment-routing
[*PE2-segment-routing] quit
[*PE2] commit
[~PE2] ospf 1
[*PE2-ospf-1] segment-routing mpls
[*PE2-ospf-1] segment-routing global-block 16000 23999
[*PE2-ospf-1] frr
[*PE2-ospf-1-frr] loop-free-alternate
[*PE2-ospf-1-frr] ti-lfa enable
[*PE2-ospf-1-frr] quit
[*PE2-ospf-1] quit
[*PE2] interface loopback 1
[*PE2-LoopBack1] ospf prefix-sid index 30
[*PE2-LoopBack1] quit
[*PE2] commit
# 配置P2。
[~P2] segment-routing
[*P2-segment-routing] quit
[*P2] commit
[~P2] ospf 1
[*P2-ospf-1] segment-routing mpls
[*P2-ospf-1] segment-routing global-block 16000 23999
[*P2-ospf-1] frr
[*P2-ospf-1-frr] loop-free-alternate
[*P2-ospf-1-frr] ti-lfa enable
[*P2-ospf-1-frr] quit
[*P2-ospf-1] quit
[*P2] interface loopback 1
[*P2-LoopBack1] ospf prefix-sid index 40
[*P2-LoopBack1] quit
[*P2] commit
# 配置完成后,在PE设备上执行display tunnel-info all
命令,可以看到SR LSP已建立。以PE1的显示为例。
[~PE1] display tunnel-info all
Tunnel ID Type Destination Status
----------------------------------------------------------------------------------------
0x000000002900000003 srbe-lsp 4.4.4.9 UP
0x000000002900000004 srbe-lsp 2.2.2.9 UP
0x000000002900000005 srbe-lsp 3.3.3.9 UP
# 在PE1上使用Ping检测SR LSP连通性,例如:
[~PE1] ping lsp segment-routing ip 3.3.3.9 32 version draft2
LSP PING FEC: SEGMENT ROUTING IPV4 PREFIX 3.3.3.9/32 : 100 data bytes, press CTRL_C to break
Reply from 3.3.3.9: bytes=100 Sequence=1 time=256 ms
Reply from 3.3.3.9: bytes=100 Sequence=2 time=3 ms
Reply from 3.3.3.9: bytes=100 Sequence=3 time=4 ms
Reply from 3.3.3.9: bytes=100 Sequence=4 time=4 ms
Reply from 3.3.3.9: bytes=100 Sequence=5 time=4 ms
--- FEC: SEGMENT ROUTING IPV4 PREFIX 3.3.3.9/32 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 3/54/256 ms
步骤5 在PE之间建立MP-IBGP对等体关系
# 配置PE1。
[~PE1] bgp 100
[~PE1-bgp] peer 3.3.3.9 as-number 100
[*PE1-bgp] peer 3.3.3.9 connect-interface loopback 1
[*PE1-bgp] ipv4-family vpnv4
[*PE1-bgp-af-vpnv4] peer 3.3.3.9 enable
[*PE1-bgp-af-vpnv4] commit
[~PE1-bgp-af-vpnv4] 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] ipv4-family vpnv4
[*PE2-bgp-af-vpnv4] peer 1.1.1.9 enable
[*PE2-bgp-af-vpnv4] commit
[~PE2-bgp-af-vpnv4] quit
[~PE2-bgp] quit
配置完成后,在PE设备上执行display bgp peer
或display bgp vpnv4 all peer
命令,可以看到PE之间的BGP对等体关系已建立,并达到established状态。以PE1的显示为例。
[~PE1] display bgp peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.9 4 100 5 5 0 00:00:12 Established 0
[~PE1] display bgp vpnv4 all peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.9 4 100 12 18 0 00:09:38 Established 1
步骤6 在PE设备上配置使能IPv4地址族的VPN实例,将CE接入PE
# 配置PE1。
[~PE1] ip vpn-instance vpna
[*PE1-vpn-instance-vpna] ipv4-family
[*PE1-vpn-instance-vpna-af-ipv4] route-distinguisher 100:1
[*PE1-vpn-instance-vpna-af-ipv4] vpn-target 111:1 both
[*PE1-vpn-instance-vpna-af-ipv4] quit
[*PE1-vpn-instance-vpna] quit
[*PE1] interface gigabitethernet1/0/0
[*PE1-GigabitEthernet1/0/0] ip binding vpn-instance vpna
[*PE1-GigabitEthernet1/0/0] ip address 10.1.1.2 24
[*PE1-GigabitEthernet1/0/0] quit
[*PE1] commit
# 配置PE2。
[~PE2] ip vpn-instance vpna
[*PE2-vpn-instance-vpna] ipv4-family
[*PE2-vpn-instance-vpna-af-ipv4] route-distinguisher 200:1
[*PE2-vpn-instance-vpna-af-ipv4] vpn-target 111:1 both
[*PE2-vpn-instance-vpna-af-ipv4] quit
[*PE2-vpn-instance-vpna] quit
[*PE2] interface gigabitethernet1/0/0
[*PE2-GigabitEthernet1/0/0] ip binding vpn-instance vpna
[*PE2-GigabitEthernet1/0/0] ip address 10.3.1.2 24
[*PE2-GigabitEthernet1/0/0] quit
[*PE2] commit
# 按图配置各CE的接口IP地址,配置过程请参见后面的配置文件。
配置完成后,在PE设备上执行display ip vpn-instance verbose
命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
当PE上有多个绑定了同一个VPN的接口,则使用
ping -vpn-instance
命令ping对端PE接入的CE时,要指定源IP地址,即要指定ping -vpn-instance vpn-instance-name -a source-ip-address dest-ip-address
命令中的参数-a source-ip-address
,否则可能ping不通。
步骤7 在PE设备上配置隧道选择策略,优选SR LSP。
# 配置PE1。
[~PE1] tunnel-policy p1
[*PE1-tunnel-policy-p1] tunnel select-seq sr-lsp load-balance-number 2
[*PE1-tunnel-policy-p1] quit
[*PE1] commit
[~PE1] ip vpn-instance vpna
[*PE1-vpn-instance-vpna] ipv4-family
[*PE1-vpn-instance-vpna-af-ipv4] tnl-policy p1
[*PE1-vpn-instance-vpna-af-ipv4] quit
[*PE1-vpn-instance-vpna] quit
[*PE1] commit
# 配置PE2。
[~PE2] tunnel-policy p1
[*PE2-tunnel-policy-p1] tunnel select-seq sr-lsp load-balance-number 2
[*PE2-tunnel-policy-p1] quit
[*PE2] commit
[~PE2] ip vpn-instance vpna
[*PE2-vpn-instance-vpna] ipv4-family
[*PE2-vpn-instance-vpna-af-ipv4] tnl-policy p1
[*PE2-vpn-instance-vpna-af-ipv4] quit
[*PE2-vpn-instance-vpna] quit
[*PE2] commit
步骤8 在PE与CE之间建立EBGP对等体关系
# 配置CE1。
[~CE1] interface loopback 1
[*CE1-LoopBack1] ip address 10.11.1.1 32
[*CE1-LoopBack1] quit
[*CE1] interface gigabitethernet1/0/0
[*CE1-GigabitEthernet1/0/0] ip address 10.1.1.1 24
[*CE1-GigabitEthernet1/0/0] quit
[*CE1] bgp 65410
[*CE1-bgp] peer 10.1.1.2 as-number 100
[*CE1-bgp] network 10.11.1.1 32
[*CE1-bgp] quit
[*CE1] commit
# 配置PE1。
[~PE1] bgp 100
[*PE1-bgp] ipv4-family vpn-instance vpna
[*PE1-bgp-vpna] peer 10.1.1.1 as-number 65410
[*PE1-bgp-vpna] commit
[*PE1-bgp-vpna] quit
配置完成后,在PE设备上执行display bgp vpnv4 vpn-instance peer
命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
以PE1与CE1的对等体关系为例:
[~PE1] display bgp vpnv4 vpn-instance vpna peer
BGP local router ID : 1.1.1.9
Local AS number : 100
VPN-Instance vpna, Router ID 1.1.1.9:
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
10.1.1.1 4 65410 19 18 0 00:12:39 Established 1
步骤9 检查配置结果
在PE设备上执行display ip routing-table vpn-instance
命令,可以看到去往CE上的Loopback接口路由。
以PE1的显示为例:
[~PE1] display ip routing-table vpn-instance vpna
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route
------------------------------------------------------------------------------
Routing Tables: vpna
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.1.0/24 Direct 0 0 D 10.1.1.2 GigabitEthernet1/0/0
10.1.1.2/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.11.1.1/32 EBGP 255 0 RD 10.1.1.1 GigabitEthernet1/0/0
10.22.2.2/32 IBGP 255 0 RD 3.3.3.9 GigabitEthernet1/0/0
IBGP 255 0 RD 3.3.3.9 GigabitEthernet3/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
同一VPN的CE能够相互Ping通,例如: CE1能够Ping通CE2( 10.22.2.2)。
[~CE1] ping -a 10.11.1.1 10.22.2.2
PING 10.22.2.2: 56 data bytes, press CTRL_C to break
Reply from 10.22.2.2: bytes=56 Sequence=1 ttl=252 time=428 ms
Reply from 10.22.2.2: bytes=56 Sequence=2 ttl=252 time=4 ms
Reply from 10.22.2.2: bytes=56 Sequence=3 ttl=252 time=5 ms
Reply from 10.22.2.2: bytes=56 Sequence=4 ttl=252 time=3 ms
Reply from 10.22.2.2: bytes=56 Sequence=5 ttl=252 time=4 ms
--- 10.22.2.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 3/88/428 ms
--本文完