MPLS TE.note

noteId: WEBd8ccfc6d6f0c7e86bb6847d37bd4d559 · 原始路径:/ALL/网络 - C模块/VRF/MPLS VPN/MPLS TE.note · 图片:7 · 附件待处理:0

 
·什么是 MPLS TE:
MPLS Traffic Engineering(MPLS TE)
普通的MPLS/LDP根据IGP路由来走,例如通过OSPF路由BR1 → CR1 → IR3
MPLS TE 就是人为/自动计算一条特殊的 MPLS 标签路径,然后把这条路径包装成一个 Tunnel 接口给路由使用,例如强制经过BR1 → ISP → IR1 → CR2 → CR1 —— BR2,但在两边其实只能看到这个tunnel接口,看不到底层路径(只有traceroute才行)
这个隧道也叫 RSVP-TE LSP(Label Switched Path)
 
只有 OSPF 和 ISIS才支持 MPLS TE,但是ISIS一般不使用了,因此主要还是OSPF
 
 
 
 
 
1、配置 MPLS TE(OSPF):
先正常配置好 MPLS BGPVPN,把公网那些mpls ldp label什么的都配置了
 
(1)配置 BR1:
ip cef    //默认就有(排错要注意是否被no 掉)
mpls traffic-eng tunnels 
 
# OSPF 开启Traffic Engineering(需要在所有核心路由器上开启,就是经过的路由器)
router ospf 150
 mpls traffic-eng router-id Loopback1
 mpls traffic-eng area 0    //当前链路处于哪个区域,就要设置哪个区域
 # 如果链路跨区域,处于多个区域,就要同时开启,上面router-id定义的接口处于的区域不需要设置进来,只需要设置链路的区域:
 ## mpls traffic-eng area 1
 
指定直连接口地址也是没问题的,也能通
# 配置 Explicit Path 自定义路径:
## 这个地址建议指定mpls ldp那个router-id的接口的地址
ip explicit-path name BR1 enable
 next-address loose 100.64.0.1
 next-address loose 100.64.1.1
 next-address loose 100.64.2.1
 next-address loose 100.64.1.2
 next-address loose 100.64.1.3    //tunnel 目标地址
 
## 这里可以定义loose和strict参数,不指定默认按照 strict处理
strict表示指定的IP必须是紧邻的下一跳,中间不能夹杂其他路由器,不论它是不是TE
loose表示下一跳只要能够到的即可,中间可以通过其他TE
## 如果题目不严格,就可以全部 loose
 
# 接口启用:
int g0/0    //公网接口(就是mpls流量出口,去往对端的接口)
 mpls ip
 mpls traffic-eng tunnels
 ip rsvp bandwidth 100000 100000    //这个也必须要配置,在接口上启用 rsvp
 
# 配置 tunnel 0:
interface tunnel 0
 ip unnumbered Loopback1
 tunnel mode mpls traffic-eng
 tunnel destination 100.64.1.3
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng bandwidth 10000    //配置预留带宽(可选)
 tunnel mpls traffic-eng path-option 1 explicit name BR1
 
 
 
(2)配置 IR3:
explicit路径要反过来
ip cef    //默认就有(排错要注意是否被no 掉)
mpls traffic-eng tunnels
 
# 在OSPF中开启 TE:
router ospf 150
 mpls traffic-eng router-id Loopback1
 mpls traffic-eng area 0
 mpls traffic-eng area 2    //因为链路经过了多个区域,所以要全部写进来
 
# 配置 Explicit Path 自定义路径:
## 这个路径跟上面是反过来的:
## 因为从本地到100.64.4.1,从100.64.4.1到100.64.2.1不是直连TE,因此需要指定 loose
ip explicit-path name IR3 enable
 next-address loose 100.64.1.2
 next-address loose 100.64.2.1
 next-address loose 100.64.1.1
 next-address loose 100.64.0.1
 next-address loose 100.64.3.1    //tunnel 目标地址
 
int ra g0/2-3
 mpls ip
 mpls traffic-eng tunnels
 ip rsvp bandwidth 100000 100000    //这个也必须要配置,在接口上启用 rsvp
 
 
# 配置 tunnel 0:
interface tunnel 0
 ip unnumbered Loopback1
 tunnel mode mpls traffic-eng
 tunnel destination 100.64.3.1
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng bandwidth 10000
 tunnel mpls traffic-eng path-option 1 explicit name IR3
 
 
(3)其他经过的路由器:
流量经过哪个ospf区域,哪个区域就要启用 TE
 
经过的路由器:IR1、IR2、CR1、CR2、BR2
router ospf 150
 mpls traffic-eng router-id Loopback1
 mpls traffic-eng area 2
 
# IR1、IR2:
router ospf 150
 mpls traffic-eng router-id Loopback1
 mpls traffic-eng area 0
 mpls traffic-eng area 2
 
# ISP:
router ospf 150
 mpls traffic-eng router-id Loopback1
 mpls traffic-eng area 0
 
# 全局开启:
mpls traffic-eng tunnels
 
# 并且要在流量经过的链路上开启:
interface g0/0 .... g0/2....
 mpls ip
 mpls traffic-eng tunnels    //必须先全局开启上面的那条参数
 ip rsvp bandwidth 100000 100000    //这个也必须要配置,在接口上启用 rsvp
 
·命令总结:
1、全局开启:mpls traffic-eng tunnels
2、所有通信接口开启:
mpls traffic-eng tunnels
ip rsvp bandwidth 100000 100000
3、OSPF进程开启:
mpls traffic-eng router-id Loopback1
mpls traffic-eng area 0
 
·测试:
# 这里在中间路由器 ISP上测试:
show mpls traffic-eng tunnels brief
show ip ospf mpls traffic-eng link
show ip rsvp interface
 
客户端 traceroute 路径测试:
经过 ISP1 -> IR1 -> CR1 -> IR2
 
 
2、配置 MPLS TE(底层使用BGP):
配置与上面一样,只多了一点配置,需要在BGP多配置一条send-label
 
(1)所有设备BGP上配置:
router bgp 200
 neighbor 1.1.1.1 send-label    //如果这里配置不了,就进入 add ipv4(记得在ipv4中也要配置 activate和send-community)
 
 
·命令总结:
1、全局开启:mpls traffic-eng tunnels
2、所有通信接口开启:
mpls traffic-eng tunnels
ip rsvp bandwidth 100000 100000
3、BGP进程开启:
router bgp 200
 neighbor 1.1.1.1 send-label    //如果这里配置不了,就进入 add ipv4(记得在ipv4中也要配置 activate和send-community)
 
 
·可选参数:
# 开启 FRR:
int tunn 0
 tunnel mpls traffic-eng fast-reroute