BGP路径属性:Next Hop和Local-Preference

BGP路径属性:Next Hop和Local-Preference

下一跳(Next Hop)属性

BGP路径属性:Next Hop和Local-Preference


(图中的例子是,RTA与RTC通过直连以太网接口建立EBGP邻居关系,RTA与RTB通过直连接口建立IBGP邻居关系,而RTC与RTD通过直连以太网接口10.0.0.2和10.0.0.3建立IBGP邻居关系)

1、BGP在向EBGP邻居通告路由时,或者将本地发布的BGP路由通告给IBGP邻居时,下一跳属性是本地BGP与对端连接的端口地址。如图所示,RTC在向RTA通告路由18.0.0.0/8时,下一跳属性为10.0.0.2;RTB在向RTA通告路由19.0.0.0/8时,下一跳属性为21.0.0.1。

2、对于多路访问的网络(广播网或NBMA网络),下一跳情况有所不同:如图所示,RTC在向RTA通告路由20.0.0.0/8时,发现本地端口10.0.0.2同此路由的下一跳10.0.0.3(指在RTC路由表中此路由的下一跳)为同一子网,将使用10.0.0.3作为向EBGP通告路由的下一跳,而不是10.0.0.2。

3、BGP在向IBGP通告从其它EBGP得到的路由时,不改变路由的下一跳属性,而直接传递给IBGP邻居。如图所示,RTA通过IBGP向RTB通告路由18.0.0.0时,下一跳属性为10.0.0.2。这样做,有时会产生问题:如果RTB不知如何去往10.0.0.2,那么此BGP路由将失效。

解决方法:方法一:可以在RTA的BGP视图下引入直连路由;方法二:在RTA上,使用命令peer { group-name| ipv4-address } next-hop-local。此命令用来设置BGP向对等体组/对等体通告路由时,把下一跳属性设为自身的IP地址。

相关特性:

peer next-hop-invariable命令有以下作用:

配置不同AS域的RR间向EBGP对等体发布路由时不改变下一跳。

配置向IBGP对等体发布标签路由时也不改变下一跳。

配置向IBGP对等体发布引入的IGP路由时使用IGP路由的下一跳地址。

undo peer next-hop-invariable命令用来恢复缺省配置。

缺省情况下:

BGP发言者在向EBGP对等体发布路由时将下一跳改为自己的接口地址。

BGP发言者向IBGP对等体发布标签路由时将下一跳改为自己的接口地址。

BGP发言者向IBGP对等体发布引入的IGP路由时将下一跳改为自己的接口地址。

本地优先级属性(Local-Preference)

Local-Preference是公认任意属性。表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。EBGP默认为100,IBGP根据update消息中携带的值为依据,network/import进来的路由默认为100.

在某些情况下,一个ISP可能通过两条高速链路连接两个大的ISP作为自己到INTERNET的出口,如图所示,ISP0通过两条链路分别连接到ISP1和ISP2。

BGP路径属性:Next Hop和Local-Preference


RT3,RT4和RT5之间分别两两建立TCP连接来构成IBGP对等体关系,而RT3和RT4分别和位于ISP2和ISP1的路由器建立EBGP对等体关系。这样路由器RT3和RT4都会从自己的EBGP对等体收到82和83这两条路由,而且RT3和RT4也会通过IBGP对等体关系通告82、83这两条路由给自己的IBGP对等体。由此可以看出,RT5分别有两个来源获得82和83路由,这样我们只需要在RT3和RT4上适当的对路由属性进行修改,就可以达到目的。在这里,BGP可以给路由附加一种称为本地优先级的属性,路由器接收到去往同一目的地的多条路由,可以判断本地优先级属性值的高低进行路由选择(本地优先级的数值越高越好)。解决方法:本例中,在RT3上,当从ISP2获得路由82和83的时候,给83赋予本地优先级属性100(默认,不需配置),而给82赋予本地优先级属性200;同样的道理,在RT4上,当从ISP1获得路由82和83的时候,给82赋予100而给83赋予200。这样对等体RT5就会从两个地方接收到了带有不同本地优先级属性值的同一目的地址的两条路由,根据本地优先级数值的高低进行路由选举。最终,实现到达83的流量分布在ISP1上,而到达82的流量分布在ISP2上。


分享到:


相關文章: