13-SR-MPLS配置
本章节下载: 13-SR-MPLS配置 (325.97 KB)
SR(Segment Routing,分段路由)采用源路径选择机制,预先在源节点封装好路径所要经过节点分配的SID(Segment Identifier,段标识),当报文经过SR节点时,该节点根据报文的SID对报文进行转发。除源节点外,其它节点无需维护路径状态。SR-MPLS(Segment Routing with MPLS,MPLS段路由)是指在MPLS网络中使用SR、将标签作为SID对报文进行转发。
SR-MPLS具有以下优点:
· 直接应用现有的MPLS框架进行转发,无需对网络进行改造。MPLS网络架构的详细介绍,请参见“MPLS配置指导”中的“MPLS基础”。
· 能够更加简单地实现MPLS TE等网络功能,解决了现有网络为实现上述功能而带来的部署路由协议过多、部署过程复杂等问题。
SR主要涉及如下概念:
· SR节点:开启SR-MPLS功能的设备通常被称为SR节点。其中,负责为进入SR-MPLS网络的报文添加标签的入口节点称为源节点;负责剥离报文中标签、并将报文转发给目的网络的出口节点称为尾节点。
· 段:用来指明节点对入报文所执行的操作。
· SID:段标识,在SR-MPLS中为MPLS标签。
· 分段类型:根据SID分配形式不同,SR的分段类型有如下两种:
¡ Prefix Segment:前缀类型的段,按目的IP地址前缀为网络的节点分配SID并建立转发表项。
¡ Adjacency Segment:邻接类型的段,为节点的不同邻接链路分别分配SID。
· SRLSP(Segment Routing Label Switched Path,基于段路由的LSP):以标签作为SID对报文进行段路由转发,报文所经过的路径称为SRLSP。
要想通过SRLSP转发报文,需要完成以下工作:
(1) 进行标签分配,为报文转发路径中的每个节点和链路规划标签信息。
(2) 建立标签转发表项,运行SR-MPLS的设备组成的分段路由域内的设备根据分配的标签信息形成本地的标签转发表项。
(3) 建立SRLSP。
完成上述步骤后,SRLSP即可用来转发流量。当源节点接收到用户网络的报文后,会为报文封装所经过路径上的标签信息,并通过SRLSP将报文转发给尾节点;尾节点从SRLSP接收到报文后,会剥离报文中的标签,根据原始报文的目的地址查找路由表进行报文转发。
如果将SRLSP与上层应用关联,如MPLS TE,则可以实现通过SRLSP来转发MPLS TE流量。
静态配置Segment的方式为:
· Prefix Segment:在每台SR节点上为目的IP地址前缀手工指定入标签、出标签和下一跳。
· Adjacency Segment:在每台SR节点上为与邻接设备相连的链路手工指定入标签和下一跳对应关系。
根据转发路径需要,在隧道头节点上指定报文转发时携带的标签栈。标签栈中的每个标签对应一个Prefix SID或Adjacency SID,根据Prefix SID或Adjacency SID可以找到报文的出标签、下一跳等信息。
根据SID分配方式的不同,SR-MPLS报文转发过程主要分为以下几种:
· Prefix方式:在源节点将为尾节点分配的Prefix SID封装到报文中,各中间节点查找标签转发表项进行转发。
· Adjacency方式:在源节点将所有经过节点为邻接链路分配的Adjacency SID组成的标签栈封装到报文中,各中间节点根据标签栈最外层标签查找下一跳邻居,并在转发报文时删除标签栈最外层标签。
· Prefix/Adjacency方式:采用Prefix和Adjacency组合方式进行报文转发。
如图1-1所示,Device A通过SRLSP将报文转发到Device E时,需要为报文指定出标签为16201。Prefix方式报文转发过程如下:
(1) 在源节点Device A根据16201查找标签转发表项,判断该标签对应的下一跳为Device B,出标签为20201,Device A为报文封装标签16201,发送给中间节点Device B。
(2) 中间节点Device B的入标签为16201,出标签为16201,将16201替换为16201,发送给下一个中间节点Device C继续转发。
(3) 中间节点Device C及Device D的转发过程和Device B类似。
(4) 报文到达尾节点Device E后,Device E删除报文中的标签16201,按IP继续转发即可。
图1-1 Prefix方式报文转发过程示意图
如图1-2所示,Device A、Device B、Device C、Deivce D为链路分配的Adjacency SID分别为200、201、202、203。Device A通过SRLSP将报文转发到Device E时,需要为报文指定出标签栈为(200,201,202,203)。Adjacency方式报文转发过程如下:
(1) 在源节点Device A根据栈顶标签200查找标签转发表项,判断该标签对应的下一跳为Device B。Device A为报文封装标签栈(201,202,203)后,将该报文转发给Device B。
(2) 中间节点Device B接收到报文后,根据入标签201查找标签转发表项,判断该标签对应的下一跳为Device C。Device B删除标签栈最外层标签201后,发送给下一个中间节点Device C继续转发。
(3) 中间节点Device C接收到报文后,根据入标签202查找标签转发表项,判断该标签对应的下一跳为Device D。Device C删除标签栈最外层标签202后,发送给下一个中间节点Device D继续转发。
(4) 中间节点Device D接收到报文后,根据入标签203查找标签转发表项,判断该标签对应的下一跳为Device E。Device D删除标签栈最外层标签203后,发送给Device E继续转发。
(5) Device E收到是一个IP报文,按IP转发即可。
图1-2 Adjacency方式报文转发过程示意图
如图1-3所示,Device C为本节点分配的Prefix SID索引值为1,Device A、Device B、Device C上对应的Prefix SID分别为16001、16001、16001,Device C、Device D为邻接链路分配的Adjacency SID分别为16、17,Device A通过SRLSP将报文转发到Device E时,需要为报文指定出标签栈为(16001,16,17)。
Adjacency/Prefix组合方式报文转发过程如下:
(1) 在源节点Device A根据16001查找标签转发表项,判断该标签对应的下一跳为Device B,出标签为16001,Device A为报文封装标签栈(16001,16,17),发送给中间节点Device B。
(2) 中间节点Device B前缀路径入标签为16001,出标签为16001,将16001替换为16001,发送给下一个中间节点Device C继续转发。
(3) 中间节点DeviceC前缀路径入标签16001,邻接路径入标签为16,删除标签栈最外层标签(16001,16)后,根据邻接路径将报文发送给下一个中间节点Device D继续转发。
(4) 中间节点Device D删除标签栈最外层标签17后,将报文发送给尾节点Device E,Device E收到是一个IP报文,按IP转发即可。
图1-3 Adjacency/Prefix组合方式报文转发过程示意图
与SR-MPLS相关的协议规范有:
· draft-ietf-spring-segment-routing-mpls-00
· draft-ietf-spring-segment-routing-02
SRLSP转发IP流量配置任务如下:
(1) 配置Segment
MPLS TE隧道采用静态SRLSP转发流量配置任务如下:
(1) 配置Segment
在静态配置Segment之前,需完成以下任务:
· 确定静态SRLSP的头节点、中间节点和尾节点。
· 规划每个节点到下一跳的邻接路径的入标签值,规划每个节点的前缀路径标签值。需要注意的是,静态SRLSP与静态LSP、静态CRLSP使用相同的标签空间,在同一台设备上静态SRLSP、静态CRLSP和静态LSP的入标签不能相同。关于CRLSP的介绍请参见“MPLS配置指导”中的“MPLS TE”。
· 在参与MPLS转发的各个节点和接口上开启MPLS能力,配置方法请参见“MPLS配置指导”中的“MPLS基础”。
如果指定下一跳IP地址,设备上必须存在到达该地址的路由且路由出接口上必须使能MPLS能力;如果指定出接口,该出接口必须处于UP状态并且能够接收到直连路由,且必须使能MPLS能力。
如果所指定的入标签与已经存在的静态LSP/静态PW/静态CRLSP的入标签相同,则会导致标签冲突,所配置的邻接路径不可用。即使修改静态LSP/静态PW/静态CRLSP的入标签,该邻接路径仍不可用,需要手工删除该邻接路径并重新配置。
本命令需要在静态SRLSP的所有节点上执行。
如果多条静态SRLSP存在公共路径,公共路径节点的邻接路径信息一致,不需要进行多次配置。
(1) 进入系统视图。
system-view
static-sr-mpls adjacency adjacency-path-name in-label label-value { nexthop ip-address | outgoing-interface interface-type interface-number }
指定的下一跳地址不能是本地设备上的公网IP地址。
指定的下一跳或出接口必须与路由表中最优路由(非BGP路由)的下一跳或出接口保持一致,同一台设备上,如果最优路由有多个下一跳或者出接口,那么就能配置多个到该目的地址的前缀路径用于负载分担,但是需要注意的是到达同一目的地址前缀路径的名称、入标签值需要保持一致。
本命令需要在静态SRLSP的所有节点上执行。
如果多条静态SRLSP的目的地址相同,公共路径节点的前缀路径信息一致,不需要进行多次配置。
(1) 进入系统视图。
system-view
(2) 配置静态Prefix Segment。
static-sr-mpls prefix prefix-path-name destination ip-address { mask-length | mask } in-label in-label-value [ { nexthop ip-address | outgoing-interface interface-type interface-number } out-label out-label-value ]
指定的下一跳地址不能是本地设备上的公网IP地址。
(1) 开启MPLS TE能力
在MPLS TE隧道经过的所有节点上执行本配置,配置方法请参见“MPLS配置指导”中的“MPLS TE”。
在MPLS TE隧道的头节点上执行本配置。
(3) 创建Tunnel接口,并指定隧道的目的端地址
在MPLS TE隧道的头节点上执行本配置,配置方法请参见“MPLS配置指导”中的“MPLS TE”。
在MPLS TE隧道的头节点上执行本配置。
(5) 配置静态路由或策略路由,将流量引入MPLS TE隧道。
在MPLS TE隧道的头节点执行本配置,配置方法请参见“MPLS配置指导”中的“MPLS TE”。
(1) 进入系统视图。
system-view
(2) 配置用于MPLS TE隧道的静态SRLSP。
static-sr-mpls lsp lsp-name out-label out-label-value&<1-n>
(1) 进入系统视图。
system-view
(2) 进入模式为MPLS TE隧道的Tunnel接口视图。
interface tunnel tunnel-number [ mode mpls-te ]
(3) 配置使用静态方式建立MPLS TE隧道。
mpls te signaling static
缺省情况下,MPLS TE使用RSVP-TE信令协议建立隧道。
本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS TE”。
(4) 指定隧道引用的SRLSP。
mpls te static-sr-mpls lsp-name [ backup ]
缺省情况下,隧道没有引用任何静态SRLSP。
MPLS TE隧道所引用的静态SRLSP,必须已经通过static-sr-mpls lsp命令创建。
只有当主用和备用SRLSP均采用Adjacency方式建立时,才允许通过指定backup参数配置隧道引用备用SRLSP。
在完成上述配置后,在任意视图下执行display命令可以显示配置SR-MPLS后的运行情况,用户可以通过查看显示信息验证配置的效果。
表1-1 SR-MPLS显示和维护
操作 |
命令 |
显示静态SRLSP信息或静态配置的邻接段信息 |
display mpls static-sr-mpls { lsp [ lsp-name ] | adjacency [ adjacency-path-name ] } |
显示静态配置的前缀段信息 |
display mpls static-sr-mpls prefix [ path lsp-name | destination ip-address [ mask | mask-length ] ] |
· 设备Switch A、Switch B、Switch C、Switch D和Switch E运行IS-IS。
· 使用静态SRLSP建立一条Switch A到Switch D的MPLS TE隧道,实现两个IP网络通过MPLS TE隧道传输数据流量。静态SRLSP经过三个段,#1段:Switch A到Switch B的邻接段,#2段:Switch B到Switch C的邻接段,#3段:Switch C到Switch D的邻接段。
· 使用静态SRLSP建立另外一条Switch A到Switch E的MPLS TE隧道,实现两个IP网络通过MPLS TE隧道传输数据流量。静态SRLSP经过三个段,#1段:Switch A到Switch B的邻接段,#2段:Switch B到Switch C的前缀段,#3段:Switch C到Switch E的邻接段。
图1-4 静态配置Segment配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Loop0 |
1.1.1.9/32 |
Switch B |
Loop0 |
2.2.2.9/32 |
|
Vlan-int10 |
100.1.1.1/24 |
|
Vlan-int10 |
10.1.1.2/24 |
|
Vlan-int20 |
10.1.1.1/24 |
|
Vlan-int20 |
20.1.1.1/24 |
|
|
|
|
Vlan-int30 |
60.1.1.1/24 |
Switch C |
Loop0 |
3.3.3.9/32 |
Switch D |
Loop0 |
4.4.4.9/32 |
|
Vlan-int10 |
30.1.1.1/24 |
|
Vlan-int10 |
100.1.2.1/24 |
|
Vlan-int20 |
20.1.1.2/24 |
|
Vlan-int20 |
30.1.1.2/24 |
|
Vlan-int30 |
50.1.1.1/24 |
|
|
|
|
Vlan-int40 |
60.1.1.2/24 |
|
|
|
Switch E |
Loop0 |
5.5.5.9/32 |
|
|
|
|
Vlan-int10 |
200.1.2.1/24 |
|
|
|
|
Vlan-int20 |
50.1.1.2/24 |
|
|
|
(1) 配置各接口的IP地址
按照图1-4配置各接口的IP地址和掩码,具体配置过程略。
(2) 配置IS-IS协议发布接口所在网段的路由,包括Loopback接口,具体配置过程略。
配置完成后,在各设备上执行display ip routing-table命令,可以看到相互之间都学到了到对方的路由,包括Loopback接口对应的主机路由。
(3) 配置LSR ID、开启MPLS能力和MPLS TE能力
# 配置Switch A。
<SwitchA> system-view
[SwitchA] mpls lsr-id 1.1.1.9
[SwitchA] mpls te
[SwitchA-te] quit
[SwitchA] interface vlan-interface 20
[SwitchA-Vlan-interface20] mpls enable
[SwitchA-Vlan-interface20] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] mpls lsr-id 2.2.2.9
[SwitchB] mpls te
[SwitchB-te] quit
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] mpls enable
[SwitchB-Vlan-interface10] quit
[SwitchB] interface vlan-interface 20
[SwitchB-Vlan-interface20] mpls enable
[SwitchB-Vlan-interface20] quit
[SwitchB] interface vlan-interface 30
[SwitchB-Vlan-interface30] mpls enable
[SwitchB-Vlan-interface30] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] mpls lsr-id 3.3.3.9
[SwitchC] mpls te
[SwitchC-te] quit
[SwitchC] interface vlan-interface 10
[SwitchC-Vlan-interface10] mpls enable
[SwitchC-Vlan-interface10] quit
[SwitchC] interface vlan-interface 20
[SwitchC-Vlan-interface20] mpls enable
[SwitchC-Vlan-interface20] quit
[SwitchC] interface vlan-interface 30
[SwitchC-Vlan-interface30] mpls enable
[SwitchC-Vlan-interface30] quit
[SwitchC] interface vlan-interface 40
[SwitchC-Vlan-interface40] mpls enable
[SwitchC-Vlan-interface40] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] mpls lsr-id 4.4.4.9
[SwitchD] mpls te
[SwitchD-te] quit
[SwitchD] interface vlan-interface 20
[SwitchD-Vlan-interface20] mpls enable
[SwitchD-Vlan-interface20] quit
# 配置Switch E。
<SwitchE> system-view
[SwitchE] mpls lsr-id 5.5.5.9
[SwitchE] mpls te
[SwitchE-te] quit
[SwitchE] interface vlan-interface 20
[SwitchE-Vlan-interface20] mpls enable
[SwitchE-Vlan-interface20] quit
(4) 配置节点的邻接路径标签和前缀路径标签
# 配置Switch A的邻接标签,为下一跳地址10.1.1.2绑定标签16。
[SwitchA] static-sr-mpls adjacency adjacency-1 in-label 16 nexthop 10.1.1.2
# 配置Switch B的邻接标签,为下一跳地址20.1.1.2绑定标签21。
[SwitchB] static-sr-mpls adjacency adjacency-2 in-label 21 nexthop 20.1.1.2
# 配置Switch B的前缀标签,为下一跳地址20.1.1.2、60.1.1.2绑定相同的前缀路径名称、入标签16000、出标签16001,在Switch B和Switch C之间形成负载分担。
[SwitchB] static-sr-mpls prefix prefix-1 destination 5.5.5.9 32 in-label 16000 nexthop 20.1.1.2 out-label 16001
[SwitchB] static-sr-mpls prefix prefix-1 destination 5.5.5.9 32 in-label 16000 nexthop 60.1.1.2 out-label 16001
# 配置Switch C的邻接标签,为下一跳地址30.1.1.2、50.1.1.2分别绑定标签30、31。
[SwitchC] static-sr-mpls adjacency adjacency-1 in-label 30 nexthop 30.1.1.2
[SwitchC] static-sr-mpls adjacency adjacency-2 in-label 31 nexthop 50.1.1.2
# 配置Switch C的前缀标签,为目的地址5.5.5.9绑定标签16001。
[SwitchC] static-sr-mpls prefix prefix-1 destination 5.5.5.9 32 in-label 16001
(5) 创建静态SRLSP
# 配置Switch A为静态SRLSP的头节点,static-sr-lsp-1出标签栈为[16,21,30],建立到Switch D的静态SRLSP。
[SwitchA] static-sr-mpls lsp static-sr-lsp-1 out-label 16 21 30
# 配置Switch A为静态SRLSP的头节点,static-sr-lsp-2出标签栈为[16,16000,31],建立到Switch E的静态SRLSP。
[SwitchA] static-sr-mpls lsp static-sr-lsp-2 out-label 16 16000 31
(6) 配置MPLS TE隧道
# 在Switch A上配置到Switch D的MPLS TE隧道Tunnel1:目的地址为Switch D的LSR ID(4.4.4.9);采用静态SRLSP建立MPLS TE隧道,引用的SRLSP为static-sr-lsp-1。
[SwitchA] interface tunnel 1 mode mpls-te
[SwitchA-Tunnel1 ip address 6.1.1.1 255.255.255.0
[SwitchA-Tunnel1] destination 4.4.4.9
[SwitchA-Tunnel1] mpls te signaling static
[SwitchA-Tunnel1] mpls te static-sr-mpls static-sr-lsp-1
[SwitchA-Tunnel1] quit
# 在Switch A上配置到Switch E的MPLS TE隧道Tunnel2:目的地址为Switch E的LSR ID(5.5.5.9);采用静态SRLSP建立MPLS TE隧道,引用的SRLSP为static-sr-lsp-2。
[SwitchA] interface tunnel 2 mode mpls-te
[SwitchA-Tunnel2] ip address 7.1.1.1 255.255.255.0
[SwitchA-Tunnel2] destination 5.5.5.9
[SwitchA-Tunnel2] mpls te signaling static
[SwitchA-Tunnel2] mpls te static-sr-mpls static-sr-lsp-2
[SwitchA-Tunnel2] quit
(7) 配置静态路由使流量沿MPLS TE隧道转发
# 在Switch A上配置静态路由,使得到达网络100.1.2.0/24的流量通过MPLS TE隧道接口Tunnel1转发,到达网络200.1.2.0/24的流量通过MPLS TE隧道接口Tunnel2转发。
[SwitchA] ip route-static 100.1.2.0 24 tunnel 1 preference 1
[SwitchA] ip route-static 200.1.2.0 24 tunnel 2 preference 1
# 在Switch A上执行display mpls te tunnel-interface命令,可以看到MPLS TE隧道的建立情况。
[SwitchA] display mpls te tunnel-interface
Tunnel Name : Tunnel 1
Tunnel State : Up (Main CRLSP up)
Tunnel Attributes :
LSP ID : 1 Tunnel ID : 0
Admin State : Normal
Ingress LSR ID : 1.1.1.9 Egress LSR ID : 4.4.4.9
Signaling : Static Static CRLSP Name : -
Static SRLSP Name : static-sr-lsp-1/-
Resv Style : -
Tunnel mode : -
Reverse-LSP name : -
Reverse-LSP LSR ID : - Reverse-LSP Tunnel ID: -
Class Type : - Tunnel Bandwidth : -
Reserved Bandwidth : -
Setup Priority : 0 Holding Priority : 0
Affinity Attr/Mask : -/-
Explicit Path : -
Backup Explicit Path : -
Metric Type : TE
Record Route : - Record Label : -
FRR Flag : - Backup Bandwidth Flag: -
Backup Bandwidth Flag: - Backup Bandwidth Type: -
Backup Bandwidth : -
Bypass Tunnel : - Auto Created : -
Route Pinning : -
Retry Limit : 3 Retry Interval : 2 sec
Reoptimization : - Reoptimization Freq : -
Backup Type : - Backup LSP ID : -
Auto Bandwidth : - Auto Bandwidth Freq : -
Min Bandwidth : - Max Bandwidth : -
Collected Bandwidth : -
Tunnel Name : Tunnel 2
Tunnel State : Up (Main CRLSP up)
Tunnel Attributes :
LSP ID : 1 Tunnel ID : 1
Admin State : Normal
Ingress LSR ID : 1.1.1.9 Egress LSR ID : 5.5.5.9
Signaling : Static Static CRLSP Name : -
Static SRLSP Name : static-sr-lsp-2/-
Resv Style : -
Tunnel mode : -
Reverse-LSP name : -
Reverse-LSP LSR ID : - Reverse-LSP Tunnel ID: -
Class Type : - Tunnel Bandwidth : -
Reserved Bandwidth : -
Setup Priority : 0 Holding Priority : 0
Affinity Attr/Mask : -/-
Explicit Path : -
Backup Explicit Path : -
Metric Type : TE
Record Route : - Record Label : -
FRR Flag : - Bandwidth Protection : -
Backup Bandwidth Flag: - Backup Bandwidth Type: -
Backup Bandwidth : -
Bypass Tunnel : - Auto Created : -
Route Pinning : -
Retry Limit : 3 Retry Interval : 2 sec
Reoptimization : - Reoptimization Freq : -
Backup Type : - Backup LSP ID : -
Auto Bandwidth : - Auto Bandwidth Freq : -
Min Bandwidth : - Max Bandwidth : -
Collected Bandwidth : -
# 在各设备上执行display mpls lsp或display mpls static-sr-lsp命令,可以看到静态SRLSP的建立情况。
[SwitchA] display mpls lsp
FEC Proto In/Out Label Interface/Out NHLFE
1.1.1.9/0/46565 StaticCR -/21 Vlan20
30
1.1.1.9/1/46565 StaticCR -/16000 Vlan20
31
- StaticCR 16/- Vlan20
10.1.1.2 Local -/- Vlan20
Tunnel0 Local -/- NHLFE1
Tunnel1 Local -/- NHLFE2
[SwitchB] display mpls lsp
FEC Proto In/Out Label Interface/Out NHLFE
5.5.5.9/32 StaticCR 16000/16001 Vlan20
5.5.5.9/32 StaticCR 16000/16001 Vlan30
- StaticCR 21/- Vlan20
20.1.1.2 Local -/- Vlan20
60.1.1.2 Local -/- Vlan30
[SwitchC] display mpls lsp
FEC Proto In/Out Label Interface/Out NHLFE
5.5.5.9/32 StaticCR 16001/- -
- StaticCR 30/- Vlan10
- StaticCR 31/- Vlan30
30.1.1.2 Local -/- Vlan10
50.1.1.2 Local -/- Vlan30
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!