MPLS TE 学习笔记
MPLS TE Tunnel优先级
MPLS TE Tunnel优先级 0-7 ,越小越优先,高优先可抢占低优先的资源
优先级有两种:建立优先级/保持优先级,建立不可设置比保持高,一般配置时一样即可
命令:tnnel mpls traffic-eng priority 6 6----第一个是建立,第二个是保持
每个优先级对应一个可用带宽-----Tunnel默认预留带宽为75%
sh mpls traffic top
sh mpls traffic link-management adv
sh mpls traffic link-management bandwdith
mpls traffic-eng administrative-weight
默认情况下TE Metric 等于IGP Metirc,
可在物理接口上用mpls traffic-eng administrative-weight 改变Te Metirc
也可全局或Tunnel接口设置:tunnel mpls traffic-eng path-selection metric [igp | te],默认为TE
若设置为IGP,则忽略物理接口配置的Administrative weight。
用以下命令查看:
sh mpls traffic-eng topo
sh mpls traffic-eng tunnels
路径计算
有以下约束条件:
TE Metirc
可用带宽
链路属性
有多条等价路径时选择方式:
选择IGP Cost最小的
选择有最大的“最小可用宽带的”
选择跳数少的
随机
路径设置选项:
显示:手工指定Tunnel穿越的路由(路由ID或接口地址)
动态:由CSPF算法自动计算
RSVP
路径的建立和维护
路径的拆除
错误通告
为TE遂道在路径中传递信令,同时还承载MPLS标签分发义务,使得报文可以沿着TE遂道的路径进行标签交换 。
用PATH和RESE进行信令及标签发放,每30S发送。
拆除路径会产生大量的信令,可用以下命令优化:
(config)#ip rsvp signalling rate-limit
tunnel mpls traffic-eng record-route
RRO 可使PATH/RESV消息携带record route对象,记录下Tunnel沿途经过的IP,可起到一定的防环作用。
MPLS TE流量转发
MPLS TE Tunnel不支持IGP协议:
TE tunnel是单向的
TEDB已拥有所有区别的链路状态信息,所以不需要再使用IGP路由协议
l 静态路由 static route
l 自动路由 auto route:
Autoroute 把TE tunnel作为一个直连链路参与SPF计算(非CSPF,仅本路由器),只会影响TE遂道首端,其他PE不知道TE遂道存在,不影响其他PE路由选择
tunnel mpls traffic-eng autoroute announce ,自动在路由表中加一条到Tunnel目的地的路由
tunnel mpls traffic-eng autoroute metric 10 设定Tunnel接口的Ospf Cost,可累计其他IGP的cost
tunnel mpls traffic-eng autoroute metric absolute 2 将tunnel的cost设定为固定的数字,不累加其他cost
tunnel mpls traffic-eng autoroute metric relative -6 将tunnel的cost加上或减去设定的数字(-10~10)
AUTOROUTE 缺陷:
在MPLS的首端PE上配置,只影响首端PE的OSPF选路
实际环境中,只有少数核心节点部署MPLS TE,其他节点无法知晓TE的存在,只能按传统IGP选路。
有时我们需要将边缘PE的流量也转发到TE上去,需要借助:Forwarding ajacency。
l Forwarding ajacency转发邻接
tunnel mpls traffic-eng forwarding-adjacency
说明:
转发邻接性使得TE路由器将TE tunnel作为虚链路(直连链路)在IGP区域内通告,这样所有PE都知道遂道的存在(OSPF/IS-IS)
使用转发特性,隧道首尾两端需在同一个区域中,同时均需配置tunnel,也就是双向遂道,且遂道接口均需激活邻接特性。
注意:通过FA通告的Cost,OSPF默认为1000.可直接在Tunnel接口上修改:ip ospf cost xxxx.
l 策略路由 policy route
3种可能导致TE 遂道重新最优化(reoptimiza)的触发因素
周期性的reoptimize
一条TE 遂道的Reoptimize默认每小时进行一次
mpls traffic-eng reoptimize timers frequency 0
如果时间指定为0,周期性的最优化将在PE的所有Tunnel上关闭。
tunnel mpls traffic-eng path-option 10 dynamic lockdown
使用lockdown关闭某一个Tunnel的最优化周期。
2.事件导致reoptimize
正常情况下,Cisoc ios不会因为某有个Tunnel变化触发重新最优化,但可以激活这个操作:
(config)#mpls traffic-eng reoptimize events link-up
可用debug mpls traffic-eng tunnel events查看
3.手工重新最优化reoptimize
#mpls traffic-eng reoptimize
Fast Reroute
FRR(保护节点/保护链路)
正常如果链路或节点出现故障时,流量因故障会被重新路由,重新路由可能要花上几秒时间,链路的高性能可能会导致大量指向故障点的数据包丢弃,可能会导致某些业务的中断
FRR是的一种link或node的保护机制,允许链路或节点出现故障时,首央PE Rerouting,并且使用一条临时的、预先建立好的路径以绕过故障点。
PLR 本地修理点,是备份遂道的首端
MP 汇合点,备份遂道的尾端
NHop 下一跳,是PLR的下一跳
NNHop 下下一跳,是PLR下一跳的下一跳
两个遂道:
配置主从遂道时,建议使用显示路径,如果主遂道采用动态,当主端口故障恢复后,路径不能自动切换到主线。
tunnel mpls traffic-eng path-option 10 explicit name R1R3R4R5 主遂道
tunnel mpls traffic-eng path-option protect 10 explicit name R1R2R5 备用遂道
显示路由:
next-address loose 1.1.1.2 跨区别的下一跳须用loose
-------------------------------------------------------------------------------------------
MPLS VPN
neighbor XXX maximum-prefix 1000 限制邻居路由1000条,超过断开连接,不自动恢复
neighbor XXX maximum-prefix 1000 restart y 超过限制条目后断开连接,y分钟后重连
neighbor XXX maximum-prefix 1000 90% warning-only 超过条目的90%,产生一条日志(默认75%)
CE---OSPF---PE---PE--OSPF--CE
可能会产生环路,可使用Dwon Bit防止环路,当PE收到一条OSPF重分布的路由后,加入Bit们,不加入路由表,发送给邻居。可能导致CE端无法学习到路由
解决方法: 将边缘的动态路由协议AD设定比核心高,这样核心就不会将边缘重分布的路由再学到。
在CE多宿主环境下,可用以SOO来防止环路。
在PE上用route-map方式设定:
route-map soo primit 10
set extcommunity soo 1:1(RD号)
高级VRF
选择性import: import map 名称---路由导入VRF前先过滤一次,过滤学到的路由
选择性export: export map 名称---路由导出前加上RT的Tag,不过滤路由,只能设定RT,不使用additvie则为覆盖(一般需要加上,在尾部加上添加的RT)
VRF route limit
BGP
BGP的选路策略
- 权重 越大越优先
- 本地优先级 越大越优先
- 起源本地的路由
- AS-Path越短越优先
- Origin: IGP>EGP>Incomplete
- MED 越小越优先
- EBGP优先IBGP,联邦EBGP优先IBGP
- 优先 BGP Next-HOP路由
- 多条相同AS的路径可一起用
- 路由来自多个EBGP,优先最老的路由
- BGP ID越小越优先
- BGP ID相同,优先CLuster-List最短
- 优先邻居ID最小的路由
- 同一AS内学到两个相同路由,比较RID,小的优先
- 权重 越大越优先 0-65535
本地network/重发布/静态/直连/本地汇总 32678邻居学到的默认为0
neighbor 5.5.5.5 route-map WT2 in ----用Route-map方式明细控制neighbor 5.5.5.5 weight 101-----直接设备,对所有路由生效
- 本地优级 越大越优先
只在本AS传播,不传递给EBGP默认100,可更改 bgp default local-preference 500
- 起源本地的路由
- AS-Path越短越优先
用AS-PAth来增加路由的AS时,必须是两个不同AS边界发送,同一AS内无效(仅当Update消息被发送给其他AS时,BGP才会将AS号追加到AS-PATH中)-AS-Path仅当离开AS时才会被更改
set as-path prepend 100AS路径只有在不同AS间才可以添加,一般在边界设备上操作----正式上不建议操作
- Origin: IGP>EGP>Incomplete
通过BGP手工Network发布的路由为I,早期EGP发布的路由为E,通过重分布学到的路由为?,I>E>?
可通过设定Origin传递给EBGP邻居,达到路由优化策略
- MED 越小越优先
Cisco默认MED为0.可选非传递。 默认情况下,只比较来自同一邻居AS的BGP路由的MED,如果需要比较不同AS,需用:bgp always-compare-medMED只在直接相连的自治系统间影响业务量,不会跨AS传递,越小越优先。
若未强制比较来自两个AS的,则按邻居的ID来,小的优先set metric 200
- EBGP优先IBGP,联邦EBGP优先IBGP
- 优先 BGP Next-HOP路由
优先BGP Next-hop路由,就是更改IGP的值,如更改OSPF Cost。
这里就是通过sh ip bgp 1.1.1.1 看到的Metirc值, 这是本地到达 Next-HOP的IGP度量值,可以修改这个来控制路由,越小越优先ip ospf cost 100
- 多条相同AS的路径可一起用
- 路由来自多个EBGP,优先最老的路由,降低翻滚的影响
- BGP ID越小越优先
- BGP ID相同,优先CLuster-List最短
- 优先邻居ID最小的路由
同一AS由于水平分割问题,导致第三PE无法学习到第一PE的路由,可通过路由反射或一三直接建IBGP邻居方式;
IBGP不会将从IBGP学到的路由通告给另一个邻居,这就是水平分割原则
BGP不会将学到的路由放到路由表中,除非它从IGP学到了相同的路由,这里就会有一个同步的问题。解决方法可以用路由重分发方式或IBGP全互联,但这对设备负载是个问题。 一般我们用路由反射或联邦来解决这个问题。
自动汇总:开启时,自动汇总重分布路由和network宣告的有类路由,network宣告的无类路由不汇总。默认关闭。
自动汇总:开启时,自动汇总重分布路由和network宣告的有类路由,network宣告的无类路由不汇总。默认关闭。
手工汇总:aggregate-address 不加参数,则汇总及明细均会被传递
- Summary-only: 只传递汇总路由,丢失路由的AS-PATH属性,可能会导致环路
- summary-only as-set:可继承原路由的一些属性:as-path / origin / community----在接收端做聚合时可用, 这样不会将汇总路由传递给发送方,这里还AS_path,接收方看到自己的AS路由,不放进表中
- aggregate-address xxxx xxxxx suppress-map xxxx as-set:用于宣告聚合及选定的明细路由(抑制特定的明细路由),后面跟上route-map,被匹配的路由将被过滤,其他的放行。--此Route-map仅用于匹配,不能用Set命令。
- neighbor X.X.X.X unsuppress-map XXX:针对特定邻居取消抑制路由过滤,可用unspuress-map调用Route-map实现。
- attribute-map:更改汇总路由属性,仅对汇总路由生效(如源,Metirc)
l BGP Dengeration:BGP拆分,相对汇总面言。 bgp inject-map 明细map exist-map 汇总map copy-attributes-此参数可让注入的明细路由继承汇总路由的路径属性,否则明细将被当成本地生成的路由。
l bgp dampening :BGP翻动 : bgp dampening 半衰期 重新启用界限 抑制界限 最大抑制时间(半衰期*4)
BGP属性:
1. 公认必遵-BGP认识,且必须包含
- Origin:三种途径 IGB>EGB>Incomplete
- As-path:防环和选路功能。另只有当离开AS时才可将AS号追加到PATH中,因此修改AS-PATH属性必须在边界路由器上执行。
- Next-hop:Local-Preference:默认为100,只在AS内部生效,越大越优先。
- 如果是外部EBGP更新的,内部IBGP的下一跳全指向EBGP邻居,传递过程不改变下一跳
- 如果通过Aggregae-address汇总的路由,下一跳为汇总路由器地址
- 如果通过network或重发布注入的,注入前该前缀的IGP下一跳为BGP的Next-hop
- 可通过next-hop-self更改下一跳
- ATOMIC_Aggregate
- Community:对邻居起作用,设置后向邻居发送。
- Route-map set community设置:
- no-advertise:不将路由通告给邻居
- No-export:不通告给EBGP邻居(联邦可通告)
- local-as:只有AS内传递,同样联邦AS内传递
- Additive : 设置添加AS,不加则为覆盖
- Internet:设置所有路由均属于此团体
- 在Match后面加exact-match,将严格匹配community
- Route-map set community设置:
2. 公认自选-BGP认识,可自定是否包含
3. 可选传递-可不支持,但可传递给邻居
例:
Ip community-list 11 permit 100:11 ---匹配包含100:11的路由(或的关系)
Ip community-list 11 permit 100:11 no-adv----匹配同进包含100:11和no adv的路由(与的关系)
Route-map test permit 10
Match community 11 exact-match-------严格匹配100:11的路由,不能多也不能少
- 删除特定的community:
100:11 100:22 no-adv
Ip community-list 11 permit no-adv--------匹配要删除的Community
Route-map test permit 10------删除no-adv属性
Set comm-list 11 delete
如要删除多个而不是所有,可写多条community-list,不可在一条list上写多个Community。
- Aggregator
- MED:默认情况下,只比较来自同一邻居AS的BGP路由的MED,就是说如果同一个目的地两条路由来自不同的AS,刚不进行MED比较。MED只在直接相连的自治系统间影响业务量,不会跨AS传递,越小越优先,默认为0.Originator-ID:用于RR,是IBGP路由发起者(有可能是发起者学到的EBGP路由)
- bgp always-compare-med 强制比较ME
- bgp deterministic-med 按AS分组比较MED
- Bgp bestpath med missing-as-worst 正常BGP给无MED设置为0,若配置此命令,则将MED设置为最大值
- Set metirc-type internal:用于Route-map中,用于向邻居更新,MED属性会继承本的IGP的Metirc值。
- Bgp bestpath med confed:只比较带有AS_confed_seq属性的路由条目,用于联邦路由器,同时权重和LP双MED具有更高优先级。
- CLuster_list:用于RR防环
- Weght:越大越优先,只影响本设备。
- 路由从邻居学到,则为默认值0
- 本地Network产生的,为则最大32678
- 本地发布的直连路由,为32678
- 本地汇总,为32678
4. 可选非传递-可不支持,BGP忽略更新,且不传递给邻居
BGP配置
cle ip bgp * 清除BGP邻居
cle ip bgp x.x.x.x soft in 入站软重置,本地发送route-refresh给邻居
cle ip bgp x.x.x.x soft out 出站软重置,重新发送Update给邻居
bgp dmzlink-bw------可通过此命令实现BGP非等价负载均衡,是扩展Community属性,用于EBGP中,需先激活maximum-paths特性,当要向iBGP邻居通告Link Bandwidth特性时,需send-community extended
正则表达式
ORF
可以向BGP邻居推送Prefix List,以达到过滤的目的。
neighbor 10.1.13.1 capability orf prefix-list send
neighbor 10.1.13.1 prefix-list ORF in
AD值及后门
对于一些网络中,有时需要两个设备直接进行路由交换,但由于EBGP的AD大于IGP,因此可以在设备上执行network 1.1.1.0 backdoor来完成
Route-map
- suppress-map : aggregate-address xxxx xxxxx suppress-map xxxx as-set:unsuppress-map:和suppress-map 相反
- 用于宣告聚合及选定的明细路由(抑制特定的明细路由),后面跟上route-map,被匹配的路由将被过滤,其他的放行。--此Route-map仅用于匹配,不能用Set命令。
- attribute-map:更改汇总路由属性,仅对汇总路由生效(如源,Metirc)
- Advertise-map:Inject-map:用于BGP拆分Dengeration.
- 和summary-only合用时,汇总地址下所有明细均被抑制,同时如果map匹配的明细全挂了,则汇总路由也消失,只有有一条明细存在,汇总则存在,仅继承明细路由的BGP属性。
- Exist-map:用于BGP拆分Dengeration.Table-map:用于BGP PA,能够对Peer发来的IP流量进行统计。
- bgp inject-map 明细map exist-map 汇总map copy-attributes-此参数可让注入的明细路由继承汇总路由的路径属性,否则明细将被当成本地生成的路由。
- 可预先瘵包含一组Match的语句的Route-map定义成一个命令列表,这就是Policy-list
- 可以在Route-map中被调用
- 只能包含Match语句,不能有Set语句
- 只支持BGP,IGP不支持
- 大型网络适用,模块化
Policy-list
私有AS号
在出公网时,可执行:neighbor x.x.x.x remove-private-as
DUAL AS
允许在不终断现在BGP连接的情况下,在Primary AS下同时运行一个Secondary AS,从而方便网络迁移。
neighbor 10.1.34.4 local-as 111 no-prepend replace-as dual-as
no-prepend 向主AS的邻居通告时,不加从AS号
replace-as 向从AS的邻居通告时,直接用从AS代替主AS
dual-as EBGP邻居均可使用AS
默认路由
neighbor 10.1.34.4 default-originate 向邻居发送默认路由,路由表中无需存在
default-information originate 向邻居发送默认路由,路由表中必须存在