首页 > 代码库 > BGP学习

BGP学习

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路由协议

静态路由 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:1RD号)

 

 

高级VRF

选择性import: import map 名称---路由导入VRF前先过滤一次,过滤学到的路由

选择性export: export map 名称---路由导出前加上RT的Tag,不过滤路由,只能设定RT,不使用additvie则为覆盖(一般需要加上,在尾部加上添加的RT)

VRF route limit

 

 

BGP

BGP的选路策略

  1. 权重 越大越优先
  2. 本地优先级 越大越优先
  3. 起源本地的路由
  4. AS-Path越短越优先
  5. Origin: IGP>EGP>Incomplete
  6. MED 越小越优先
  7. EBGP优先IBGP,联邦EBGP优先IBGP
  8. 优先 BGP Next-HOP路由
  9. 多条相同AS的路径可一起用
  10. 路由来自多个EBGP,优先最老的路由
  11. BGP ID越小越优先
  12. BGP ID相同,优先CLuster-List最短
  13. 优先邻居ID最小的路由

 

 

同一AS内学到两个相同路由,比较RID,小的优先

同一AS由于水平分割问题,导致第三PE无法学习到第一PE的路由,可通过路由反射或一三直接建IBGP邻居方式

AS-PAth来增加路由的AS时,必须是两个不同AS边界发送,同一AS内无效(仅当Update消息被发送给其他AS时,BGP才会将AS号追加到AS-PATH中)-AS-Path仅当离开AS时才会被更改

通过BGP手工Network发布的路由为I,早期EGP发布的路由为E,通过重分布学到的路由为?,I>E>?

Cisco默认MED为0.可选非传递。 默认情况下,只比较来自同一邻居AS的BGP路由的MED,就是说如果同一个目的地两条路由来自不同的AS,刚不进行MED比较。MED只在直接相连的自治系统间影响业务量,不会跨AS传递,越小越优先。若强制比较,则需: bgp always-compare-med   强制比较ME 

     bgp deterministic-med    按AS分组比较MED

优先BGP Next-hop路由,就是更改IGP的值,如更改OSPF Cost。

IBGP不会将从IBGP学到的路由通告给另一个邻居,这就是水平分割原则

BGP不会将学到的路由放到路由表中,除非它从IGP学到了相同的路由,这里就会有一个同步的问题。解决方法可以用路由重分发方式或IBGP全互联,但这对设备负载是个问题。  一般我们用路由反射或联邦来解决这个问题。

自动汇总:开启时,自动汇总重分布路由和network宣告的有类路由,network宣告的无类路由不汇总。默认关闭。

手工汇总:aggregate-address 不加参数,则汇总及明细均会被传递

  • Summary-only: 只传递汇总路由,丢失路由的AS-PATH属性,可能会导致环路
  • summary-only as-set:可继承原路由的一些属性:as-path / origin / community
  • 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-此参数可让注入的明细路由继承汇总路由的路径属性,否则明细将被当成本地生成的路由。

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

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值及后门

对于一些网络中,有时需要两个设备直接进行路由交换,但由于EBGPAD大于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   向邻居发送默认路由,路由表中必须存在

 

BGP学习