BGP属性即选路规则

BGP属性即选路规则

文章目录

  • BGP属性即选路规则
  • BGP属性
    • 1.Origin(起源属性)
    • 2.AS-Path属性
    • 3.next-hop(下一跳属性)
    • 4.local-preference(本地优先级属性)
    • 5.MED(Muti-Exit-Discriminator)
    • 6.community(团体属性)
    • 7.汇总属性 atomic-aggregate、aggregater
    • 8.Preferred-Value
    • 9、Originator_ID属性、(用于路由反射器的防环)
    • 10.Cluster_List属性(用于路由反射器的防环)
  • BGP路由优选原则
    • 聚合方式对选路的影响
    • AS内部IGP Metric对BGP选路的影响
    • Router-ID与IP地址对BGP选路的影响
  • BGP路由聚合
    • BGP路由聚合存在必要性
    • BGP路由聚合方法
      • 1.静态
      • 2.自动聚合
      • 3.手动聚合
    • BGP路由聚合带来的问题
      • 潜在环路
      • 解决

BGP属性

BGP属性即选路规则_第1张图片

公认属性:所有BGP路由器都必须识别并支持的属性。

  • 公认必遵:BGP的Updata消息中必须包含的属性。
  • 公认任意:不必存在与BGP的Updata消息中,可以根据需求自由选择的属性。

可选属性:不要求所有的BGP路由器都能够识别的属性。

  • 可选过渡:BGP不能识别该属性,但可以接收并将其发布给它的邻居。
  • 可选非过渡:BGP可以忽略包含该属性的消息并且不向他2的邻居发布。

1.Origin(起源属性)

起源属性:表示BGP路由的来源,也用来防止BGP重发布成环。

Origin的3种属性:

  • i:表明BGP路由通过network命令注入;
  • e:表明BGP路由是从EGP学来的, EGP协议在现网中很难见到,但可以通过路由策略将路由的Origin属性修改为e ;
  • ?:即Incomplete表明BGP路由通过其它方式学到路由信息,如使用import命令引入的路由。

3种Origin属性的优先级为: i>e>Incomplete ( ?
)。

BGP属性即选路规则_第2张图片

2.AS-Path属性

用途:

1.查看路由经过的AS路径的顺序(左边是最近经过的AS号)

2.防环,bgp不接收携带有自己AS号的路由用来防止AS之间路由环路

3.选路,bgp会选择AS-path短的路由为最优路由

as-override命令可以把路由中对方邻居的AS号改为自己的AS号,从而让对方接受含有对方AS号
的路由

allowas-in命令可以把对方路由中含有自己AS号的路由过滤掉,从而接受对方含有自己AS号的
路由

fake-as命令可以修改自己通告出去的AS号

3.next-hop(下一跳属性)

netx-hop:该属性表示路由的下一跳

  • ebgp邻居在传递路由时会修改该属性为自己的更新源地址
  • ibgp邻居在传递路由时不会修改该属性,但是可以使用next-hop-local来修改该属性为自 己的
    更新源地址
  • 本地路由下一跳是127.0.0.1

4.local-preference(本地优先级属性)

local-preference:该属性用于选路,优选本地优先级大的路由。

**Local_ Pref属性仅在IBGP邻居之间有效,不通告给其他AS。**它表明路由器的BGP优先级,值越大越优。

Local_ Pref属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP邻居获得目的地址相同但下一-跳不同的多条路由时,将优先择L ocal Pref属性值较高的路由,其默认值为100。

案例1:

BGP属性即选路规则_第3张图片

AS100去往AS200选择RTC,做法:调整RTC的默认本地优先级为100 (默认值)以上,那么从RTC通告出去给本地AS的路由优先级都会设置为100以上这个值。

[RTC-bgp]defau1t local-preference 200

BGP属性即选路规则_第4张图片

在RTC上设置ip-prefix匹配200.0.0.0/24的路由,使用route- policy调用该ip- prefix ,并设置Local- Preference为200 ,将策略应用在对RTA发布路由的export方向。

使用前置列表抓取路由
ip ip-prefix loc index 10 permit 200.0.0.0 24

#
使用route-policy设置本地优先级属性
route-policy local permit node 10 
 if-match ip-prefix loc 
 apply local-preference 200 
