IPRAN中BGP的概念与原理(中)

  1. IPRAN中BGP的概念与原理(中)
    1. 一、BGP属性
    2. 二、BGP路由选择策略
    3. 三、BGP路由发布策略

IPRAN中BGP的概念与原理(中)

一、BGP属性

BGP路由属性是一系列参数,它对特定的路由进一步的描述,使得BGP能够对路由进行过滤和选择。BGP路由属性可以分为以下4类:公认必遵(Well-known mandatory)、公认任意(Well-known discretionary)、可选过渡(Optional transitive)和可选非过渡(Optional non-transitive)。其中Origin属性、AS_Path属性、Next_Hop属性、MED属性和Local_Pref属性是最为常用的。

BGP路由属性是一系列参数,它对特定的路由进一步的描述,使得BGP能够对路由进行过滤和选择。事实上,所有的BGP路由属性都可以分为以下4类:

  • 公认必遵(Well-known mandatory):所有BGP路由器都可以识别,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。公认必遵属性是所有BGP路由一定要携带的属性,一共有3种:Origin、AS_Path和Next_Hop。
  • 公认任意(Well-known discretionary):所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来选择。比如常见的Local_Pref属性。
  • 可选过渡(Optional transitive):在AS之间具有可传递性的属性。BGP路由器可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体。
  • 可选非过渡(Optional non-transitive):如果BGP路由器不支持此属性,则相应的这类属性会被忽略,且不会传递给其他对等体。比如常用的MED属性。

