BGP——路径属性和路由反射器

似梦清欢
• 阅读 96

路径属性

BGP路径属性概念: 1.任何一条BGP路由都存在多个属性。 2.BGP路由在传递时,会携带多个属性。 3.路径属性可以用于选路、防环。

BGP——路径属性和路由反射器

BGP路径属性的类型

  1. 公认必遵:每一个BGP设备都必须识别该属性,且能传递该属性。
  • origin:起源属性,作用:选路。

    分为三类: 
      I:从IGP学到路由。   E:从EGP学到路由。    ?:通过引入学到路由。
      优选:I >  E  > ?

起源属性:

[AR1]route-policy origin permit node 10
[AR1-route-policy]apply origin ?
  egp         Remote EGP
  igp         Local IGP
  incomplete  Unknown heritage   

AR1将200.1.1.1/32通过OSPF通告给AR2,AR2可以使用BGP将该路由通告回AR1: BGP——路径属性和路由反射器 上图红框内的i表示起源属性,即该路由是AR2通过IGP(OSPF)学习来的。 上图黄框内的i表示该路由是通过IBGP对等体收到的。 只有从IBGP学来的才会显示。 修改起源属性:

[AR2]route-policy origin permit node 10
[AR2-route-policy]apply origin egp 200
在BGP中通告200.1.1.1/32的路由时执行origin的策略:
[AR2-bgp]network 200.1.1.1 255.255.255.255 route-policy origin 

查看BGP路由表: BGP——路径属性和路由反射器 ::: tip 起源属性的参数只能通过策略来更改。 传递过程中,除非管理员手工修改,否则不会发生变化。 :::

  • as-path:AS路径属性,作用:选路、防环。
  • 1.防环:如果收到路由携带的AS编号和自身所在的AS相同,则认为环路,丢弃该路由。*
  • 2.选路:当收到多个ASBR传递来相同的路由,可以通过AS编号长度进行比较,优选AS-path短的。*

::: tip as-path就是设备所在AS的编号,ASBR设备在发送BGP路由时,会携带本AS的编号,每经过一个AS,都会由ASBR设备添加上本身的AS编号,AS编号在起源属性前面,从右往左依次添加。

建立EBGP邻居的设备就是ASBR。 ::: AR2引入静态:

[AR2]ip route-static 192.168.1.0 24 NULL 0
[AR2-bgp]import-route static 

BGP——路径属性和路由反射器 做策略修改as-path:

[AR2]route-policy as permit node 10
[AR2-route-policy]apply as-path 300 400 500 ?
  additive               原有AS号的基础上增加AS号
  overwrite              覆盖原有AS号重新添加AS号
[AR2-route-policy]apply as-path 300 400 additive
[AR2-bgp]import-route static route-policy as 

BGP——路径属性和路由反射器

  • next-hop:下一跳属性,作用:保证路由最优。
    下一跳必须是路由可达的,否则BGP路由不会携带 *> 成为最优路由。     
    ::: tip EBGP接收到的路由传递给IBGP的设备,路由下一跳默认不变(都是EBGP对等体的接口)。 需要使用next-hop local命令将下一跳变为更新源地址。
  • IBGP接收到的路由传递给EBGP对等体,路由下一跳都是EBGP对等体的接口。* :::

  1. 公认任意:每一个BGP设备都必须识别该属性,可以不传递该属性。
  • local preference:本地优先级,作用:选路。
      本地优先级是一个本地概念,对ASBR设备有效。
      本地优先级,每条路由都会存在,默认值是100,自身产生的路由不显示(值也是100):
    BGP——路径属性和路由反射器 对等体收到的会显示: BGP——路径属性和路由反射器
  • 选路时优先级值越大越优先。*
  • local preference本质上就是改变自身AS内设备选择AS出口的设备。*
  • Atomic_aggregate:原子聚合,作用表明了该路由为聚合路由。
      原子聚合是聚合后路由的属性,本质上是一种告警信息,和下一面聚合者的属性关联使用。

  1. 可选过渡:每一个BGP设备都可以识别或不识别该属性,但能传递该属性。
  • aggregate:聚合者,作用:表明了做聚合路由的设备位置和设备。

           分为聚合者(执行汇总的AS)和聚合者ID(AS内的哪台设备做了汇总)。
  • community:团体属性,作用:打标记。

           要求每一条路由携带团体属性(需要手工配置)。
           团体属性传递时,需要每一个传递属性的邻居之间都要存在对应的能力(手工指定)。

    ::: warning community和route tag的区别:1个路由只能匹配一个route tag,1个路由可以匹配多个团体属性值。 即假设3条路由1.0、2.0、3.0,