#
route-policy local permit node 20 
#
将策略运用
  peer 10.1.13.1 route-policy local export
#

BGP属性即选路规则_第5张图片

BGP属性即选路规则_第6张图片

5.MED(Muti-Exit-Discriminator)

MED ( Multi-Exit-Discriminator )属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三三方AS ,用于判断流量进入AS时的最佳路由。

该属性适合对EBGP邻居施加选路影响

注:该属性默认只能用于两个AS之间的选路

BGP属性即选路规则_第7张图片

在R2上设置ip-prefix匹配200.0.0.0/24的路由,再设置route-policy调用该ip-prefix ,并设置MED为100 ,将策略应用在对RTC发布路由的export方向。

  peer 10.1.24.2 route-policy med export
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 10.1.12.0 0.0.0.255 
#
route-policy med permit node 10 
 if-match ip-prefix MED 
 apply cost 100 
#
route-policy med permit node 20 
#
ip ip-prefix MED index 10 permit 1.1.1.0 24
#

BGP属性即选路规则_第8张图片
BGP属性即选路规则_第9张图片

注:该属性默认只能用于两个AS之间的选路。不能传给第三个AS。

BGP属性即选路规则_第10张图片

如果要让上述MED生效需要如下命令:

[R4-bgp ] compare-di fferent-as -med

如果不敲以上命令就使用AS-PATH属性
BGP属性即选路规则_第11张图片

6.community(团体属性)

community:是一个给路由做标记的属性类似igp中tag, 只不过概述比igp的tag更加高级,该属性的传递需要开启一个命令advertise-community

作用

  • 限定路由的传播范围。
  • 打标记,便于对符合相同条件的路由进行统-处理。

公认社团属性

  • Internet :缺省属性,所有路由都属于Internet ,此属性的路由可以通告给所有BGP邻居;
  • No_ Export :收到此属性的路由后,不将该路由发布到其他AS。
  • No_ Advertise :收到此属性的路由后,不将该路由通告给任何其他的BGP邻居。
  • 4.no_ export_ subconfed不向任何EBGP邻居发送包括联盟的EBGP邻居

扩展的团体属性用一组4字节为单位的列表来表示,路由器中扩展的团体属性格式为aa:nn或团体号;

aa∶nn中,a通常为AS编号,nn是管理员定义的团体属性标识;

团体号范围为0-4294967295,在RFC1997中,0-65535与4294901760-4294967295为
预留值,
BGP属性即选路规则_第12张图片
BGP属性即选路规则_第13张图片

R1
#
bgp 10
 peer 10.1.13.2 as-number 12 
 #
  network 10.1.10.0 255.255.255.0 
  peer 10.1.13.2 enable
  peer 10.1.13.2 route-policy com export
  peer 10.1.13.2 advertise-community
#
route-policy com permit node 10 
 if-match ip-prefix 10 
 apply community 10:12 
#
route-policy com permit node 20 
#
ip ip-prefix 10 index 10 permit 10.1.10.0 24
#

R2
#
bgp 11
 peer 10.1.23.2 as-number 12 
 #
  network 10.1.11.0 255.255.255.0 
  peer 10.1.23.2 enable
  peer 10.1.23.2 route-policy com export
  peer 10.1.23.2 advertise-community
#
route-policy com permit node 10 
 if-match ip-prefix com 
 apply community 11:12 additive 
#
route-policy com permit node 20 
#
ip ip-prefix com index 10 permit 10.1.11.0 24
#

R3
#
bgp 12
 peer 10.1.13.1 as-number 10 
 peer 10.1.23.1 as-number 11 
 peer 10.1.34.2 as-number 13 
 #
  aggregate 10.1.0.0 255.255.0.0 detail-suppressed attribute-policy com 
  peer 10.1.13.1 enable
  peer 10.1.13.1 advertise-community
  peer 10.1.23.1 enable
  peer 10.1.23.1 advertise-community
  peer 10.1.34.2 enable
  peer 10.1.34.2 route-policy noex export
  peer 10.1.34.2 advertise-community
#
route-policy noex permit node 10 
 if-match community-filter 100 
 apply community no-export 