下面进一步介绍几种常用的BGP路由属性:

  • Origin属性

    Origin属性用来定义路径信息的来源,标记一条路由是怎么成为BGP路由的。Origin属性有以下3种类型:

    • IGP:具有最高的优先级。通过路由始发AS的IGP得到的路由信息,比如通过network命令注入到BGP路由表的路由,其Origin属性为IGP。
    • EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。
    • Incomplete:优先级最低。通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由,其Origin属性为Incomplete。

    在其他因素相同的情况下,BGP一般按照IGP>EGP>Incomplete的顺序选择路由。

  • AS_Path属性

    AS_Path属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号。

    当BGP Speaker本地通告一条路由时:

    • 当BGP Speaker将这条路由通告到其他AS时,便会将本地AS号添加在AS_Path列表中,并通过Update消息通告给邻居路由器。
    • 当BGP Speaker将这条路由通告到本地AS时,便会在Update消息中创建一个空的AS_Path列表。

    当BGP Speaker传播从其他BGP Speaker的Update消息中学习到的路由时:

    • 当BGP Speaker将这条路由通告到其他AS时,便会把本地AS编号添加在AS_Path列表的最前面(最左面)。收到此路由的BGP路由器根据AS_Path属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。
    • 当BGP Speaker将这条路由通告到本地AS时,不会改变这条路由相关的AS_Path属性。
  • Next_Hop属性

    BGP的下一跳属性和IGP的有所不同,不一定就是邻居路由器的IP地址。通常情况下,Next_Hop属性遵循下面的规则:

    • BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
    • BGP Speaker将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
    • BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。
  • MED属性

    MED(Multi-Exit-Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS。

    MED属性相当于IGP使用的度量值(Metrics),它用于判断流量进入AS时的最佳路由。当一个运行BGP的路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其他条件相同的情况下,将优先选择MED值较小者作为最佳路由。

  • Local_Pref属性

    Local_Pref属性仅在IBGP对等体之间有效,不通告给其他AS。它表明路由器的BGP优先级。

    Local_Pref属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由。

二、BGP路由选择策略

当到达同一目的地存在多条路由时,BGP采取一定的策略进行路由选择。

BGP协议自身不能发现路由,所以需要引入其他协议的路由(如IGP或者静态路由等)注入到BGP路由表中,从而将这些路由在AS之内和AS之间传播。

BGP引入路由时支持Import和Network两种方式:

  • Import方式是按协议类型,将RIP路由、OSPF路由、ISIS路由、静态路由和直连路由等某一协议的路由注入到BGP路由表中。
  • Network方式比Import方式更精确,将指定前缀和掩码的一条路由注入到BGP路由表中。

如上图,当到达同一目的地存在多条路由时,BGP采取如下策略进行路由选择:

(1)优选协议首选值(PrefVal)最高的路由。协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。

(2)优选本地优先级(Local_Pref)最高的路由。如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理。通过执行default local-preference命令可以修改BGP路由的缺省本地优先级。

(3)优选本地生成的路由(本地生成的路由优先级高于从邻居学来的路由)。本地生成的路由包括通过network命令或import-route命令引入的路由、手动聚合路由和自动聚合路由。

  • 优选聚合路由(聚合路由优先级高于非聚合路由)。
  • 通过aggregate命令生成的手动聚合路由的优先级高于通过summary automatic命令生成的自动聚合路由
  • 通过network命令引入的路由的优先级高于通过import-route命令引入的路由。

(4)优选AIGP数值小者。有AIGP的路由优于没有AIGP的路由。

(5)优选AS路径(AS_Path)最短的路由。

  • AS_Path的长度不包括AS_CONFED_SEQUENCE和AS_CONFED_SET。
  • AS_SET的长度为1,无论AS_SET中包括多少AS号。
  • 执行bestroute as-path-ignore命令后,BGP选路时,忽略AS_Path的比较。

(6)比较Origin属性,依次优选Origin类型为IGP、EGP、Incomplete的路由。

(7)优选MED(Multi Exit Discriminator)值最低的路由。

  • BGP只比较来自同一个AS(不包括联盟的子AS)的路由的MED值。即,只有两条路由的AS_SEQUENCE(不包括AS_CONFED_SEQUENCE)属性的第一个AS号相同时,BGP才会比较二者的MED值。
  • 如果路由没有MED属性,BGP选路时将该路由的MED值按缺省值0来处理;执行bestroute med-none-as-maximum命令后,BGP选路时将该路由的MED值按最大值4294967295来处理。
  • 执行compare-different-as-med命令后,BGP将强制比较来自不同自治系统中的邻居的路由的MED值。除非能够确认不同的自治系统采用了同样的IGP和路由选择方式,否则不要使用compare-different-as-med命令(可能产生环路)。
  • 执行bestroute med-confederation命令后,只有当AS_Path中不包含外部AS号(不属于联盟的子AS),且AS_CONFED_SEQUENCE的第一个AS号相同时,才能比较MED值的大小。
  • 执行deterministic-med命令后,将消除路由接收顺序对选路结果的影响。

(8)优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)。依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。PE上某个VPN实例的VPNv4路由的ERT匹配其他VPN实例的IRT后复制到该VPN实例,称为LocalCross;从远端PE学习到的VPNv4路由的ERT匹配某个VPN实例的IRT后复制到该VPN实例,称为RemoteCross。

(9)优选到BGP下一跳IGP Metric较小的路由。

说明:如果配置了负载分担,当上述所有规则相同,且存在多条As_Path完全相同的外部路由,则根据配置的路由条数选择多条路由进行负载分担。

(10)优选Cluster_List最短的路由。

(11)优选Router ID最小的交换机发布的路由。

说明:如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由。

(12)比较对等体的IP Address,优选从具有较小IP Address的对等体学来的路由。

三、BGP路由发布策略

BGP发布路由时采用如下策略:

  • 存在多条有效路由时,BGP Speaker只将最优路由发布给对等体。
  • BGP Speaker从EBGP获得的路由会向它所有BGP对等体发布(包括EBGP对等体和IBGP对等体)。
  • BGP Speaker从IBGP获得的路由不向它的IBGP对等体发布,避免成环。
  • BGP Speaker从IBGP获得的路由发布给它的EBGP对等体。
  • 连接一旦建立,BGP Speaker将把自己所有BGP路由发布给新对等体。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xumeng32@126.com

文章标题:IPRAN中BGP的概念与原理(中)

文章字数:2.5k

本文作者:F_numen

发布时间:2020-03-21, 14:40:19

最后更新:2020-03-21, 15:45:08

原始链接:https://netheroone.cn/archives/718323db.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
/*baidu统计*/