雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2691|回复: 8

[讨论/求助] BGP NEXT-HOP属性详解

[复制链接]
发表于 2012-12-7 16:36:24 | 显示全部楼层 |阅读模式
BGP NEXT-HOP属性详解

公认必遵属性

1、BGP next-hop属性通常在三个地方被设置:
1.1、当路由前缀被注入BGP时,next-hop值依赖于前缀被注入的方式:
  • 如果是通过aggregate-address命令被注入的,那么next-hop等于执行汇总路由器
  • 如果是通过network或重发布注入的,那么在注入前该前缀的IGP下一跳将成为BGP的next-hop



R1、R2、R3跑OSPF,R3上的路由表如下:
O E2        1.1.1.0 [110/20] via 10.1.23.2, 00:06:40, Serial0/0
O             2.2.2.2 [110/65] via 10.1.23.2, 00:06:40, Serial0/0
O IA          10.1.12.0 [110/128] via 10.1.23.2, 00:06:40, Serial0/0
C            10.1.23.0 is directly connected, Serial0/0
C            10.1.34.0 is directly connected, Serial0/1
                R3与R4建立IBGP邻居关系,并且R3上,将OSPF路由重发布进BGP
redistribute ospf 1 match internal external 1 external 2
                然后在R4上观察BGP表:
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.0/24       10.1.23.2               20    100      0 ?
*>i2.2.2.2/32       10.1.23.2               65    100      0 ?
*>i10.1.12.0/24     10.1.23.2              128    100      0 ?
*>i10.1.23.0/24     10.1.34.3                0    100      0 ?
我们发现,无论是O、O IA还是带有FA的OE2路由,被重发布进BGP后,这些BGP路由的Next-hop均为它们在OSPF中的IGP下一跳。同时本地激活了OSPF了直连接口所在网段也会被注入BGP,注入后Next_Hop为本路由器(BGP更新源IP)。

  • 如果本地的BGP宣告者成了下一跳地址,那么BGP RIB中的下一跳字段就是0.0.0.0(自己看到的值)

1.2、对EBGP会话来说,NEXT-HOP就是通告该前缀的EBGP邻居的接口IP
因为EBGP邻居一般使用对方的直连接口IP互相指neighbor,如果是采用LOOPBACK接口建EBGP邻居,则NEXT_HOP就是通告给我该条路由的EBGP邻居的更新源地址(当然一般EBGP邻居不使用LOOPBACK口建邻居)。
对IBGP,起源AS内部的路由的NEXT-HOP就是通告该路径的邻居的ip(如果有设定更新源,则为更新源地址),而从外部AS注入进来的路由,从EBGP学到的NEXT-HOP一般会不变地带入IBGP中,始终指向的是下一个AS(本AS对端的EBGP邻居接口IP)。
【补充】若同AS内的BGP路由器A引入了某路由,A路由器将该路由传递给了其IBGP邻居B,又被B传递给了其IBGP邻居C(做了反射器),则在C上,该条路由NEXT_HOP仍然为A路由器(的更新源IP)

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

2、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属性。

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


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

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



红茶三杯(SPOTO 朱SIR)
微博:http://weibo.com/vinsoney
博客:http://blog.sina.com.cn/vinsoney



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2012-12-7 20:10:41 | 显示全部楼层
学习了~感谢分享!
发表于 2012-12-8 09:14:14 | 显示全部楼层
3楼还是有的。。。。。。。
发表于 2012-12-10 10:07:40 | 显示全部楼层
BGP既费脑子 又费体力,锻炼身体 必备协议
发表于 2012-12-11 11:00:06 | 显示全部楼层
审计回复闪现!11
发表于 2012-12-13 08:51:32 | 显示全部楼层
耿叔 辛苦了
发表于 2013-5-26 13:11:27 | 显示全部楼层
学习BGP 知识 来这是对的!
发表于 2013-6-12 14:44:28 | 显示全部楼层
下载下来保存学习。
发表于 2013-6-25 16:22:54 | 显示全部楼层
好东西啊  顶起来
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-3-29 17:57 , Processed in 0.081104 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表