tea 发表于 2012-12-7 16:36:24

BGP NEXT-HOP属性详解

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 via 10.1.23.2, 00:06:40, Serial0/0
O           2.2.2.2 via 10.1.23.2, 00:06:40, Serial0/0
O IA        10.1.12.0 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传递给A,NEXT_HOP为10.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



magic_os 发表于 2012-12-7 20:10:41

--学习了~感谢分享!

紫川凌 发表于 2012-12-8 09:14:14

3楼还是有的。。。。。。。

victor_huang 发表于 2012-12-10 10:07:40

BGP既费脑子 又费体力,锻炼身体 必备协议

缺少一个信仰 发表于 2012-12-11 11:00:06

审计回复闪现!11

明天¤晴天℃ 发表于 2012-12-13 08:51:32

耿叔 辛苦了 --

a773545812 发表于 2013-5-26 13:11:27

学习BGP 知识 来这是对的!

ln3174804 发表于 2013-6-12 14:44:28

下载下来保存学习。

yangwisdom 发表于 2013-6-25 16:22:54

好东西啊顶起来
页: [1]
查看完整版本: BGP NEXT-HOP属性详解