• BGP属性nexthop+origin 详解


    BGP属性的作用:

    BGP路由表中,到达同一目的地可能存在多条路由。此时BGP会选择其中一条路由作为最佳路由,并只把此路由发送给其对等体。BGP为了选出最佳路由,会根据BGP的路由优选规则依次比较这些路由的BGP属性。

    BGP属性分类:

    路由属性是对路由的特定描述,所有的BGP路由属性都可以分为以下4类,常见BGP属性类型如表1所示:

    • 公认必须遵循(Well-known mandatory):所有BGP设备都可以识别此类属性,且必须存在于Update报文中。如果缺少这类属性,路由信息就会出错。

    • 公认任意(Well-known discretionary):所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中,即就算缺少这类属性,路由信息也不会出错。

    • 可选过渡(Optional transitive):BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,但它仍然会接收这类属性,并通告给其他对等体。

    • 可选非过渡(Optional non-transitive):BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体

    Next_Hop属性

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

    • BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。

    • BGP Speaker将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。

    • BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。

    Next-hop属性:
    特点:1、公认必遵属性。

    @BGP本身不计算路由,只是路由的搬运工,所以BGP在传递路由的时候,需要携带下一跳属性。
    @从EBGP邻居收到的路由传递给IBGP邻居的时候下一跳不变。
    @从EBGP邻居收到的路由传递给EBGP邻居的时候下自动改变。
    @从IBGP邻居收到的路由传递给EBGP邻居的时候下自动改变。
    @自身始发的路由,传递所有BGP邻居下一跳自动改变。

    下一跳取值:为本设备与邻居建立BGP邻居关系的接口的地址。

    Origin属性

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

    • IGP:具有最高的优先级。通过network命令注入到BGP路由表的路由,其Origin属性为IGP。

    • EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。

    • Incomplete:优先级最低。通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由,其Origin属性为Incomplete。

    Origin属性:
                       特点:

                              1、公认必遵属性
                              2、描述当前这条路由是如何形成BGP路由。
                              3、用于BGP路由的路径选择。(i>e>?)
                                       i:标识通告network生成的BGP路由
                                       ?:标识通过import-route命令,引入到BGP中的IGP路由。
                                       e:从EGP协议中引入到BGP的路由。


    route-policy修改的属性与Origin默认产生的属性冲突的时候,策略修改的优选。

    BGP路由的选路原则:

    1,如果此路由的下一跳不可达,忽略此路由
    2,优选协议首选值(PrefVal)最高的路由
    3,优选本地优先级(Local_Pref)最高的路由
    4,优选本地生成的路由
    5,优选AS路径(AS_Path)最短的路由
    6,比较Origin属性,依次优选Origin类型为IGP、EGP、Incomplete的路由
    7,优选MED值最低的路由
    8,优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)
    9,优选到BGP下一跳IGP Metric较小的路由
    10,优选Cluster_List最短的路由
    11,优选Router ID最小的路由器发布的路由
    12,比较对等体的IP Address,优选从具有较小IP Address的对等体学来的路由

    Origin属性小应用举例:

    解决思路:  因为 i > ?   所以我们在AR1这里宣告192.168.1.0  引入192.168.2.0 。而在AR5那边宣告192.168.2.0,引入192.168.1.0  

     配置:AR1  -----    bgp 1

                                             network 192.168.1.0 24

                                             import-route static route-policy ogi  //, 使用route-policy 过滤  只引入192.168.2.0

                                   route-plicy ogi permit node 10  //配置route-policy

                                            if- nutch ip ip-prefix 1    //调用前缀列表

                                   ip ip-prefix 1 permit 192.168.2.0 24   // 前缀列表抓取192.168.2.0  

    结果如下图:

     

    AR5 配置----

      

                                             network 192.168.2.0 24

                                             import-route static route-policy ogi  //, 使用route-policy 过滤  只引入192.168.1.0

                                   route-plicy ogi permit node 10  //配置route-policy

                                            if- nutch ip ip-prefix 1    //调用前缀列表

                                   ip ip-prefix 1 permit 192.168.1.0 24   // 前缀列表抓取192.168.1.0  

    AR2与AR4上面的BGP路由表分别为:

    ====================================================================================================================================

    BGP修改路由属性的方法:
    1、在network这条路由的时候关联route-policy修改
    2、在import这条路由的时候关联route-policy修改
    3、针对发送/接受邻居路由的时候关联route-policy修改。
    4、某些路由的属性支持修改默认取值。

    route-policy修改的属性与Origin默认产生的属性冲突的时候,策略修改的优选。

    简单举例说明:

    1. 在AS1的AR1里面的静态路由192.168.1.0 24 Null0  ,network进了bgp协议,我们在ae2上查看bgp路由表

    我们在AR1上在network的时候关联route-policy修改它的属性

      bgp 1

               network 192.168.1.0 route-policy ogi

     route-policy ogi permit node 10

    apply origin igp 

    <>refresh bgp all export

    在查看ar2上的结果:

    2,import  在引入的时候关联route-policy修改origin的属性:

       2.1  我们在AR1上引入静态路由到bgp   ----import- route static 

      2.2  关联route-policy 修改origin的属性

               import-route static route-policy ogi

     route-policy ogi permit node 10

    apply origin igp

    <>refresh bgp all export 

    3, 在发送或者接收给邻居的时候关联route-policy修改属性

         route-policy ogi permit node 10  

         apply origin incomlete   //  修改origin属性为引入

    bgp 1  

             peer 10.0.12.2 route-policy ogi export  //在发送给邻居的时候调用route-policy 修改origin属性为 incomlete

             network 192.168.1.0 24  // network静态路由到bgp协议

    查看AR2的BGP路由表

    接下来,我们在AR2上在接收的方向在修改过来为igp

    route-policy ogi permit node 10  

         apply origin igp   //  修改origin属性为network

    bgp 2

             peer 10.0.12.1 route-policy ogi import  // 在接收邻居的时候调用route-policy 修改origin属性为 igp

    origin属性知识点完   2022-04-22 下午16:45分

  • 相关阅读:
    vmwear 及docker
    vue相关
    vue demo
    线程的死锁
    让出和守护线程
    join加入线程
    线程的优先级
    线程间的通信
    synchronized关键字的使用
    线程的并发
  • 原文地址:https://www.cnblogs.com/gailuo/p/16159492.html
Copyright © 2020-2023  润新知