1.0的路由使用route tag值100匹配,使用community时可以用1:1、1:2、1:3匹配1.0。 2.0的路由使用route tag值200匹配,使用community时可以用1:2、1:3匹配2.0。 3.0的路由使用route tag值300匹配,使用community时可以用1:3匹配3.0。 如上,可以使用团体属性值1.3一次匹配三条路由。 :::

团体属性分类:
1.公认团体属性:
  internet:默认团体属性,可以传递给所有对等体(IBGP或EBGP)。      
  no-advertise:不传递给任何BGP对等体。
  no-export:只传递给IBGP对等体,不传递给EBGP对等体。
  no-export-subconfed :只传递给联盟内IBGP对等体,不会传递给联盟AS外。
2.自定义团体属性:
  ip community-filter:通过自定义团体属性做路由过滤。

实验验证公认团体属性: AR2原BGP路由表: BGP——路径属性和路由反射器

[AR1]route-policy community permit node 10
[AR1-route-policy]apply community no-advertise    不通告给任何人
[AR1-bgp]network 200.1.1.1 32 route-policy community 

BGP——路径属性和路由反射器 如上,配置团体属性为no-advertise后,AR2不再可以接收到AR1通告的200.1.1.1路由。

如果配置的团体属性是no-export,应该只能传递给IBGP,不能传到EBGP,但实际上EBGP邻居可以收到,原因是团体属性传递时,需要手工指定每一个传递属性的对等体之间存在的对应能力:

[AR1-bgp]peer 200.1.1.1 advertise-community     向指定对等体通告团体属性

::: warning BGP传递路由时,如果携带了团体属性,每一段都要指定团体属性的通告。 ::: 还可以在发送或接收时对团体属性做修改: BGP——路径属性和路由反射器

[AR2]route-policy community permit node 10
[AR2-route-policy]apply community 100:100    团体属性改为100:100
[AR2-bgp]peer 1.1.1.1 route-policy community import 
针对对等体1.1.1.1发来的路由做route-policy对团体属性做更改   

BGP——路径属性和路由反射器 AR2后面的设备再接收该路由时,如果需要保留更改过的团体属性,需要在出方向做配置:

[AR2-bgp]peer 10.1.23.3 route-policy community export
[AR2-bgp]peer 10.1.23.3 advertise-community

实验验证自定义团体属性: BGP——路径属性和路由反射器 上述拓扑做配置后AR2可以收到两条BGP路由: BGP——路径属性和路由反射器 要使得AR4只接收200.1.1.1的路由,需要把100.3.3.3的路由过滤掉。 需要使用团体属性过滤匹配对应路由:

[AR2]ip community-filter 100 permit 1:1   设置高级过滤允许携带1:1的团体属性的路由通过
[AR2]ip community-filter 101 deny 3:3     设置高级过滤拒绝携带3:3的团体属性的路由通过

[AR2-route-policy]if-match community-filter 100 101
[AR2-route-policy]apply origin incomplete    将AR4中BGP路由表显示的起源属性由i改为?

[AR2-bgp]peer 10.1.24.4 route-policy community export   AR2向AR4通告发出时执行策略

如上操作是使用团体属性匹配了两条路由,匹配上的话将起源属性修改为?: BGP——路径属性和路由反射器 团体属性过滤和ACL过滤等本质相同,只是匹配的内容不同。 ::: tip 当有大量路由从AR1和AR3传来时,可以在AR1和AR3上做团体属性,在AR2上做策略匹配特定放行的路由,匹配特定过滤的路由。 :::


  1. 可选非过渡:每一个BGP设备都可以识别或不识别该属性,可以不传递该属性。
  • MED:多出口鉴别器,作用:BGP路由的开销,选路。

    1.BGP路由开销默认为0(自身引入或产生的路由),如果是引入IGP的路由,则会将IGP路由的开销当作MED。
    2.管理员可以手工给路由配置MED。
    3.MED值只能在两个AS之间传递,不能传递给第三个AS(不确定的属性)。

::: tip 选路主要针对于对端AS内的设备,访问本端AS的出口。 可以通过修改本地的MED值影响对端AS选路。 MED值越小越优先。 ::: ::: warning 本地优先级LocPrf是本端AS选路去对端AS。 MED值控制对端AS选路来本端AS。 :::

实验: BGP——路径属性和路由反射器 BGP默认开销为0: BGP——路径属性和路由反射器

BGP——路径属性和路由反射器

[AR1]route-policy MED permit node 10
[AR1-route-policy]apply cost 100
[AR1-bgp]peer 2.2.2.2 route-policy MED export 

BGP——路径属性和路由反射器

