MPLS-TE前四个基础实验
MPLS-TE的基础配置
实验目标:
- 所有的路由器都运行MPLS-TE
- 实现从AR1到10.0.4.4的MPLS-TE负载
基础配置
# R1
sys
sysn AR1
int l0
ip add 10.0.1.1 32
int g0/0/1
ip add 10.0.15.1 24
int g0/0/0
ip add 10.0.12.1 24
ospf 1 router-id 10.0.1.1
a 0
network 10.0.1.1 0.0.0.0
network 10.0.15.1 0.0.0.0
network 10.0.12.1 0.0.0.0
R2:
sys
sysn AR2
int l0
ip add 10.0.2.2 32
int g0/0/0
ip add 10.0.12.2 24
int g0/0/1
ip add 10.0.23.2 24
int g0/0/2
ip add 10.0.25.2 24
ospf 1 router-id 10.0.2.2
a 0
network 0.0.0.0 0.0.0.0
# R3:
sys
sysn AR3
int l0
ip add 10.0.3.3 32
int g0/0/0
ip add 10.0.23.3 24
int g0/0/1
ip add 10.0.34.3 24
int g0/0/2
ip add 10.0.36.3 24
ospf 1 router-id 10.0.3.3
a 0
network 0.0.0.0 0.0.0.0
# R4
sys
sysn AR4
int l0
ip add 10.0.4.4 32
int g0/0/0
ip add 10.0.34.4 24
int g0/0/1
ip add 10.0.46.4 24
ospf 1 router-id 10.0.4.4
a 0
network 10.0.4.4 0.0.0.0
network 10.0.34.4 0.0.0.0
network 10.0.46.4 0.0.0.0
# R5
sys
sysn AR5
int l0
ip add 10.0.5.5 32
int g0/0/0
ip add 10.0.56.5 24
int g0/0/2
ip add 10.0.25.5 24
int g0/0/1
ip add 10.0.15.5 24
ospf 1 router-id 10.0.5.5
a 0
network 0.0.0.0 0.0.0.0
# R6
sys
sysn AR6
int l0
ip add 10.0.6.6 32
int g0/0/1
ip add 10.0.56.6 24
int g0/0/0
ip add 10.0.46.6 24
int g0/0/2
ip add 10.0.36.6 24
ospf 1 router-id 10.0.6.6
a 0
network 0.0.0.0 0.0.0.0
# 基础配置完成之后,从R1到R4应是负载效果,反之亦然。
<AR4>dis ip routing-table 10.0.1.1
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 2
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.0.1.1/32 OSPF 10 3 D 10.0.34.3 GigabitEthernet
0/0/0
OSPF 10 3 D 10.0.46.6 GigabitEthernet
0/0/1
RSVP-TE的配置
# 所有的路由器全都开启MPLS-TE功能,以AR1为例子
mpls lsr-id 10.0.1.1
mpls
mpls te
mpls rsvp-te
# 所有的物理接口全都打开mpls mplste
int g x/x/x
mpls
mpls te
mpls rsvp-te
# 让所有的OSPF支持MPLS-TE
ospf 1
opaque-capability enable
a 0
mpls-te enable
# 具体配置
# R1的具体配置
mpls lsr-id 10.0.1.1
mpls
mpls te
mpls rsvp-te
int g0/0/0
mpls
mpls te
mpls rsvp-te
int g0/0/1
mpls
mpls te
mpls rsvp-te
ospf 1
opaque-capability enable
a 0
mpls-te enable
# AR2的具体配置
mpls lsr-id 10.0.2.2
mpls
mpls te
mpls rsvp-te
int g0/0/0
mpls
mpls te
mpls rsvp-te
int g0/0/1
mpls
mpls te
mpls rsvp-te
int g0/0/2
mpls
mpls te
mpls rsvp-te
ospf 1
opaque-capability enable
a 0
mpls-te enable
# AR3的具体配置
mpls lsr-id 10.0.3.3
mpls
mpls te
mpls rsvp-te
int g0/0/0
mpls
mpls te
mpls rsvp-te
int g0/0/1
mpls
mpls te
mpls rsvp-te
int g0/0/2
mpls
mpls te
mpls rsvp-te
ospf 1
opaque-capability enable
a 0
mpls-te enable
# AR4的具体配置
mpls lsr-id 10.0.4.4
mpls
mpls te
mpls rsvp-te
int g0/0/0
mpls
mpls te
mpls rsvp-te
int g0/0/1
mpls
mpls te
mpls rsvp-te
ospf 1
opaque-capability enable
a 0
mpls-te enable
# AR5的具体配置
mpls lsr-id 10.0.5.5
mpls
mpls te
mpls rsvp-te
int g0/0/0
mpls
mpls te
mpls rsvp-te
int g0/0/1
mpls
mpls te
mpls rsvp-te
int g0/0/2
mpls
mpls te
mpls rsvp-te
ospf 1
opaque-capability enable
a 0
mpls-te enable
# # AR6的具体配置
mpls lsr-id 10.0.6.6
mpls
mpls te
mpls rsvp-te
int g0/0/0
mpls
mpls te
mpls rsvp-te
int g0/0/1
mpls
mpls te
mpls rsvp-te
int g0/0/2
mpls
mpls te
mpls rsvp-te
ospf 1
opaque-capability enable
a 0
mpls-te enable
# 校验
AR1>dis ospf lsdb
OSPF Process 1 with Router ID 10.0.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.0.5.5 10.0.5.5 366 72 8000001B 0
Router 10.0.3.3 10.0.3.3 377 72 80000021 0
……
Area: 0.0.0.1
Type 10 Opaque (Area-Local Scope) Database
Type LinkState ID AdvRouter Age Len Sequence Area
Opq-Area 1.0.0.3 10.0.2.2 470 200 80000001 0.0.0.0
Opq-Area 1.0.0.3 10.0.3.3 431 200 80000001 0.0.0.0
……
查看一下LSA里面具体内容,这是AR1自己发送的
<AR1>dis ospf mpls-te self-originated
OSPF Process 1 with Router ID 10.0.1.1
Area ID : 0.0.0.0
LSA [ 1 ]
------------------------------------------------
Lsa Type : Opq-Area
Opaque Type : 1
Opaque Id : 1
Advertising Router Id : 10.0.1.1 # 通告路由器
Link Type : MultiAccess
Link ID : 10.0.12.1
Local Interface Address : 10.0.12.1 # 本地地址
Remote Interface Address : 0.0.0.0 # 没有指对端地址
TE Metric : 1 # TE的开销
Maximum Bandwidth : 0 bytes/sec # 最大带宽
Maximum Reservable BW : 0 bytes/sec # 最大可保留带宽
Admin Group : 0X0 # 管理组
隧道配置
# R1的具体配置
[AR1]dis mpls lsp
[AR1]int tunnel 0/0/1
[AR1-Tunnel0/0/1]tunnel-protocol mpls te
[AR1-Tunnel0/0/1]ip add unnumbered interface l0
[AR1-Tunnel0/0/1]destination 10.0.4.4
[AR1-Tunnel0/0/1]mpls te tunnel-id 1
[AR1-Tunnel0/0/1]mpls te signal-protocol rsvp-te
[AR1-Tunnel0/0/1]mpls te commit
[AR1-Tunnel0/0/1]
Apr 15 2023 20:50:52-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[41]:The line protocol I
P on the interface Tunnel0/0/1 has entered the UP state.
[AR1-Tunnel0/0/1]dis ip int brie
Tunnel0/0/1 10.0.1.1/32 up up
# 在R1配置了隧道接口之后,立马形成了LSP路径,现在R5上并没有隧道
[AR1]dis mpls lsp
-------------------------------------------------------------------------------
LSP Information: RSVP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
10.0.4.4/32 NULL/1024 -/GE0/0/0
隧道源接口这个地址的与GRE的隧道接口一样没有意义步骤比较多,如果少了哪一步,commit的时候会提醒你的。
其实这个过程是这样的,在隧道选中目标IP是10.0.4.4之后,MPLS-TE立马在路由表里面查看10.0.4.4的路由,并将建立请求的信息发送给10.0.4.4,R4收到之后立马就会通过RSVP-TE沿着中间的其它路由器向着R1方向建立LSP,这个方向与LDP差不多,都是与数据转发的方向是相反的。
# 验证
<AR1>dis mpls lsp
-------------------------------------------------------------------------------
LSP Information: RSVP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
10.0.4.4/32 NULL/1024 -/GE0/0/0
<AR1>dis mpls lsp verbose
-------------------------------------------------------------------------------
LSP Information: RSVP LSP
-------------------------------------------------------------------------------
No : 1
SessionID : 1
IngressLsrID : 10.0.1.1
LocalLspID : 1
Tunnel-Interface : Tunnel0/0/1
Fec : 10.0.4.4/32
TunnelTableIndex : 0x0
Nexthop : 10.0.12.2
In-Label : NULL
Out-Label : 1024
In-Interface : ----------
Out-Interface : GigabitEthernet0/0/0
LspIndex : 2048
Token : 0x2
LsrType : Ingress
Mpls-Mtu : 1500
TimeStamp : 595sec
Bfd-State : ---
CBfd-Event : 0x0
Bed-State : BED STOP
Bed-LastNotifyValue : ---
Bed-LastNotifyLspId : ---
<AR1>tracert lsp te tunnel 0/0/1
LSP Trace Route FEC: TE TUNNEL IPV4 SESSION QUERY Tunnel0/0/1 , press CTRL_C t
o break.
TTL Replier Time Type Downstream
0 Ingress 10.0.12.2/[1024 ] # 压入标签
1 10.0.12.2 20 ms Transit 10.0.23.3/[1024 ] # 中间的传输节点
2 10.0.23.3 30 ms Transit 10.0.34.4/[3 ] # 中间的传输节点
3 10.0.4.4 30 ms Egress # 弹出标签
[AR1]int t0/0/1
mpls te record-route label
<AR1>dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :2
Hop Information
Hop 0 10.0.12.1
Hop 1 10.0.12.2 Label 1025
Hop 2 10.0.2.2 Label 1025
Hop 3 10.0.23.2
Hop 4 10.0.23.3 Label 1025
Hop 5 10.0.3.3 Label 1025
Hop 6 10.0.34.3
Hop 7 10.0.34.4 Label 3
Hop 8 10.0.4.4 Label 3
MPLS-TE根据带宽选路实现
先看AR1的默认选路
按理说是随机的,奈何一直随机R1-R2-R3-R4这条路径,R1-R5-R6-R4那条路径明明也能走,当把R2和R3关机之后就会走上面的那条;
[AR1-Tunnel0/0/1]dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :2
Hop Information
Hop 0 10.0.12.1
Hop 1 10.0.12.2
Hop 2 10.0.2.2
Hop 3 10.0.23.2
Hop 4 10.0.23.3
Hop 5 10.0.3.3
Hop 6 10.0.34.3
Hop 7 10.0.34.4
Hop 8 10.0.4.4
[AR1-Tunnel0/0/1]restart
[AR1-Tunnel0/0/1]
Apr 16 2023 12:52:39-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[26]:The line protocol I
P on the interface Tunnel0/0/1 has entered the DOWN state.
[AR1-Tunnel0/0/1]
Apr 16 2023 12:52:39-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[27]:The line protocol I
P on the interface Tunnel0/0/1 has entered the UP state.
[AR1-Tunnel0/0/1]dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :2
Hop Information
Hop 0 10.0.12.1
Hop 1 10.0.12.2
Hop 2 10.0.2.2
Hop 3 10.0.23.2
Hop 4 10.0.23.3
Hop 5 10.0.3.3
Hop 6 10.0.34.3
Hop 7 10.0.34.4
Hop 8 10.0.4.4
配置
思路:
1. 根据拓扑,调整物理接口的带宽限制
2. 通知MPLS-TE使用本身的的路径选择算法
3. 在AR1的隧道内要求建立LSP的时候,沿途带宽必须大于150M
4. 第四步:看效果,成功,现在是走R1-R5-R6这条路径
# 根据拓扑,调整物理接口的带宽限制
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]mpls te bandwidth max-reservable-bandwidth 200000
[AR1-GigabitEthernet0/0/1]mpls te bandwidth bc0 200000
[AR5]int g0/0/0
[AR5-GigabitEthernet0/0/0]mpls te bandwidth max-reservable-bandwidth 200000
[AR5-GigabitEthernet0/0/0]mpls te bandwidth bc0 200000
[AR6]int g0/0/0
[AR6-GigabitEthernet0/0/0]mpls te bandwidth max-reservable-bandwidth 200000
[AR6-GigabitEthernet0/0/0]mpls te bandwidth bc0 200000
[AR1-GigabitEthernet0/0/0]mpls te bandwidth max-reservable-bandwidth 100000
[AR1-GigabitEthernet0/0/0]mpls te bandwidth bc0 100000
[AR2-GigabitEthernet0/0/1]mpls te bandwidth max-reservable-bandwidth 100000
[AR2-GigabitEthernet0/0/1]mpls te bandwidth bc0 100000
[AR3-GigabitEthernet0/0/1]mpls te bandwidth max-reservable-bandwidth 100000
[AR3-GigabitEthernet0/0/1]mpls te bandwidth bc0 100000
# 第二步:通知MPLS-TE使用本身的的路径选择算法
[AR1]mpls
[AR1-mpls]mpls te cspf
[AR1-mpls]dis th
[V200R003C00]
#
mpls lsr-id 10.0.1.1
mpls
mpls te
mpls rsvp-te
mpls te cspf
# 第三步:在AR1的隧道内要求建立LSP的时候,沿途带宽必须大于150M
[AR1]int t0/0/1
[AR1-Tunnel0/0/1]mpls te bandwidth CT0 150000
[AR1-Tunnel0/0/1]mpls te commit
[AR1-Tunnel0/0/1]restart
# 第四步:看效果,成功,现在是走R1-R5-R6这条路径
[AR1]dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :3
Hop Information
Hop 0 10.0.15.1
Hop 1 10.0.15.5
Hop 2 10.0.5.5
Hop 3 10.0.56.5
Hop 4 10.0.56.6
Hop 5 10.0.6.6
Hop 6 10.0.46.6
Hop 7 10.0.46.4
Hop 8 10.0.4.4
MPLS-TE根据亲和属性选路
当前路径
[AR1]int t0/0/1
[AR1-Tunnel0/0/1]dis th
[V200R003C00]
#
interface Tunnel0/0/1
ip address unnumbered interface LoopBack0
tunnel-protocol mpls te
destination 10.0.4.4
mpls te tunnel-id 1
mpls te record-route
mpls te commit
# 随机选了一个上面的路径
[AR1]dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :1
Hop Information
Hop 0 10.0.15.1
Hop 1 10.0.15.5
Hop 2 10.0.5.5
Hop 3 10.0.56.5
Hop 4 10.0.56.6
Hop 5 10.0.6.6
Hop 6 10.0.46.6
Hop 7 10.0.46.4
Hop 8 10.0.4.4
配置
在R1上规则路径,希望AR4来的时候是这样的路径,如下所示
# 第一步:在MPLS里面启用算法,先在所有的设备的物理接口上把管理组根据图中的拓扑敲上
# 启用算法
[AR1-mpls]mpls te cspf
# 例如,只敲入接口即可,以R1为例子
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]mpls te link administrative group 10001
Info: The configuration will take into effect ONLY for the newly created LSP
# 第二步:在隧道上配置配置亲和属性和MASK用来匹配路径,重启隧道进行验证
[AR1-Tunnel0/0/1]mpls te affinity property 10001 mask 11101
[AR1-Tunnel0/0/1]mpls te commit
[AR1-Tunnel0/0/1]restart
# 验证
# 成功
[AR1]dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :1
Hop Information
Hop 0 10.0.12.1
Hop 1 10.0.12.2
Hop 2 10.0.2.2
Hop 3 10.0.25.2
Hop 4 10.0.25.5
Hop 5 10.0.5.5
Hop 6 10.0.56.5
Hop 7 10.0.56.6
Hop 8 10.0.6.6
Hop 9 10.0.36.6
Hop 10 10.0.36.3
Hop 11 10.0.3.3
Hop 12 10.0.34.3
Hop 13 10.0.34.4
Hop 14 10.0.4.4
MPLS-TE 显式路径
严格
# # 启用算法
[AR1-mpls]mpls te cspf
# 定义严格路径列表
[AR1]explicit-path 1
[AR1-explicit-path-1]next hop 10.0.12.2 include strict
[AR1-explicit-path-1]next hop 10.0.25.5 include strict
[AR1-explicit-path-1]next hop 10.0.56.6 include strict
[AR1-explicit-path-1]next hop 10.0.36.3 include strict
[AR1-explicit-path-1]next hop 10.0.34.4 include strict
[AR1-explicit-path-1]list hop
Path Name : 1 Path Status : Enabled
1 10.0.12.2 Strict Include
2 10.0.25.5 Strict Include
3 10.0.56.6 Strict Include
4 10.0.36.3 Strict Include
5 10.0.34.4 Strict Include
# 调用
[AR1]int t0/0/1
[AR1-Tunnel0/0/1]mpls te path ex
[AR1-Tunnel0/0/1]mpls te path explicit-path 1
[AR1-Tunnel0/0/1]mpls te commit
[AR1-Tunnel0/0/1]restart
# 校验
<AR1>dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :1
Hop Information
Hop 0 10.0.12.1
Hop 1 10.0.12.2
Hop 2 10.0.2.2
Hop 3 10.0.25.2
Hop 4 10.0.25.5
Hop 5 10.0.5.5
Hop 6 10.0.56.5
Hop 7 10.0.56.6
Hop 8 10.0.6.6
Hop 9 10.0.36.6
Hop 10 10.0.36.3
Hop 11 10.0.3.3
Hop 12 10.0.34.3
Hop 13 10.0.34.4
Hop 14 10.0.4.4
PS:切换的时候旧的路径有可能会有残留显示
松散
# # 启用算法
[AR1-mpls]mpls te cspf
# 没限制的情况下
[AR1]dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :1
Hop Information
Hop 0 10.0.12.1
Hop 1 10.0.12.2
Hop 2 10.0.2.2
Hop 3 10.0.23.2
Hop 4 10.0.23.3
Hop 5 10.0.3.3
Hop 6 10.0.34.3
Hop 7 10.0.34.4
Hop 8 10.0.4.4
# 隧道路径必须经过10.0.56.6
[AR1]explicit-path 2
[AR1-explicit-path-2]next hop 10.0.56.6 include loose
[AR1]int t0/0/1
[AR1-Tunnel0/0/1]mpls te path explicit-path 2
[AR1-Tunnel0/0/1]restart
# 校验
[AR1]dis mpls te tunnel path
Tunnel Interface Name : Tunnel0/0/1
Lsp ID : 10.0.1.1 :1 :1
Hop Information
Hop 0 10.0.15.1
Hop 1 10.0.15.5
Hop 2 10.0.5.5
Hop 3 10.0.56.5
Hop 4 10.0.56.6
Hop 5 10.0.6.6
Hop 6 10.0.46.6
Hop 7 10.0.46.4
Hop 8 10.0.4.4