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传递给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
|