BGP——路径属性和路由反射器 由于在AR2做了community的策略,如果不携带MED值,相当于将MED值删除出通告,即AR4收到的不携带MED,即默认为0。 AR2的G0/0/0抓包: BGP——路径属性和路由反射器 AR2的G0/0/2抓包: BGP——路径属性和路由反射器 ::: tip 上述原因是AR2在community策略中只写了起源属性的更改,如果需要将MED值等也进行传递,需要在community策略中添加cost值等。(即对等体需要什么样的属性,就要在策略中指定传递) ::: 将AR2的MED属性传递给AR4后,在AR5上没有看到MED值: BGP——路径属性和路由反射器 即MED值只能在两个AS之间传递,传入其他AS时MED值恢复默认值,不会影响路由。


  • originid:起源者ID,即设备的RID,存在于路由反射器中。
  • 簇列表:

路由反射器

在AS内存在大量的设备,如果使用BGP传递路由,由于IBGP水平分割,则需要建立全互联的BGP对等体关系(需要TCP的连接),会导致设备建立的连接数量过多,影响设备转发性能,且BGP网络的可扩展性较差。 引入路由反射器后,可以将路由通过路由反射器反射给没有建立BGP对等体关系的设备,打破了IBGP水平分割规则。

BGP——路径属性和路由反射器 拓扑中AR1通告100.1.1.1/32,AR5可以学到,AR4由于IBGP水平分割无法学到。

[AR5-bgp]peer 1.1.1.1 reflect-client 
[AR5-bgp]peer 4.4.4.4 reflect-client 

AR5上执行路由反射器配置后,AR4可以学习到AR1通告的路由: BGP——路径属性和路由反射器 上图中,下一跳保持原有(AR5)的下一跳不变。

反射器场景:

反射器主要针对IBGP对等体。EBGP中不生效。 设备类型:

  • 反射器:指定反射客户端的设备,成为反射器。如上图的AR5。
  • 客户端:被反射器指定的设备,成为客户端(客户端无感知)。如上图的AR1、AR4。
  • 非客户端:既不是反射器也不是客户端,无变化。

路由传递规则:

客户端学到的路由可以反射给非客户端;非客户端学到的路由可以反射给客户端。 非客户端和非客户端之间的路由不能经过反射器反射(普通IBGP对等体关系,水平分割)。


防环

反射器RR可以将IBGP邻居学到的路由传递给IBGP邻居,打破了AS内水平分割的防环机制,就需要存在新的防环规则来实现AS内的防环。 BGP——路径属性和路由反射器 上述拓扑如果AR1和AR4建立了对等体关系,就可能出现环路。

查询向指定BGP设备通告的路由信息:
<AR1>dis bgp rou peer 5.5.5.5 advertised-routes 

反射器自带的防环规则:

  1. 反射簇内防环:

通过反射器设置起源者ID属性,指明路由归属的设备。 起源者ID属性由第一台反射器设置,后续反射器不会设置。 每台设备在接收路由时都需要查看起源者ID字段,如果字段值和自身的RID相同,则认为发生环路,不接受该路由。 查看AR5向AR4反射路由时的起源者ID: BGP——路径属性和路由反射器 查看AR4从AR5学习到的路由的起源者ID: BGP——路径属性和路由反射器

  1. 反射簇间防环: BGP——路径属性和路由反射器 上述拓扑中,环路可能出现在AR3、AR4、AR5之间,检查起源者ID就无法判断环路。为保证观测到的路径是AR5-AR4-AR3-AR5,需要在AR5上做策略拒绝向AR3发送路由,然后在AR4、AR3上做反射器向对方传递路由。

反射簇间防环是为了避免反射器之间传递路由引发的环路。 通过反射器设置簇列表属性,指明反射路由的设备。 每一台反射器在反射路由时,都需要在簇列表中添加自身的簇ID(RID)。 每一台反射器在接收路由时,都需要查看簇列表字段。如果簇列表字段中存在和自身RID相同的簇ID,则认为发生环路,不接收该路由。 BGP——路径属性和路由反射器

::: warning 起源者属性和自身簇ID都是在发出时加上。 :::


反射器的使用场景:

  • 直连场景:RR设备部署在数据转发的链路上,适用于中小型网络部署。

  • 旁挂场景:RR设备部署在非数据转发的链路,适用于中大型网络部署。 上述拓扑中,AR1发送数据到AR3、AR4,走实际链路不经过AR5,AR5是旁挂式的反射器,只传递路由。

  • 分级RR:每一台RR都是上级RR的客户端,又是下级RR的反射器。主要用于具有路由规划的中大型网络,如层级组网。

  • 同级RR:每一台RR负责连接一段区域设备,RR间部署全互联。主要用于具有路由规划的中大型网络,如广域互联。

RR的备份: 为了增加网络的可靠性,防止单点故障,需要配置两台相同的反射器,要求两台反射器的RID都相等。

点赞
收藏
评论区
推荐文章

暂无数据

似梦清欢
似梦清欢
Lv1
学海无涯
文章
17
粉丝
17
获赞
1