Access to MPLS L3VPN through an LDP MPLS L2VPN
The MPLS L2VPN in this configuration example is a point-to-point MPLS L2VPN that provides PPP-to-Ethernet interworking.
Network requirements
The backbone is an MPLS L3VPN, which advertises VPN routes through BGP and forwards VPN packets based on MPLS labels.
CE 1 and CE 2 belong to VPN 1 whose route target is 111:1 and RD is 200:1. CE 1 is connected to PE 1 through interface Serial 2/1/0, which uses PPP encapsulation. CE 2 is connected to the MPLS L3VPN through interface GigabitEthernet 2/1/1.
Perform the following configurations to allow communication between CE 1 and CE 2:
Set up an LDP PW between PE 1 and PE-agg, so that CE 1 can access the MPLS L3VPN through MPLS L2VPN.
Configure MPLS L2VPN interworking on interface Serial 2/1/0 of PE 1 and the L2VE interface of PE-agg.
This configuration is required because CE 1 is connected to the MPLS L2VPN through PPP, not Ethernet or VLAN.
Run EBGP between CE 1 and PE-agg and between CE 2 and PE 2 to exchange VPN routing information.
Run MP-IBGP between PE-agg and PE 2 to exchange VPN routing information.
Run IS-IS between PE-agg and PE 2 to ensure IP connectivity within the backbone.
Run OSPF among PE 1, P, and PE-agg to ensure IP connectivity between the PEs.
Figure 131: Network diagram
Table 46: Interface and IP address assignment
Device | Interface | IP address | Device | Interface | IP address |
---|---|---|---|---|---|
CE 1 | Ser2/1/0 | 100.1.1.1/24 | PE-agg | Loop0 | 3.3.3.9/32 |
PE 1 | Loop0 | 1.1.1.9/32 | POS2/1/0 | 10.2.2.2/24 | |
POS2/1/0 | 10.2.1.1/24 | POS2/1/1 | 10.3.3.1/24 | ||
P | Loop0 | 2.2.2.9/32 | VE-L3VPN1 | 100.1.1.2/24 | |
POS2/1/0 | 10.2.1.2/24 | PE 2 | Loop0 | 4.4.4.9/32 | |
POS2/1/1 | 10.2.2.1/24 | POS2/1/0 | 10.3.3.2/24 | ||
CE 2 | GE2/1/1 | 100.2.1.2/24 | GE2/1/1 | 100.2.1.1/24 |
Configuration procedure
Configure IP addresses for interfaces as shown in Table 46. (Details not shown.)
Create interfaces VE-L2VPN 1 and VE-L3VPN 1 on PE-agg:
# Create interface VE-L2VPN 1.
<PEagg> system-view [PEagg] interface ve-l2vpn 1 [PEagg-VE-L2VPN1] quit
# Create interface VE-L3VPN 1.
[PEagg] interface ve-l3vpn 1 [PEagg-VE-L3VPN1] quit
Configure MPLS L2VPN:
Configure OSPF on PE 1, P, and PE-agg, and advertise interface addresses:
# Configure PE 1.
<PE1> system-view [PE1] ospf [PE1-ospf-1] area 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 10.2.1.0 0.0.0.255 [PE1-ospf-1-area-0.0.0.0] quit [PE1-ospf-1] quit
# Configure the P device.
<P> system-view [P] ospf [P-ospf-1] area 0 [P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0 [P-ospf-1-area-0.0.0.0] network 10.2.2.0 0.0.0.255 [P-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255 [P-ospf-1-area-0.0.0.0] quit [P-ospf-1] quit
# Configure PE-agg.
[PEagg] ospf [PEagg-ospf-1] area 0 [PEagg-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0 [PEagg-ospf-1-area-0.0.0.0] network 10.2.2.0 0.0.0.255 [PEagg-ospf-1-area-0.0.0.0] quit [PEagg-ospf-1] quit
Configure basic MPLS and MPLS LDP on PE 1, P, and PE-agg:
# Configure PE 1.
[PE1] mpls lsr-id 1.1.1.9 [PE1] mpls ldp [PE1-ldp] lsp-trigger all [PE1-ldp] quit [PE1] interface pos 2/1/0 [PE1-Pos2/1/0] mpls enable [PE1-Pos2/1/0] mpls ldp enable [PE1-Pos2/1/0] quit
# Configure the P device.
[P] mpls lsr-id 2.2.2.9 [P] mpls ldp [P-ldp] lsp-trigger all [P-ldp] quit [P] interface pos 2/1/0 [P-Pos2/1/0] mpls enable [P-Pos2/1/0] mpls ldp enable [P-Pos2/1/0] quit [P] interface pos 2/1/1 [P-Pos2/1/1] mpls enable [P-Pos2/1/1] mpls ldp enable [P-Pos2/1/1] quit
# Configure PE-agg.
[PEagg] mpls lsr-id 3.3.3.9 [PEagg] mpls ldp [PEagg-ldp] lsp-trigger all [PEagg-ldp] quit [PEagg] interface pos 2/1/0 [PEagg-Pos2/1/0] mpls enable [PEagg-Pos2/1/0] mpls ldp enable [PEagg-Pos2/1/0] quit
Enable L2VPN on PE 1 and PE-agg:
# Configure PE 1.
[PE1] l2vpn enable
# Configure PE-agg.
[PEagg] l2vpn enable
Configure the AC interfaces of PE 1 and PE-agg, create PWs that support interworking, and bind the interface to the PWs:
# On Serial 2/1/0 of PE 1, configure PPP to support IPCP negotiation without IP address.
[PE1] interface serial 2/1/0 [PE1-Serial2/1/0] link-protocol ppp [PE1-Serial2/1/0] ppp ipcp ignore local-ip [PE1-Serial2/1/0] quit
# On PE 1, create a PW that supports interworking in the group, and bind Serial 2/1/0 to the PW.
[PE1] xconnect-group 1 [PE1-xcg-1] connection 1 [PE1-xcg-1-1] ac interface serial 2/1/0 [PE1-xcg-1-1] interworking ipv4 [PE1-xcg-1-1] peer 3.3.3.9 pw-id 101 [PE1-xcg-1-1-3.3.3.9-101] quit
# On the L2VE interface of PE-agg, specify the default next hop as 100.1.1.2.
[PEagg] interface ve-l2vpn 1 [PEagg-VE-L2VPN1] default-nexthop ip 100.1.1.2 [PEagg-VE-L2VPN1] quit
# On PE-agg, create a PW that supports interworking in the group, and bind VE-L2VPN 1 to the PW.
[PEagg] xconnect-group 1 [PEagg-xcg-1] connection 1 [PEagg-xcg-1-1] ac interface ve-l2vpn 1 [PEagg-xcg-1-1] interworking ipv4 [PEagg-xcg-1-1] peer 1.1.1.9 pw-id 101 [PEagg-xcg-1-1-1.1.1.9-101] quit
Configure the AC interface of CE 1 (Serial 2/1/0).
<CE1> system-view [CE1] interface serial 2/1/0 [CE1-Serial2/1/0] link-protocol ppp [CE1-Serial2/1/0] ip address 100.1.1.1 24
Configure MPLS L3VPN:
Configure IS-IS on PE 2 and PE-agg, and advertise interface addresses:
# Configure PE-agg.
[PEagg] isis 1 [PEagg-isis-1] network-entity 10.0000.0000.0001.00 [PEagg-isis-1] quit [PEagg] interface pos 2/1/1 [PEagg-Pos2/1/1] isis enable 1 [PEagg-Pos2/1/1] quit [PEagg] interface loopback 0 [PEagg-LoopBack0] isis enable 1 [PEagg-LoopBack0] quit
# Configure PE 2.
[PE2] isis 1 [PE2-isis-1] network-entity 10.0000.0000.0002.00 [PE2-isis-1] quit [PE2] interface pos 2/1/0 [PE2-Pos2/1/0] isis enable 1 [PE2-Pos2/1/0] quit [PE2] interface loopback 0 [PE2-LoopBack0] isis enable 1 [PE2-LoopBack0] quit
Configure basic MPLS and MPLS LDP on PE-agg and PE 2:
# Configure PE-agg.
[PEagg] interface pos 2/1/1 [PEagg-Pos2/1/1] mpls enable [PEagg-Pos2/1/1] mpls ldp enable [PEagg-Pos2/1/1] quit
# Configure PE 2.
[PE2] mpls lsr-id 4.4.4.9 [PE2] mpls ldp [PE2-ldp] lsp-trigger all [PE2-ldp] quit [PE2] interface pos 2/1/0 [PE2-Pos2/1/0] mpls enable [PE2-Pos2/1/0] mpls ldp enable [PE2-Pos2/1/0] quit
On PE-agg and PE 2, create VPN instance VPN1, and bind the VPN instance to the interface connected to the CE:
# Configure PE-agg.
[PEagg] ip vpn-instance VPN1 [PEagg-vpn-instance-VPN1] route-distinguisher 200:1 [PEagg-vpn-instance-VPN1] vpn-target 111:1 both [PEagg-vpn-instance-VPN1] quit [PEagg] interface ve-l3vpn 1 [PEagg-VE-L3VPN1] ip binding vpn-instance VPN1 [PEagg-VE-L3VPN1] ip address 100.1.1.2 24
# Configure PE 2.
[PE2] ip vpn-instance VPN1 [PE2-vpn-instance-VPN1] route-distinguisher 200:1 [PE2-vpn-instance-VPN1] vpn-target 111:1 both [PE2-vpn-instance-VPN1] quit [PE2] interface gigabitethernet 2/1/1 [PE2-GigabitEthernet2/1/1] ip binding vpn-instance VPN1 [PE2-GigabitEthernet2/1/1] ip address 100.2.1.1 24 [PE2-GigabitEthernet2/1/1] quit
Establish EBGP peer relationships between CE 1 and PE-agg, and between CE 2 and PE 2 to redistribute VPN routes:
# Configure CE 1 and specify PE-agg as the peer.
<CE1> system-view [CE1] bgp 65010 [CE1-bgp] peer 100.1.1.2 as-number 100 [CE1-bgp] address-family ipv4 [CE1-bgp-ipv4] peer 100.1.1.2 enable [CE1-bgp-ipv4] import-route direct [CE1-bgp-ipv4] quit [CE1-bgp] quit
# Configure PE-agg and specify CE 1 as the peer.
[PEagg] bgp 100 [PEagg-bgp] ip vpn-instance VPN1 [PEagg-bgp-VPN1] peer 100.1.1.1 as-number 65010 [PEagg-bgp-VPN1] address-family ipv4 [PEagg-bgp-ipv4-VPN1] peer 100.1.1.1 enable [PEagg-bgp-ipv4-VPN1] import-route direct [PEagg-bgp-ipv4-VPN1] quit [PEagg-bgp-VPN1] quit [PEagg-bgp] quit
# Configure CE 2 and specify PE 2 as the peer.
[CE2] bgp 65020 [CE2-bgp] peer 100.2.1.1 as-number 100 [CE2-bgp] address-family ipv4 [CE2-bgp-ipv4] peer 100.2.1.1 enable [CE2-bgp-ipv4] import-route direct [CE2-bgp-ipv4] quit [CE2-bgp] quit
# Configure PE 2 and specify CE 2 as the peer.
[PE2] bgp 100 [PE2-bgp] ip vpn-instance VPN1 [PE2-bgp-VPN1] peer 100.2.1.2 as-number 65020 [PE2-bgp-VPN1] address-family ipv4 [PE2-bgp-ipv4-VPN1] peer 100.2.1.2 enable [PE2-bgp-ipv4-VPN1] import-route direct [PE2-bgp-ipv4-VPN1] quit [PE2-bgp-VPN1] quit [PE2-bgp] quit
Establish an MP-IBGP peer relationship between PE-agg and PE 2:
# Configure PE-agg.
[PEagg] bgp 100 [PEagg-bgp] peer 4.4.4.9 as-number 100 [PEagg-bgp] peer 4.4.4.9 connect-interface loopback 0 [PEagg-bgp] address-family vpnv4 [PEagg-bgp-vpnv4] peer 4.4.4.9 enable [PEagg-bgp-vpnv4] quit [PEagg-bgp] quit
# Configure PE 2.
[PE2] bgp 100 [PE2-bgp] peer 3.3.3.9 as-number 100 [PE2-bgp] peer 3.3.3.9 connect-interface loopback 0 [PE2-bgp] address-family vpnv4 [PE2-bgp-vpnv4] peer 3.3.3.9 enable [PE2-bgp-vpnv4] quit [PE2-bgp] quit
The default MTU value varies by interface type. To avoid packet fragmentation, set the MTU value for each POS interface on each device to 1500 bytes. The following shows the MTU configuration on PE 1.
[PE1] interface pos 2/1/0 [PE1-Pos2/1/0] mtu 1500 [PE1-Pos2/1/0] shutdown [PE1-Pos2/1/0] undo shutdown
Verifying the configuration
# Ping CE 2 from CE 1 to verify their connectivity.
<CE1> ping 100.2.1.2 Ping 100.2.1.2 (100.2.1.2): 56 data bytes, press CTRL_C to break 56 bytes from 100.2.1.2: icmp_seq=0 ttl=128 time=1.073 ms 56 bytes from 100.2.1.2: icmp_seq=1 ttl=128 time=1.428 ms 56 bytes from 100.2.1.2: icmp_seq=2 ttl=128 time=19.367 ms 56 bytes from 100.2.1.2: icmp_seq=3 ttl=128 time=1.013 ms 56 bytes from 100.2.1.2: icmp_seq=4 ttl=128 time=0.684 ms --- Ping statistics for 100.2.1.2 --- 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.684/4.713/19.367/7.331 ms