Example for Configuring a DS-TE Tunnel in IETF Mode (RDM)
Networking Requirements
As shown in Figure 4-46, PEs and P on the MPLS backbone network are enabled with OSPF to communicate with each other. The P, however, does not support MPLS LDP. PE1 accesses VPN-A and PE2 accesses VPN-B. PE3 and PE4 transmit services to each other using the TE tunnel. As shown in Figure 4-46, VPN-A transmits AF2 and AF1 traffic; VPN-B transmits AF2, AF1, and BE traffic; traffic between PE3 and PE4 belongs to the BE type. The QoS requirements of different types of traffic are as follows:
Traffic |
Bandwidth |
Jitter |
---|---|---|
AF2 traffic on VPN-A(DSCP20) |
100 Mbit/s |
Shorter than 50 ms |
AF1 traffic on VPN-A(DSCP10) |
50 Mbit/s |
Shorter than 200 ms |
AF2 traffic on VPN-B(DSCP20) |
100 Mbit/s |
Shorter than 50 ms |
AF1 traffic on VPN-B(DSCP10) |
50 Mbit/s |
Shorter than 200 ms |
BE traffic on VPN-B(DSCP0) |
50 Mbit/s |
None |
BE traffic between PE3 and PE4(DSCP0) |
50 Mbit/s |
None |
The networking requires that a DS-TE tunnel be set up between PE1 and PE2 to transmit the preceding traffic and meet different QoS requirements of different traffic types. The bandwidth constraints model is RDM. CTi can preempt the bandwidth of CTj (0 <=i < j <= 7). This means that bandwidths will first be allocated for CTs with higher priorities.
Configuration Roadmap
The configuration roadmap is as follows:
- Set up two TE tunnels to transmit AF2 and AF1 traffic of VPN-A and VPN-B.
- Specify traffic between PE3 and PE4 to be forwarded through a tunnel different from the one for VPN-B, because both of them contain BE traffic.
- Specify traffic between PE3 and PE4 to be forwarded through a tunnel the same as the one for VPN-A, because they do not contain the same type of service.
- Set up two DS-TE tunnels on Tunnel0/0/1 and Tunnel0/0/2. Each tunnel is configured with three CTs with the priority being 0, that is, CT0, CT1, and CT2. CT0, CT1, and CT2 bear BE, AF1, and AF2 traffic respectively.
- CT2 and CT1 of Tunnel0/0/1 transmit AF2 and AF1 traffic of VPN-A. CT0 of Tunnel0/0/1 transmits traffic between PE3 and PE4. CT2, CT1, and CT0 of Tunnel0/0/2 transmit AF2, AF1, and BE traffic of VPN-B.
Paths of the two tunnels are the same. Therefore, the BCi bandwidth should be equal to or greater than the total bandwidth of CTi to CT7 of all the TE tunnels. In addition, the maximum reservable bandwidth for links should be equal to or greater than the bandwidth of BC0. To implement accurate bandwidth control, the bandwidth relationships between BCi and CT1 to CT7 is as follows:
Bandwidth of BC2 on the link >= (Bandwidth of CT2 of Tunnel0/0/1 and Tunnel0/0/2) x 125% = 250 Mbit/s
Bandwidth of BC1 >= Bandwidth of BC2 + (Bandwidth of CT1 of Tunnel0/0/1 and Tunnel0/0/2) x 125% = 375 Mbit/s
Bandwidth of BC0 >= Bandwidth of BC1 + (Bandwidth of CT0 of Tunnel0/0/1 and Tunnel0/0/2) x 125% = 500 Mbit/s
Reservable bandwidth of the link >= Bandwidth of BC0 = 500 Mbit/s
- Services of the same type in two TE tunnels require the same bandwidth and jitter. Therefore, the CT template is used to configure the TE tunnel.
Procedure
- Configure IP addresses for interfaces on PEs and the P.
Enable OSPF to ensure that PEs and the P can communicate with each
other.
# Configure PE1. The configurations of P, PE2, PE3, and PE4 are similar to the configuration of PE1, and are not mentioned here.
<Huawei> system-view [Huawei] sysname PE1 [PE1] interface gigabitethernet 3/0/0 [PE1-GigabitEthernet3/0/0] ip address 172.1.1.1 255.255.255.0 [PE1-GigabitEthernet3/0/0] quit [PE1] interface gigabitethernet 4/0/0 [PE1-GigabitEthernet4/0/0] ip address 10.5.1.1 255.255.255.0 [PE1-GigabitEthernet4/0/0] quit [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 [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 172.1.1.0 0.0.0.255 [PE1-ospf-1-area-0.0.0.0] network 10.5.1.0 0.0.0.255 [PE1-ospf-1-area-0.0.0.0] quit [PE1-ospf-1] quit
After the configurations are complete, OSPF adjacency can be created between PE1, P, and PE2. By using the display ospf peer command, you can see that the status of the adjacency is Full. By using the display ip routing-table command, you can see that PEs can learn the Loopback1 route from each other.
- Configure LSR ID and enable MPLS on each PE and P. Enable
MPLS TE and RSVP-TE on PE1, PE2, and the P. Enable MPLS LDP on all
PEs.
# Configure PE3.
[PE3] mpls lsr-id 4.4.4.9 [PE3] mpls [PE3-mpls] quit [PE3] mpls ldp [PE3-mpls-ldp] quit [PE3] interface gigabitethernet 1/0/0 [PE3-GigabitEthernet1/0/0] mpls [PE3-GigabitEthernet1/0/0] mpls ldp [PE3-GigabitEthernet1/0/0] quit
# Configure PE1.
[PE1] mpls lsr-id 1.1.1.9 [PE1] mpls [PE1-mpls] mpls te [PE1-mpls] mpls rsvp-te [PE1-mpls] quit [PE1] mpls ldp [PE1-mpls-ldp] quit [PE1] interface gigabitethernet 3/0/0 [PE1-GigabitEthernet3/0/0] mpls [PE1-GigabitEthernet3/0/0] mpls te [PE1-GigabitEthernet3/0/0] mpls rsvp-te [PE1-GigabitEthernet3/0/0] quit [PE1] interface gigabitethernet 4/0/0 [PE1-GigabitEthernet4/0/0] mpls [PE1-GigabitEthernet4/0/0] mpls ldp [PE1-GigabitEthernet4/0/0] quit
# Configure the P.
[P] mpls lsr-id 2.2.2.9 [P] mpls [P-mpls] mpls te [P-mpls] mpls rsvp-te [P-mpls] quit [P] interface gigabitethernet 1/0/0 [P-GigabitEthernet1/0/0] mpls [P-GigabitEthernet1/0/0] mpls te [P-GigabitEthernet1/0/0] mpls rsvp-te [P-GigabitEthernet1/0/0] quit [P] interface gigabitethernet 2/0/0 [P-GigabitEthernet2/0/0] mpls [P-GigabitEthernet2/0/0] mpls te [P-GigabitEthernet2/0/0] mpls rsvp-te [P-GigabitEthernet2/0/0] quit
# Configure PE2.
[PE2] mpls lsr-id 3.3.3.9 [PE2] mpls [PE2-mpls] mpls te [PE2-mpls] mpls rsvp-te [PE2-mpls] quit [PE2] mpls ldp [PE2-mpls-ldp] quit [PE2] interface gigabitethernet 3/0/0 [PE2-GigabitEthernet3/0/0] mpls [PE2-GigabitEthernet3/0/0] mpls te [PE2-GigabitEthernet3/0/0] mpls rsvp-te [PE2-GigabitEthernet3/0/0] quit [PE2] interface gigabitethernet 4/0/0 [PE2-GigabitEthernet4/0/0] mpls [PE2-GigabitEthernet4/0/0] mpls ldp [PE2-GigabitEthernet4/0/0] quit
# Configure PE4.
[PE4] mpls lsr-id 5.5.5.9 [PE4] mpls [PE4-mpls] quit [PE4] mpls ldp [PE4-mpls-ldp] quit [PE4] interface gigabitethernet 1/0/0 [PE4-GigabitEthernet1/0/0] mpls [PE4-GigabitEthernet1/0/0] mpls ldp [PE4-GigabitEthernet1/0/0] quit
After completing the configuration, run the display mpls rsvp-te interface command on PE1, PE2, or the P to view interfaces enabled with RSVP and information about RSVP. Run the display mpls ldp lsp command on PE1, PE2, PE3, or PE4. An LDP LSP exists between PE3 and PE1, and between PE2 and PE4.
- Configure OSPF TE on PE1, PE2, and the P and enable CSPF.
# Configure OSPF TE on PE1, PE2, and the P and enable CSPF on the ingress of the TE tunnel.
# Configure PE1.
[PE1] ospf 1 [PE1-ospf-1] opaque-capability enable [PE1-ospf-1] area 0 [PE1-ospf-1-area-0.0.0.0] mpls-te enable [PE1-ospf-1-area-0.0.0.0] quit [PE1-ospf-1] quit [PE1] mpls [PE1-mpls] mpls te cspf
# Configure P.
[P] ospf 1 [P-ospf-1] opaque-capability enable [P-ospf-1] area 0 [P-ospf-1-area-0.0.0.0] mpls-te enable [P-ospf-1-area-0.0.0.0] quit [P-ospf-1] quit
# Configure PE2.
[PE2] ospf 1 [PE2-ospf-1] opaque-capability enable [PE2-ospf-1] area 0 [PE2-ospf-1-area-0.0.0.0] mpls-te enable [PE2-ospf-1-area-0.0.0.0] quit [PE2-ospf-1] quit [PE2] mpls [PE2-mpls] mpls te cspf [PE2-mpls] quit
After completing the configuration, run the display ospf mpls-te command to view the TE LSA information in the OSPF Link State Database (LSDB).
- Configure the DS-TE mode and the bandwidth constraints
model on PE1, PE2, and the P.
# Configure PE1.
[PE1] mpls [PE1-mpls] mpls te ds-te mode ietf [PE1-mpls] mpls te ds-te bcm rdm [PE1-mpls] quit
# Configure P.
[P] mpls [P-mpls] mpls te ds-te mode ietf [P-mpls] mpls te ds-te bcm rdm [P-mpls] quit
# Configure PE2.
[PE2] mpls [PE2-mpls] mpls te ds-te mode ietf [PE2-mpls] mpls te ds-te bcm rdm [PE2-mpls] quit
After completing the configuration, run the display mpls te ds-te summary command on a PE or P to view information about DS-TE configuration.
The display on PE1 is used as an example.
[PE1] display mpls te ds-te summary DS-TE IETF Supported :YES DS-TE MODE :IETF Bandwidth Constraint Model :RDM TEClass Mapping (default): TE-Class ID Class Type Priority TE-Class 0 0 0 TE-Class 1 1 0 TE-Class 2 2 0 TE-Class 3 3 0 TE-Class 4 0 7 TE-Class 5 1 7 TE-Class 6 2 7 TE-Class 7 3 7
- Configure link bandwidth on the PEs and P.
# Configure PE1.
[PE1] interface gigabitethernet 3/0/0 [PE1-GigabitEthernet3/0/0] mpls te bandwidth max-reservable-bandwidth 500000 [PE1-GigabitEthernet3/0/0] mpls te bandwidth bc0 500000 bc1 375000 bc2 250000 [PE1-GigabitEthernet3/0/0] quit
# Configure the P.
[P] interface gigabitethernet 1/0/0 [P-GigabitEthernet1/0/0] mpls te bandwidth max-reservable-bandwidth 500000 [P-GigabitEthernet1/0/0] mpls te bandwidth bc0 500000 bc1 375000 bc2 250000 [P-GigabitEthernet1/0/0] quit [P] interface gigabitethernet 2/0/0 [P-GigabitEthernet2/0/0] mpls te bandwidth max-reservable-bandwidth 500000 [P-GigabitEthernet2/0/0] mpls te bandwidth bc0 500000 bc1 375000 bc2 250000 [P-GigabitEthernet2/0/0] quit
# Configure PE2.
[PE2] interface gigabitethernet 3/0/0 [PE2-GigabitEthernet3/0/0] mpls te bandwidth max-reservable-bandwidth 500000 [PE2-GigabitEthernet3/0/0] mpls te bandwidth bc0 500000 bc1 375000 bc2 250000 [PE2-GigabitEthernet3/0/0] quit
After completing the configuration, run the display mpls te link-administration bandwidth-allocation interface command on the PE to view information about BC bandwidth allocation for interfaces.
The display on PE1 is used as an example.
[PE1] display mpls te link-administration bandwidth-allocation interface gigabitethernet 3/0/0 Link ID: GigabitEthernet3/0/0 Bandwidth Constraint Model : Russian Dolls Model (RDM) Physical Link Bandwidth(Kbits/sec) : 1000000 Maximum Link Reservable Bandwidth(Kbits/sec): 500000 Reservable Bandwidth BC0(Kbits/sec) : 500000 Reservable Bandwidth BC1(Kbits/sec) : 375000 Reservable Bandwidth BC2(Kbits/sec) : 250000 Reservable Bandwidth BC3(Kbits/sec) : 0 Reservable Bandwidth BC4(Kbits/sec) : 0 Reservable Bandwidth BC5(Kbits/sec) : 0 Reservable Bandwidth BC6(Kbits/sec) : 0 Reservable Bandwidth BC7(Kbits/sec) : 0 Downstream Bandwidth (Kbits/sec) : 0 IPUpdown Link Status : UP PhysicalUpdown Link Status : UP GracefulUpdown Link Status : DOWN ---------------------------------------------------------------------- TE-CLASS CT PRIORITY BW RESERVED BW AVAILABLE DOWNSTREAM (Kbit/sec) (Kbit/sec) RSVPLSPNODE COUNT ---------------------------------------------------------------------- 0 0 0 0 500000 0 1 1 0 0 375000 0 2 2 0 0 250000 0 3 3 0 0 0 0 4 0 7 0 500000 0 5 1 7 0 375000 0 6 2 7 0 250000 0 7 3 7 0 0 0 8 - - - - - 9 - - - - - 10 - - - - - 11 - - - - - 12 - - - - - 13 - - - - - 14 - - - - - 15 - - - - - ----------------------------------------------------------------------
- Configure a TE-class mapping table on each PE.
# Configure PE1.
[PE1] te-class-mapping [PE1-te-class-mapping] te-class0 class-type ct0 priority 0 description For-BE [PE1-te-class-mapping] te-class1 class-type ct1 priority 0 description For-AF1 [PE1-te-class-mapping] te-class2 class-type ct2 priority 0 description For-AF2 [PE1-te-class-mapping] quit
# Configure PE2.
[PE2] te-class-mapping [PE2-te-class-mapping] te-class0 class-type ct0 priority 0 description For-BE [PE2-te-class-mapping] te-class1 class-type ct1 priority 0 description For-AF1 [PE2-te-class-mapping] te-class2 class-type ct2 priority 0 description For-AF2 [PE2-te-class-mapping] quit
After completing the configuration, run the display mpls te ds-te te-class-mapping command on a PE to view information about the TE-class mapping table.
The display on PE1 is used as an example.
[PE1] display mpls te ds-te te-class-mapping TE-Class ID Class Type Priority Description TE-Class0 0 0 For-BE TE-Class1 1 0 For-AF1 TE-Class2 2 0 For-AF2 TE-Class3 - - - TE-Class4 - - - TE-Class5 - - - TE-Class6 - - - TE-Class7 - - -
- Configure an explicit path on the PE.
# Configure PE1.
[PE1] explicit-path path1 [PE1-explicit-path-path1] next hop 172.1.1.2 [PE1-explicit-path-path1] next hop 172.2.1.2 [PE1-explicit-path-path1] next hop 3.3.3.9 [PE1-explicit-path-path1] quit
# Configure PE2.
[PE2] explicit-path path1 [PE2-explicit-path-path1] next hop 172.2.1.1 [PE2-explicit-path-path1] next hop 172.1.1.1 [PE2-explicit-path-path1] next hop 1.1.1.9 [PE2-explicit-path-path1] quit
After completing the configuration, run the display explicit-path command on a PE to view information about the explicit path.
The display on PE1 is used as an example.
[PE1] display explicit-path path1 Path Name : path1 Path Status : Enabled 1 172.1.1.2 Strict Include 2 172.2.1.2 Strict Include 3 3.3.3.9 Strict Include
- Configure the tunnel interface on the PE.
# Configure PE1.
[PE1] interface tunnel 0/0/1 [PE1-Tunnel0/0/1] description For VPN-A & Non-VPN [PE1-Tunnel0/0/1] ip address unnumbered interface loopback 1 [PE1-Tunnel0/0/1] tunnel-protocol mpls te [PE1-Tunnel0/0/1] destination 3.3.3.9 [PE1-Tunnel0/0/1] mpls te tunnel-id 300 [PE1-Tunnel0/0/1] mpls te signal-protocol rsvp-te PE1-Tunnel0/0/1] mpls te path explicit-path path1 [PE1-Tunnel0/0/1] mpls te priority 0 0 [PE1-Tunnel0/0/1] mpls te bandwidth ct0 50000 ct1 50000 ct2 100000 [PE1-Tunnel0/0/1] mpls te commit [PE1-Tunnel0/0/1] quit [PE1] interface tunnel 0/0/2 [PE1-Tunnel0/0/2] description For VPN-B [PE1-Tunnel0/0/2] ip address unnumbered interface loopback 1 [PE1-Tunnel0/0/2] tunnel-protocol mpls te [PE1-Tunnel0/0/2] destination 3.3.3.9 [PE1-Tunnel0/0/2] mpls te tunnel-id 301 [PE1-Tunnel0/0/2] mpls te signal-protocol rsvp-te PE1-Tunnel0/0/2] mpls te path explicit-path path1 [PE1-Tunnel0/0/2] mpls te priority 0 0 [PE1-Tunnel0/0/2] mpls te bandwidth ct0 50000 ct1 50000 ct2 100000 [PE1-Tunnel0/0/2] mpls te commit [PE1-Tunnel0/0/2] quit
# Configure PE2.
[PE2] interface tunnel 0/0/1 [PE2-Tunnel0/0/1] description For VPN-A & Non-VPN [PE2-Tunnel0/0/1] ip address unnumbered interface loopback 1 [PE2-Tunnel0/0/1] tunnel-protocol mpls te [PE2-Tunnel0/0/1] destination 1.1.1.9 [PE2-Tunnel0/0/1] mpls te tunnel-id 300 [PE2-Tunnel0/0/1] mpls te signal-protocol rsvp-te [PE2-Tunnel0/0/1] mpls te path explicit-path path1 [PE2-Tunnel0/0/1] mpls te priority 0 0 [PE2-Tunnel0/0/1] mpls te bandwidth ct0 50000 ct1 50000 ct2 100000 [PE2-Tunnel0/0/1] mpls te commit [PE2-Tunnel0/0/1] quit [PE2] interface tunnel 0/0/2 [PE2-Tunnel0/0/2] description For VPN-B [PE2-Tunnel0/0/2] ip address unnumbered interface loopback 1 [PE2-Tunnel0/0/2] tunnel-protocol mpls te [PE2-Tunnel0/0/2] destination 1.1.1.9 [PE2-Tunnel0/0/2] mpls te tunnel-id 301 [PE2-Tunnel0/0/2] mpls te signal-protocol rsvp-te [PE2-Tunnel0/0/2] mpls te path explicit-path path1 [PE2-Tunnel0/0/2] mpls te priority 0 0 [PE2-Tunnel0/0/2] mpls te bandwidth ct0 50000 ct1 50000 ct2 100000 [PE2-Tunnel0/0/2] mpls te commit [PE2-Tunnel0/0/2] quit
Run the display interface tunnel interface-number command on a PE. The tunnel interface goes Up.
The display on tunnel 0/0/1 of PE1 is used as an example.
[PE1] display interface tunnel 0/0/1 Tunnel0/0/1 current state : UP Line protocol current state : UP Last line protocol up time : 2013-01-06 20:24:46 Description:For VPN-A & Non-VPN Route Port,The Maximum Transmit Unit is 1500 Internet Address is unnumbered, using address of LoopBack1(1.1.1.9/32) Encapsulation is TUNNEL, loopback not set Tunnel destination 3.3.3.9 Tunnel up/down statistics 1 Tunnel protocol/transport MPLS/MPLS, ILM is available, primary tunnel id is 0x6, secondary tunnel id is 0x0 Current system time: 2013-01-06 20:29:02 300 seconds output rate 0 bits/sec, 0 packets/sec 0 seconds output rate 0 bits/sec, 0 packets/sec 0 packets output, 0 bytes 0 output error 0 output drop ct0:0 packets output, 0 bytes 0 output error 0 packets output drop ct1:0 packets output, 0 bytes 0 output error 0 packets output drop ct2:0 packets output, 0 bytes 0 output error 0 packets output drop Input bandwidth utilization : 0% Output bandwidth utilization : 0%
Run the display mpls te te-class-tunnel command on a PE to view the TE tunnel associated with the TE-class.
The display on PE1 is used as an example.
[PE1] display mpls te te-class-tunnel all ------------------------------------------------------------------------ No. CT priority status tunnel name tunnel commit ------------------------------------------------------------------------ 1 0 0 Valid Tunnel0/0/1 Yes 2 0 0 Valid Tunnel0/0/2 Yes 3 1 0 Valid Tunnel0/0/1 Yes 4 1 0 Valid Tunnel0/0/2 Yes 5 2 0 Valid Tunnel0/0/1 Yes 6 2 0 Valid Tunnel0/0/2 Yes
- Configure the packet priority trusted by the inbound interface
and priority mapping on PEs.
# Configure PE1.
[PE1] interface gigabitethernet 1/0/0 [PE1-GigabitEthernet1/0/0] trust dscp [PE1-GigabitEthernet1/0/0] quit [PE1] interface gigabitethernet 2/0/0 [PE1-GigabitEthernet2/0/0] trust dscp [PE1-GigabitEthernet2/0/0] quit [PE1] interface gigabitethernet 3/0/0 [PE1-GigabitEthernet3/0/0] trust dscp [PE1-GigabitEthernet3/0/0] quit
# Configure P.
[P] interface gigabitethernet 1/0/0 [P-GigabitEthernet1/0/0] trust exp [P-GigabitEthernet1/0/0] quit [P] interface gigabitethernet 2/0/0 [P-GigabitEthernet2/0/0] trust exp [P-GigabitEthernet2/0/0] quit
# Configure PE2.
[PE2] interface gigabitethernet 1/0/0 [PE2-GigabitEthernet1/0/0] trust dscp [PE2-GigabitEthernet1/0/0] quit [PE2] interface gigabitethernet 2/0/0 [PE2-GigabitEthernet2/0/0] trust dscp [PE2-GigabitEthernet2/0/0] quit [PE2] interface gigabitethernet 3/0/0 [PE2-GigabitEthernet3/0/0] trust dscp [PE2-GigabitEthernet3/0/0] quit
NOTE:
The default DSCP-LP and EXP-LP mapping relationship can meet the requirement in this configuration example. Therefore, there is no need to modify the mapping relationship.
Run the display qos map-table dscp-lp command on the PEs to check the mapping from DSCP values to local priorities.
The display on PE1 is used as an example.
[PE1] display qos map-table dscp-lp Input DSCP LP ------------------- 0 0 ... 10 1 ... 20 2 ... 54 6 55 6 56 7 57 7 58 7 59 7 60 7 61 7 62 7 63 7
Run the display qos map-table exp-lp command on the PEs to check the mapping from EXP priorities to local priorities. The display on PE1 is used as an example.
[PE1] display qos map-table exp-lp Input EXP LP ------------------- 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7
- Configure the scheduling mode for CTs.
# Configure PE1.
[PE1] qos queue-profile queue-profile1 [PE1-qos-queue-profile-queue-profile1] schedule wfq 0 to 1 pq 2 to 7 [PE1-qos-queue-profile-queue-profile1] quit [PE1] interface gigabitethernet 3/0/0 [PE1-GigabitEthernet3/0/0] qos te queue-profile queue-profile1 [PE1-GigabitEthernet3/0/0] quit
# Configure P.
[P] qos queue-profile queue-profile1 [P-qos-queue-profile-queue-profile1] schedule wfq 0 to 1 pq 2 to 7 [P-qos-queue-profile-queue-profile1] quit [P] interface gigabitethernet 1/0/0 [P-GigabitEthernet1/0/0] qos te queue-profile queue-profile1 [P-GigabitEthernet1/0/0] quit [P] interface gigabitethernet 2/0/0 [P-GigabitEthernet2/0/0] qos te queue-profile queue-profile1 [P-GigabitEthernet2/0/0] quit
# Configure PE2.
[PE2] qos queue-profile queue-profile1 [PE2-qos-queue-profile-queue-profile1] schedule wfq 0 to 1 pq 2 to 7 [PE2-qos-queue-profile-queue-profile1] quit [PE2] interface gigabitethernet 3/0/0 [PE2-GigabitEthernet3/0/0] qos te queue-profile queue-profile1 [PE2-GigabitEthernet3/0/0] quit
# After completing the configuration, run the display qos queue-profile command on PEs to view the information about queue profiles.
The display on PE1 is used as an example.
[PE1] display qos queue-profile queue-profile1 Queue-profile: queue-profile1 Queue Schedule Weight Length(Bytes/Packets) GTS(CIR/CBS) ----------------------------------------------------------------- 0 WFQ 10 -/- -/- 1 WFQ 10 -/- -/- 2 PQ - -/- -/- 3 PQ - -/- -/- 4 PQ - -/- -/- 5 PQ - -/- -/- 6 PQ - -/- -/- 7 PQ - -/- -/-
- Configure forwarding adjacency.
# Configure the forwarding adjacency on the TE tunnel.
# Configure PE1.
[PE1] interface tunnel 0/0/1 [PE1-Tunnel0/0/1] mpls te igp metric absolute 1 [PE1-Tunnel0/0/1] mpls te igp advertise [PE1-Tunnel0/0/1] mpls te commit [PE1-Tunnel0/0/1] mpls [PE1-Tunnel0/0/1] quit [PE1] ospf 1 [PE1-ospf-1] enable traffic-adjustment advertise [PE1-ospf-1] quit
# Configure PE2.
[PE2] interface tunnel 0/0/1 [PE2-Tunnel0/0/1] mpls te igp metric absolute 1 [PE2-Tunnel0/0/1] mpls te igp advertise [PE2-Tunnel0/0/1] mpls te commit [PE2-Tunnel0/0/1] mpls [PE2-Tunnel0/0/1] quit [PE2] ospf 1 [PE2-ospf-1] enable traffic-adjustment advertise [PE2-ospf-1] quit
After completing the configuration, run the display ip routing-table command on PE1 or PE2 to view route information. The outbound interface destined for 5.5.5.9 is tunnel 0/0/1 on PE1 and the outbound interface destined for 4.4.4.9 is tunnel 0/0/1 on PE2.
- Configure the tunnel policy on PEs.
# Configure PE1.
[PE1] interface tunnel 0/0/1 [PE1-Tunnel0/0/1] mpls te reserved-for-binding [PE1-Tunnel0/0/1] mpls te commit [PE1-Tunnel0/0/1] quit [PE1] interface tunnel 0/0/2 [PE1-Tunnel0/0/2] mpls te reserved-for-binding [PE1-Tunnel0/0/2] mpls te commit [PE1-Tunnel0/0/2] quit [PE1] tunnel-policy policya [PE1-tunnel-policy-policya] tunnel binding destination 3.3.3.9 te tunnel 0/0/1 [PE1-tunnel-policy-policya] quit [PE1] tunnel-policy policyb [PE1-tunnel-policy-policyb] tunnel binding destination 3.3.3.9 te tunnel 0/0/2 [PE1-tunnel-policy-policyb] quit
# Configure PE2.
[PE2] interface tunnel 0/0/1 [PE2-Tunnel0/0/1] mpls te reserved-for-binding [PE2-Tunnel0/0/1] mpls te commit [PE2-Tunnel0/0/1] quit [PE2] interface tunnel 0/0/2 [PE2-Tunnel0/0/2] mpls te reserved-for-binding [PE2-Tunnel0/0/2] mpls te commit [PE2-Tunnel0/0/2] quit [PE2] tunnel-policy policya [PE2-tunnel-policy-policya] tunnel binding destination 1.1.1.9 te tunnel 0/0/1 [PE2-tunnel-policy-policya] quit [PE2] tunnel-policy policyb [PE2-tunnel-policy-policyb] tunnel binding destination 1.1.1.9 te tunnel 0/0/2 [PE2-tunnel-policy-policyb] quit
- Configure VPN instances on PEs and connect CEs to PEs.
# Configure PE1.
[PE1] ip vpn-instance VPN-A [PE1-vpn-instance-VPN-A] ipv4-family [PE1-vpn-instance-VPN-A-af-ipv4] route-distinguisher 100:1 [PE1-vpn-instance-VPN-A-af-ipv4] vpn-target 111:1 both [PE1-vpn-instance-VPN-A-af-ipv4] tnl-policy policya [PE1-vpn-instance-VPN-A-af-ipv4] quit [PE1-vpn-instance-VPN-A] quit [PE1] ip vpn-instance VPN-B [PE1-vpn-instance-VPN-B] ipv4-family [PE1-vpn-instance-VPN-B-af-ipv4] route-distinguisher 100:2 [PE1-vpn-instance-VPN-B-af-ipv4] vpn-target 222:2 both [PE1-vpn-instance-VPN-B-af-ipv4] tnl-policy policyb [PE1-vpn-instance-VPN-B-af-ipv4] quit [PE1-vpn-instance-VPN-B] quit [PE1] interface gigabitethernet 1/0/0 [PE1-GigabitEthernet1/0/0] ip binding vpn-instance VPN-A [PE1-GigabitEthernet1/0/0] ip address 10.1.1.2 24 [PE1-GigabitEthernet1/0/0] quit [PE1] interface gigabitethernet 2/0/0 [PE1-GigabitEthernet2/0/0] ip binding vpn-instance VPN-B [PE1-GigabitEthernet2/0/0] ip address 10.2.1.2 24 [PE1-GigabitEthernet2/0/0] quit
# Configure PE2.
[PE2] ip vpn-instance VPN-A [PE2-vpn-instance-VPN-A] ipv4-family [PE2-vpn-instance-VPN-A-af-ipv4] route-distinguisher 200:1 [PE2-vpn-instance-VPN-A-af-ipv4] vpn-target 111:1 both [PE2-vpn-instance-VPN-A-af-ipv4] tnl-policy policya [PE2-vpn-instance-VPN-A-af-ipv4] quit [PE2-vpn-instance-VPN-A] quit [PE2] ip vpn-instance VPN-B [PE2-vpn-instance-VPN-B] ipv4-family [PE2-vpn-instance-VPN-B-af-ipv4] route-distinguisher 200:2 [PE2-vpn-instance-VPN-B-af-ipv4] vpn-target 222:2 both [PE2-vpn-instance-VPN-B-af-ipv4] tnl-policy policyb [PE2-vpn-instance-VPN-B-af-ipv4] quit [PE2-vpn-instance-VPN-B] quit [PE2] interface gigabitethernet 1/0/0 [PE2-GigabitEthernet1/0/0] ip binding vpn-instance VPN-A [PE2-GigabitEthernet1/0/0] ip address 10.3.1.2 24 [PE2-GigabitEthernet1/0/0] quit [PE2] interface gigabitethernet 2/0/0 [PE2-GigabitEthernet2/0/0] ip binding vpn-instance VPN-B [PE2-GigabitEthernet2/0/0] ip address 10.4.1.2 24 [PE2-GigabitEthernet2/0/0] quit
# Configure IP addresses for interfaces of CEs.
# Configure CE1.
<Huawei> system-view [Huawei] sysname CE1 [CE1] interface gigabitethernet 1/0/0 [CE1-GigabitEthernet1/0/0] ip address 10.1.1.1 255.255.255.0 [CE1-GigabitEthernet1/0/0] quit
Configure the interface IP addresses of other CEs. The configuration is similar to that of CE1, and is not mentioned here.
After completing the configuration, run the display ipvpn-instance verbose command on the PE to view the configuration of VPN instances.
- Create the MP-IBGP remote peer relationship between PEs,
and create the EBGP peer relationship between PEs and CEs.
# Configure 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] quit [PE1-bgp] ipv4-family vpn-instance VPN-A [PE1-bgp-VPN-A] peer 10.1.1.1 as-number 65410 [PE1-bgp-VPN-A] import-route direct [PE1-bgp-VPN-A] quit [PE1-bgp] ipv4-family vpn-instance VPN-B [PE1-bgp-VPN-B] peer 10.2.1.1 as-number 65420 [PE1-bgp-VPN-B] import-route direct [PE1-bgp-VPN-B] quit
The configuration of PE2 is similar to that of PE1. The configuration details are not provided here.
# Configure CE1.
[CE1] bgp 65410 [CE1-bgp] peer 10.1.1.2 as-number 100 [CE1-bgp] import-route direct
The configuration of other CEs (CE2, CE3, and CE4) is similar to that of CE1. The configuration details are not provided here.
After completing the configuration, run the display bgp vpnv4 all peer command on the PE. The BGP peer relationship is created between PEs and its status is Established.
[PE1] display bgp vpnv4 all peer BGP local router ID : 1.1.1.9 Local AS number : 100 Total number of peers : 3 Peers in established state : 3 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 3.3.3.9 4 100 3 5 0 00:01:23 Established 0 Peer of IPv4-family for vpn instance : VPN-Instance VPN-A, Router ID 1.1.1.9: 10.1.1.1 4 65410 25 25 0 00:17:57 Established 1 VPN-Instance VPN-B, Router ID 1.1.1.9: 10.2.1.1 4 65420 21 22 0 00:17:10 Established 0
- Verify the configuration.
# After the configuration, connect the tester to PE3, PE4, and all CEs and inject the following traffic to the connected interfaces.
You can see that all packets are not discarded. The jitter of AF2 traffic is shorter than 50 ms, and the jitter of AF1 traffic is shorter than 200 ms.
Configuration Files
PE1 configuration file
# sysname PE1 # ip vpn-instance VPN-A ipv4-family route-distinguisher 100:1 tnl-policy policya vpn-target 111:1 export-extcommunity vpn-target 111:1 import-extcommunity # ip vpn-instance VPN-B ipv4-family route-distinguisher 100:2 tnl-policy policyb vpn-target 222:2 export-extcommunity vpn-target 222:2 import-extcommunity # mpls lsr-id 1.1.1.9 mpls mpls te mpls te ds-te mode ietf mpls rsvp-te mpls te cspf # mpls ldp # explicit-path path1 next hop 172.1.1.2 next hop 172.2.1.2 next hop 3.3.3.9 # qos queue-profile queue-profile1 schedule wfq 0 to 1 pq 2 to 7 # te-class-mapping te-class0 class-type ct0 priority 0 description For-BE te-class1 class-type ct1 priority 0 description For-AF1 te-class2 class-type ct2 priority 0 description For-AF2 # interface GigabitEthernet1/0/0 ip binding vpn-instance VPN-A ip address 10.1.1.2 255.255.255.0 trust dscp # interface GigabitEthernet2/0/0 ip binding vpn-instance VPN-B ip address 10.2.1.2 255.255.255.0 trust dscp # interface GigabitEthernet3/0/0 ip address 172.1.1.1 255.255.255.0 trust dscp qos te queue-profile queue-profile1 mpls mpls te mpls te bandwidth max-reservable-bandwidth 5000000 mpls te bandwidth bc0 500000 bc1 375000 bc2 250000 mpls rsvp-te # interface GigabitEthernet4/0/0 ip address 10.5.1.1 255.255.255.0 trust dscp mpls mpls ldp # interface LoopBack1 ip address 1.1.1.9 255.255.255.255 # interface Tunnel0/0/1 description For VPN-A & Non-VPN ip address unnumbered interface LoopBack1 tunnel-protocol mpls te destination 3.3.3.9 mpls te tunnel-id 300 mpls te priority 0 mpls te bandwidth ct0 50000 ct1 50000 ct2 100000 mpls te path explicit-path path1 mpls te igp advertise mpls te igp metric absolute 1 mpls te reserved-for-binding mpls te commit mpls # interface Tunnel0/0/2 description For VPN-B ip address unnumbered interface LoopBack1 destination 3.3.3.9 mpls te tunnel-id 301 mpls te reserved-for-binding mpls te priority 0 mpls te bandwidth ct0 50000 ct1 50000 ct2 100000 mpls te path explicit-path path1 mpls te reserved-for-binding mpls te commit # bgp 100 peer 3.3.3.9 as-number 100 peer 3.3.3.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 3.3.3.9 enable # ipv4-family vpnv4 policy vpn-target peer 3.3.3.9 enable # ipv4-family vpn-instance VPN-A import-route direct peer 10.1.1.1 as-number 65410 # ipv4-family vpn-instance VPN-B import-route direct peer 10.2.1.1 as-number 65420 # ospf 1 opaque-capability enable enable traffic-adjustment advertise area 0.0.0.0 network 1.1.1.9 0.0.0.0 network 10.5.1.0 0.0.0.255 network 172.1.1.0 0.0.0.255 mpls-te enable # tunnel-policy policya tunnel binding destination 3.3.3.9 te Tunnel0/0/1 # tunnel-policy policyb tunnel binding destination 3.3.3.9 te Tunnel0/0/2 # return
P configuration file
# sysname P # mpls lsr-id 2.2.2.9 mpls mpls te mpls te ds-te mode ietf mpls rsvp-te # qos queue-profile queue-profile1 schedule wfq 0 to 1 pq 2 to 7 # interface GigabitEthernet1/0/0 ip address 172.1.1.2 255.255.255.0 trust exp qos te queue-profile queue-profile1 mpls mpls te mpls te bandwidth max-reservable-bandwidth 500000 mpls te bandwidth bc0 500000 bc1 375000 bc2 250000 mpls rsvp-te # interface GigabitEthernet2/0/0 ip address 172.2.1.1 255.255.255.0 trust exp qos te queue-profile queue-profile1 mpls mpls te mpls te bandwidth max-reservable-bandwidth 500000 mpls te bandwidth bc0 500000 bc1 375000 bc2 250000 mpls rsvp-te # interface LoopBack1 ip address 2.2.2.9 255.255.255.255 # ospf 1 opaque-capability enable area 0.0.0.0 network 2.2.2.9 0.0.0.0 network 172.1.1.0 0.0.0.255 network 172.2.1.0 0.0.0.255 mpls-te enable # return
PE2 configuration file
# sysname PE2 # ip vpn-instance VPN-A ipv4-family route-distinguisher 200:1 tnl-policy policya vpn-target 111:1 export-extcommunity vpn-target 111:1 import-extcommunity # ip vpn-instance VPN-B ipv4-family route-distinguisher 200:2 tnl-policy policyb vpn-target 222:2 export-extcommunity vpn-target 222:2 import-extcommunity # mpls lsr-id 3.3.3.9 mpls mpls te mpls te ds-te mode ietf mpls te rsvp-te mpls te cspf # mpls ldp # explicit-path path1 next hop 172.1.1.1 next hop 172.2.1.1 next hop 1.1.1.9 # qos queue-profile queue-profile1 schedule wfq 0 to 1 pq 2 to 7 # te-class-mapping te-class0 class-type ct0 priority 0 description For-BE te-class1 class-type ct1 priority 0 description For-AF1 te-class2 class-type ct2 priority 0 description For-AF2 # interface GigabitEthernet1/0/0 ip binding vpn-instance VPN-A ip address 10.3.1.2 255.255.255.0 trust dscp # interface GigabitEthernet2/0/0 ip binding vpn-instance VPN-B ip address 10.4.1.2 255.255.255.0 trust dscp # interface GigabitEthernet3/0/0 ip address 172.2.1.2 255.255.255.0 trust dscp qos te queue-profile queue-profile1 mpls mpls te mpls te bandwidth max-reservable-bandwidth 500000 mpls te bandwidth bc0 500000 bc1 375000 bc2 250000 mpls rsvp-te # interface GigabitEthernet4/0/0 ip address 10.6.1.1 255.255.255.0 trust dscp mpls mpls ldp # interface LoopBack1 ip address 3.3.3.9 255.255.255.255 # interface Tunnel0/0/1 description For VPN-A & Non-VPN ip address unnumbered interface LoopBack1 tunnel-protocol mpls te destination 1.1.1.9 mpls te tunnel-id 300 mpls te priority 0 mpls te bandwidth ct0 50000 ct1 50000 ct2 100000 mpls te path explicit-path path1 mpls te igp advertise mpls te igp metric absolute 1 mpls te reserved-for-binding mpls te commit mpls # interface Tunnel0/0/2 description For VPN-B ip address unnumbered interface LoopBack1 tunnel-protocol mpls te destination 1.1.1.9 mpls te tunnel-id 301 mpls te priority 0 mpls te bandwidth ct0 50000 ct1 50000 ct2 100000 mpls te path explicit-path path1 mpls te reserved-for-binding mpls te commit # bgp 100 peer 1.1.1.9 as-number 100 peer 1.1.1.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 1.1.1.9 enable # ipv4-family vpnv4 policy vpn-target peer 1.1.1.9 enable # ipv4-family vpn-instance VPN-A import-route direct peer 10.3.1.1 as-number 65430 # ipv4-family vpn-instance VPN-B import-route direct peer 10.4.1.1 as-number 65440 # ospf 1 opaque-capability enable enable traffic-adjustment advertise area 0.0.0.0 network 3.3.3.9 0.0.0.0 network 10.6.1.0 0.0.0.255 network 172.2.1.0 0.0.0.255 mpls-te enable # tunnel-policy policya tunnel binding destination 1.1.1.9 te Tunnel0/0/1 # tunnel-policy policyb tunnel binding destination 1.1.1.9 te Tunnel0/0/2 # return
PE3 configuration file
# sysname PE3 # mpls lsr-id 4.4.4.9 mpls # mpls ldp # interface GigabitEthernet1/0/0 ip address 10.5.1.2 255.255.255.0 mpls mpls ldp # interface LoopBack1 ip address 4.4.4.9 255.255.255.255 # ospf 1 area 0.0.0.0 network 4.4.4.9 0.0.0.0 network 10.5.1.0 0.0.0.255 # return
PE4 configuration file
# sysname PE4 # mpls lsr-id 5.5.5.9 mpls # mpls ldp # interface GigabitEthernet1/0/0 ip address 10.6.1.2 255.255.255.0 mpls mpls ldp # interface LoopBack1 ip address 5.5.5.9 255.255.255.255 # ospf 1 area 0.0.0.0 network 5.5.5.9 0.0.0.0 network 10.6.1.0 0.0.0.255 # return
CE1 configuration file
# sysname CE1 # interface GigabitEthernet1/0/0 ip address 10.1.1.1 255.255.255.0 # bgp 65410 peer 10.1.1.2 as-number 100 # ipv4-family unicast undo synchronization import-route direct peer 10.1.1.2 enable # return
CE2 configuration file
# sysname CE2 # interface GigabitEthernet1/0/0 ip address 10.2.1.1 255.255.255.0 # bgp 65420 peer 10.2.1.2 as-number 100 # ipv4-family unicast undo synchronization import-route direct peer 10.2.1.2 enable # return
CE3 configuration file
# sysname CE3 # interface GigabitEthernet1/0/0 ip address 10.3.1.1 255.255.255.0 # bgp 65430 peer 10.3.1.2 as-number 100 # ipv4-family unicast undo synchronization import-route direct peer 10.3.1.2 enable # return
CE4 configuration file
# sysname CE4 # interface GigabitEthernet1/0/0 ip address 10.4.1.1 255.255.255.0 # bgp 65440 peer 10.4.1.2 as-number 100 # ipv4-family unicast undo synchronization import-route direct peer 10.4.1.2 enable # return