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分

 

posted @ 2022-04-21 10:47  天上书生  阅读(1926)  评论(0编辑  收藏  举报