配置IETF模式的DS-TE示例(RDM模型)
组网需求
如图4-46所示,MPLS骨干网的PE和P节点运行OSPF协议实现互通,P节点不支持MPLS LDP。PE1和PE2接入VPN-A和VPN-B。PE3和PE4之间流量需要通过TE隧道承载。
VPN-A的流量分为AF2、AF1两者类型;VPN-B流量分为AF2、AF1、BE三种类型;PE3与PE4之间的流量为BE类型。各流量的QoS需求如下:
要求:在PE1和PE2之间建立DS-TE隧道传递以上流量,并满足各流量的QoS需求。带宽约束模型要求为RDM,允许CTi抢占低优先级的CTj的带宽(0<=i<j<=7),以确保高优先级CT的带宽。
配置思路
采用如下的思路配置IETF模式的DS-TE示例(RDM模型):
- VPN-A和VPN-B的流量类型部分相同(都有AF2流和AF1流),需要用两条TE隧道分别承载VPN-A和VPN-B。
- VPN-B和PE3与PE4之间的流量类型也有部分相同,因此也需要用不同隧道承载。
- VPN-A和PE3与PE4之间的流量类型各不相同,且流量类型共有3种,使用同一条TE隧道承载。
- 建立两条DS-TE隧道Tunnel0/0/1和Tunnel0/0/2。其中,每个隧道配置三个CT,分别为CT0、CT1和CT2,对应的优先级都为0。CT0、CT1和CT2分别用于承载BE、AF1和AF2流。
- VPN-A的AF2、AF1流分别使用Tunnel0/0/1的CT2、CT1承载。PE3与PE4之间的BE流使用Tunnel0/0/1的CT0承载。VPN-B的AF2、AF1、BE流分别使用Tunnel0/0/2的CT2、CT1和CT0承载。
- 两条隧道的路径一样,因此链路上BCi带宽应不小于所有TE隧道的CTi~CT7带宽的总和,且链路的最大可预留带宽应不小于BC0带宽。为实现精确控制流量带宽,计算后,链路上BC2的带宽>=125% x (Tunnel0/0/1的CT2+Tunnel0/0/2的CT2)=250Mbit/s;BC1的带宽>=BC2的带宽+125% x (Tunnel0/0/1的CT1+Tunnel0/0/2的CT1)=375Mbit/s;BC0的带宽>=BC1的带宽+125% x (Tunnel0/0/1的CT0+Tunnel0/0/2的CT0)=500Mbit/s;链路可预留带宽>=BC0的带宽=500Mbit/s。
- 两条TE隧道的同类型业务,带宽和抖动要求一样,因此配置TE隧道时使用CT模板。
操作步骤
- 在PE和P节点上配置各接口IP地址,并配置OSPF,实现PE和P的互通
# 配置PE1。P、PE2、PE3和PE4的配置与PE1类似,不再赘述。
<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
完成此步骤后,PE1、P、PE2之间应能建立OSPF邻居关系,执行display ospf peer命令可以看到邻居状态为Full。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback1路由。
- 在所有PE和P节点上配置LSR-ID、使能MPLS,并在PE1、PE2和P上使能MPLS TE和RSVP-TE,在所有PE上使能MPLS
LDP
# 配置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
# 配置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
# 配置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
# 配置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
# 配置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
完成此步骤后,在PE1、PE2或P节点上执行display mpls rsvp-te interface命令,可查看使能了RSVP的接口及RSVP相关信息。在PE1、PE2、PE3或PE4上执行命令display mpls ldp lsp,可发现PE3和PE1之间,以及PE2和PE4之间存在一条LDP LSP。
- 在PE1、PE2和P上配置OSPF TE,并使能CSPF
# 在所有节点上配置OSPF TE,并在TE隧道入节点上使能CSPF。
# 配置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
# 配置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
# 配置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
完成此步骤后,在PE或P节点上执行display ospf mpls-te命令,可查看OSPF链路状态数据库中包含的TE LSA信息。
- 在PE1、PE2和P节点上配置DS-TE模式和带宽约束模型
# 配置PE1。
[PE1] mpls [PE1-mpls] mpls te ds-te mode ietf [PE1-mpls] mpls te ds-te bcm rdm [PE1-mpls] quit
# 配置P。
[P] mpls [P-mpls] mpls te ds-te mode ietf [P-mpls] mpls te ds-te bcm rdm [P-mpls] quit
# 配置PE2。
[PE2] mpls [PE2-mpls] mpls te ds-te mode ietf [PE2-mpls] mpls te ds-te bcm rdm [PE2-mpls] quit
完成此步骤后,在PE或P节点上执行display mpls te ds-te summary命令,可查看DS-TE的配置信息。以PE1为例:
[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
- 在PE和P节点上配置链路带宽
# 配置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
# 配置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
# 配置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
完成此步骤后,在PE上执行display mpls te link-administration bandwidth-allocation interface命令,可查看接口的BC带宽分配情况。以PE1为例:
[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 - - - - - ----------------------------------------------------------------------
- 在PE上配置TE-Class映射表
# 配置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
# 配置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
完成此步骤后,在PE上执行display mpls te ds-te te-class-mapping命令,可查看TE-Class映射表的信息。以PE1为例:
[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 - - -
- 在PE上配置显式路径
# 配置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
# 配置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
完成此步骤后,在PE上执行display explicit-path命令,可查看显式路径信息。以PE1为例:
[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
- 在PE上配置Tunnel接口
# 配置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
# 配置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
在PE上执行display interface tunnel interface-number命令,可发现Tunnel接口为Up状态。以PE1的Tunnel0/0/1为例:
[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%
在PE上执行display mpls te te-class-tunnel命令,可查看TE-CLASS关联的TE隧道。以PE1为例:
[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
- 在PE节点上配置入接口信任的报文优先级以及优先级映射
# 配置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
# 配置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
# 配置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
由于默认的DSCP-LP和EXP-LP映射关系满足本例需求,故不需要进行修改。
在PE上执行display qos map-table dscp-lp命令,可查看DSCP到本地优先级(LP)的映射关系。以PE1为例:
[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
在PE上执行display qos map-table exp-lp命令,可查看EXP到本地优先级(LP)的映射关系。以PE1为例:
[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
- 配置CT业务的调度方式
# 配置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
# 配置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
# 配置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
# 完成此步骤后,在PE上执行display qos queue-profile命令,可查看已配置的队列模板信息,以PE1为例。
[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 - -/- -/-
- 配置转发邻接
# 在TE隧道入节点上配置转发邻接。
# 配置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
# 配置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
完成此步骤后,在PE1或PE2上使用display ip routing-table显示路由信息,发现PE1到5.5.5.9的出接口为Tunnel0/0/1;PE2到4.4.4.9的出接口为Tunnel0/0/1。
- 在PE上配置隧道策略
# 配置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
# 配置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
- 在PE上配置VPN实例,将CE接入PE
# 配置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
# 配置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
# 配置各CE的接口IP地址。
# 配置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
配置其他CE的接口IP地址,具体配置与配置CE1类似,不再赘述。
配置完成后,在PE上执行display ip vpn-instance verbose命令可以看到VPN实例的配置情况。
- 在PE之间建立MP-IBGP对等体,PE与CE之间建立EBGP对等体
# 配置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
PE2的配置与PE1类似,不再赘述。
# 配置CE1。
[CE1] bgp 65410 [CE1-bgp] peer 10.1.1.2 as-number 100 [CE1-bgp] import-route direct
另外3个CE(CE2~CE4)配置与CE1配置类似,不再赘述。
配置完成后,在PE上执行display bgp vpnv4 all peer命令,可以看到PE之间的BGP对等体关系已建立,并达到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
- 验证配置结果
# 配置完成后,将测试仪接入PE3、PE4及所有CE,并在接入接口上分别注入如下流量:
可发现所有报文都不被丢弃,且AF2流的抖动小于50ms,AF1流的抖动小于200ms。
配置文件
PE1的配置文件
# 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 tunnel-protocol mpls te destination 3.3.3.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 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的配置文件
# 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的配置文件
# 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的配置文件
# 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的配置文件
# 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的配置文件
# 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的配置文件
# 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的配置文件
# 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的配置文件
# 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