加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 综合聚焦 > 酷站推荐 > 推荐 > 正文

BGP修改NEXT_HOP下一跳属性值的几种方法

发布时间:2016-11-01 01:44:13 所属栏目:推荐 来源:站长网
导读:本博文将为您详细介绍BGP修改NEXT_HOP下一跳属性值的几种方法,包括通过next-hop-self变更next-hop属性,通过route-map修改BGP路由NEXT_HOP属性值等。 1.通过next-hop-self可以变更next-hop属性 498)this.width=498;' onmousewheel = 'javascript:return b

本博文将为您详细介绍BGP修改NEXT_HOP下一跳属性值的几种方法,包括通过next-hop-self变更next-hop属性,通过route-map修改BGP路由NEXT_HOP属性值等。

1.通过next-hop-self可以变更next-hop属性


BGP修改NEXT_HOP下一跳属性值的几种方法

上图R5更新给EBGP邻居R2 BGP路由5.5.5.0时,NEXT_HOP=192.168.25.5,该属性将一直跟随本条BGP路由在AS234中传递,这时对于R4、R3来说,并不知道如何前往192.168.25.5,因此5.5.5.0的路由无法正常装入路由表。解决方法之一是R2在IGP路由中注入25.0这条外部路由,另一个方法是R2对其IBGP邻居使用next-hop-self,修改这条前缀的NEXT_HOP属性。

NEXT_HOP on shared Media(在共享介质上的运作)


BGP修改NEXT_HOP下一跳属性值的几种方法

RouterB将路由100.100.100.0/24传递给A,NEXT_HOP为10.1.123.2;

RouterA将路由100.100.100.0/24传递给C,此时NEXT_HOP保持不变;

如果路由器收到某条BGP路由,该路由的NEXT_HOP地址值与该路由器的接口IP(更新源)同属一个网段,那么该条路由的NEXT_HOP地址将保持不变并传递给它的(这个相同网段上的)BGP邻居,这个其实是一种优化机制,但是这种机制在NBMA环境中是否有问题呢?

NEXT_HOP on NMBA network

仍然看上图,中间的网络如果不是广播多路访问网络,而是一个帧中继网络,那么就要注意,C收到的路由,NEXT_HOP为10.1.123.2,那么如果C路由器上没有到该IP的PVC,就会出问题,所以这点要考虑进去。

2.通过route-map修改BGP路由NEXT_HOP属性值


BGP修改NEXT_HOP下一跳属性值的几种方法

BGP的邻居关系如图所示,R1-R2建立基于Loopback的iBGP邻居关系。R2-R3建立基于直连接口的eBGP邻居关系。那么在默认情况下,R1通告给R2的路由11.0/24下一跳属性值为1.1.1.1,也就是R1的更新源IP,而R2将路由更新给eBGP邻居R3时,路由的NH变成了10.1.23.2、

R2上增加配置

access-list 1 permit 11.11.11.0

route-map test permit 10

match ip address 1

set ip next-hop 10.1.23.99

router bgp 12

neighbor 10.1.23.3 route-map test out

通过在R2上部署out方向的route-map,可以修改传递给R3的BGP路由的NEXT_HOP属性值,当然上面的范例设置的10.1.23.99没有任何意义,纯粹是一个测试而已。


BGP修改NEXT_HOP下一跳属性值的几种方法

3.关于BGP next-hop-unchanged特性


BGP修改NEXT_HOP下一跳属性值的几种方法

(承上一小节)另一个可以影响BGP NEXT_HOP属性值的特性是BGP next-hop-unchanged特性。

首先这条命令只能对多跳eBGP peer配置,所以上图中,R2及R3需建立基于Loopback的eBGP邻居关系,形成multihop eBGP peer。

在R2收到iBGP peer传来的路由11.0/24,其NEXT_HOP属性值为1.1.1.1,如过R2上在BGP进程中使用neighbor 3.3.3.3 next-hop-unchanged配置,那么R2将BGP路由传递给eBGP邻居R3时,路由的NEXT_HOP属性值将不会发生变化。

再进一步做个测试,现在把拓扑环境变更一下:


BGP修改NEXT_HOP下一跳属性值的几种方法

R1-R2之间变成了eBGP邻居了,基于直连接口建立eBGP邻居关系;

R2-R3之间仍然是基于Loopback建立的多跳eBGP邻居关系;

现在R1传来的路由,在R2上NEXT_HOP属性值为10.1.12.1,那么默认情况下R2将路由再传给R3时,路由的NEXT_HOP属性值修改为2.2.2.2也就是R2的更新源IP。

如果此刻在R2上配置neighbor 3.3.3.3 next-hop-unchanged,我们发现命令无效,R2通告给R3的路由NEXT_HOP属性值还是会变,不会保留10.1.12.1。

因此我得出的结论是,BGP 的neighbor next-hop-unchanged命令,首先只能对多跳eBGP邻居配置,其次,它只在将本地的iBGP路由传递给自己的eBGP多跳邻居时才会生效。

原文链接:http://blog.sina.com.cn/s/blog_5ec353710101ghqe.html#bsh-24-329898008

【编辑推荐】

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读