#
route-policy noex permit node 20 
#
route-policy com permit node 10 
 apply community 10:12 11:12 
#
route-policy com permit node 20 
#
ip community-filter 100 permit 1.:12
#

BGP属性即选路规则_第14张图片
BGP属性即选路规则_第15张图片

7.汇总属性 atomic-aggregate、aggregater

IGP的汇总可分为三部:

  • 1.用汇总路由匹配明细路由
  • 2.生成汇总路由、并指向空接口(动态路由协议一般的操作,为了防止环路)
  • 3.干掉匹配到的明细路由

BGP默认不会执行上述3操作,主要是因为bgp的汇总默认不会继承明细的属性,而属性是bgp路由防环的依据,丢失as-path和orgin属性都可能导致出环。
如何避免环路

  1. 通过atomic-aggregate属性警告下游路由器表示该路由是汇总路由有成环风险
  2. aggregater属性用于告知汇总路由器的router-id。
  3. 通过命令as-set继承明细的as-path(as-set)属性,attribute-policy该命令可以用route-policy设置汇总路由的属性,包括orgin,当然也能设置其他属性。
  4. origin-policy用于设置汇总明细的范围,匹配的路由才能被汇总
  5. suppress-policy用于设置汇总那么明细被抑制,detail-suppressed该命令 是所有明细都会被抑制

BGP属性即选路规则_第16张图片

8.Preferred-Value

Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。

Preference_Value值越大,越优先。

  1. peer 1.1.1.1 preferred-value 100 //让该邻居进来的所有路由优先级设置为100,默认是0,
    如果其他邻居不做配置那么该路由器就会选择1.1.1.1出去
  2. route-policy value permit note 10
    if-match ip-prefix p
    apply preferred-value 100
    把匹配的路由优先级修改为100
    bgp 1
    peer 1.1.1.1 route-policy value import /注意只能调用的在import方向。

9、Originator_ID属性、(用于路由反射器的防环)

Originator_ID属性

  • 该属性为可选非过渡;·
  • 用于集群内的防环;
  • 由路由反射器(RR)产生,携带了本地AS内该路由发送者的RouterID。

Originator ID由RR产生,使用的Router ID的值标识路由的发送者,用于防止集群内产生路由环路。

  • 当一条路由第一次被RR反射的时候,RR将Originator ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。
  • 当设备接收到这条路由的时候,将比较收到的Originator ID和本地的RouterID,如果两个 ID相同 ,则不接收此路由。

10.Cluster_List属性(用于路由反射器的防环)

Cluster_List属性

  • 该属性为可选非过渡;
  • 用于集群间的防环;
  • 由每个路由反射器(RR)产生,记录反射路由经过的集群。

路由反射器和它的客户机组成一个集群(Cluster)。在一个AS内,每个路由反射器使用唯一的 Cluster ID作为集群标识。

  • 为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集 群的Cluster ID。
  • 当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地ClusterID添加到Cluster_List的前面。如果Cluster_List为空,RR就创建一个。
  • 当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入ClusterList,然后反射该更新路由

BGP路由优选原则

BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:

  • 该路由是到达目的地的唯一路由。直接优选。
  • 对到达同一目的地的多条路由,优选优先级最高的。
  • 对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。

BGP计算路由优先级的规则如下:

  • 丢弃下一跳不可达的路由。
  • 优选Preference_Value值最高的路由(私有属性,仅本地有效).
  • 优选本地优先级( Local_Preference )最高的路由.
  • 优选手动聚合>自动聚合> network> import>从对等体学到的。
  • 优选AS_ Path短的路由。
  • 起源类型IGP> EGP> Incomplete.
  • 对于来自同一AS的路由,优选MED值小的。
  • 优选从EBGP学来的路由( EBGP>IBGP ).
  • 优选AS内部IGP的Metric最小的路由。
  • 优选Cluster_List最短的路由。
  • 优选Orginator_ID最小的路由。
  • 优选Router ID最小的路由器发布的路由。
  • 优选具有较小IP地址的邻居学来的路由。

聚合方式对选路的影响

BGP属性即选路规则_第17张图片

在使用路由聚合时需要注意,自动聚合只能对引入的BGP路由进行聚合,手动聚合可以对存在于BGP路由表中的路由进行聚合,后续在BGP路由聚合中详细介绍。上述场景中 ,因为需要聚合的路由都是引入的路由,所以使用自动聚合与手动聚合都可以实现聚合的目的。如果BGP路由表中既有引入的路由又有network宣告的路由时,只能采用手动聚合实现。

AS内部IGP Metric对BGP选路的影响

BGP属性即选路规则_第18张图片

Router-ID与IP地址对BGP选路的影响

BGP属性即选路规则_第19张图片

BGP路由聚合

BGP路由聚合存在必要性

BGP属性即选路规则_第20张图片

解决方案:

在RTC.上将AS 100和AS 200内的明细路由聚合成10.1.8.0/21的一条路由,并将此聚合路由发布给Client AS.
现在Internet_上的路由条目数量众多,处理这些路由时存在以下问题:

  • 存储路由条目的路由表将占用大量的内存资源,传输路由信息需要占用大量的带宽资
    源;
  • 明细路由频繁震荡造成网络不稳定。

因此,通过路由聚合来节省内存和带宽资源,减少路由震荡带来的影响成为必然。

BGP路由聚合方法

1.静态

BGP属性即选路规则_第21张图片

  • 使用静态路由将明细路由聚合成10.1.8.0/22,下一跳指向NULL 0 ,因为聚合路由并不是具体的地址,发送给AS 200时只是明细路由的替代,为了防止路由环路,所以将下一跳指向Null 0 ;
  • 由于使用静态路由,路由表中产生了一条10.1.8.0/22的路由 ,下- -跳为Null0。使用network命令将IP路由表中的10.1.8.0/22路由变为BGP路由,并通告给对端BGP邻居,达到聚合的目的。

2.自动聚合

BGP属性即选路规则_第22张图片

自动聚合只对引入BGP的路由进行聚合,聚合到自然网段后发送给邻居。

3.手动聚合

BGP属性即选路规则_第23张图片

手动聚合对BGP本地路由表里存在的路由进行聚合,并且能指定聚合路由的掩码。

BGP路由聚合带来的问题

潜在环路

BGP属性即选路规则_第24张图片

解决

BGP属性即选路规则_第25张图片

为了解决BGP路由聚合带来的问题,设置了两个AS_Path属性∶

  • Atomic-Aggregate∶公认任意属性,用于警告下游路由器出现了信息丢失,如图所 示,AS 200内设置了路由聚合的路由器在聚合后发生了路径丢失的现象,此时该路由器通过Update报文携带该属性通知自己的邻居发生了路径丢失。
  • Aggregator∶可选过度属性,该属性包含发起聚合的路由器的AS号和Router-ID,表明发生聚合的位置。

AS_Path属性有两种类型∶

  • AS_Sequence∶ 表示AS_Path内的AS号是一个有序的列表。
  • AS_Set ∶表示AS_Path内的AS号是一个无序的列表。

AS_Path本身是一个有序的列表,因为AS_Path每经过一个AS都会将AS号添加到AS_Path中,并且按经过的顺序从左到右排列。

  • 如图所示,AS 400向AS 300通告聚合路由时,AS_Path属性(大括号的除外)表示 该聚合路由依次经过了AS 200和AS 400。

当发生聚合后,如果需要聚合路由携带所有明细路由经过的AS号来防止环路,则在配置聚合的命令后添加as-set参数。

  • 如图所示,AS 200内发生了聚合并配置了as-set参数,则聚合路由会将明细路由的
    AS_Path信息用一个AS-Set集表示(放在中括号里的AS号信息,该集合的AS号没有先后顺序),携带在聚合路由后用以防止环路。

路由聚合解决了两类问题,一是减轻了设备传输和计算路由所需资源的负担,二是隐藏了具体的路由信息,减少了路由震荡的影响。但是路由聚合后,AS_Path属性丢失,存在产生环路的风险。

如果路由聚合后携带所有明细路由经过的AS信息,当明细路由发生频繁震荡时,聚合路由也可能受其影响频繁刷新。

因此,聚合路由是否携带丢失的AS_Path信息,需要设计者综合考虑网络环境。

你可能感兴趣的:(网络)