BGP路径属性之next-hop
作用: 去往目的路由下一跳AS的路由器的IP地址
特征:
①从EBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,为自己
②从EBGP邻居学习到的路由会传递给我的IBGP邻居,下一跳不变,还是EBGP邻居,需要使用next-hop-self改变
③从IBGP邻居学习到的路由不会再传递给我的IBGP邻居(水平分割)
④从IBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,为自己
实验具体分析
①从EBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,为自己
查看R1的bgp database
R1#show ip bgp
Network Next Hop Metric LocPrf Weight Path
r> 6.6.6.6/32 6.6.6.6 0 0 6 i可以看到来自R6的路由6.6.6.6/32的Next Hop为6.6.6.6
查看R2的bgp database
R2#show ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 6.6.6.6/32 1.1.1.1 0 1 6 i经过R1转发后,R2收到的路由6.6.6.6/32的Next Hop为1.1.1.1
②从EBGP邻居学习到的路由会传递给我的IBGP邻居,下一跳不变,还是EBGP邻居,需要使用next-hop-self改变
R2从EBGP邻居学习到的路由会传递给IBGP邻居R3,但是Next Hop不变,仍然为R2
R2的database在上面有查看过
查看R3的database
R3#show ip bgp
Network Next Hop Metric LocPrf Weight Path
* i6.6.6.6/32 1.1.1.1 0 100 0 1 6 i可以看到路由6.6.6.6/32的Next Hop仍为1.1.1.1,没有改成R2的route-id 2.2.2.2
这样造成的问题是R3想给6.6.6.6/32发送数据时,找不到下一跳,无法通信
所以需要在R2修改与R3邻居的路由属性Next Hop为next-hop-self
这样R2从EBGP学习到的路由转发给IBGP邻居,会将Next Hop改为自己的
R2(config-router)#neighbor 3.3.3.3 next-hop-self
再查看R3的database
R3#show ip bgp
Network Next Hop Metric LocPrf Weight Path
* i6.6.6.6/32 2.2.2.2 0 100 0 1 6 i可以看到路由6.6.6.6/32的Next Hop修改成R2
③从IBGP邻居学习到的路由不会再传递给我的IBGP邻居(水平分割)
查看R4的database
R4#show ip
Network Next Hop Metric LocPrf Weight Path
可以看到R4并没有收到路由6.6.6.6/32,这是因为BGP的水平分割导致的,
即R3从IBGP邻居R2学习到的路由6.6.6.6/32不会再传递给它的IBGP邻居R4。
解决方法:使用路由反射route reflector 用来打破BGP水平分割原则
此实验R3为路由反射的服务端,R2,R4位路由反射的客户端
服务端R3接收到客户端R2的路由会传递给客户端R4
R3(config-router)#nei 2.2.2.2 route-reflector-client
R3(config-router)#nei 4.4.4.4 route-reflector-client
再查看R4的database
R4#show ip bgp
Network Next Hop Metric LocPrf Weight Path
*>i6.6.6.6/32 2.2.2.2 0 100 0 1 6 i可以看到使用路由反射打破BGP水平分割后,R4可以接收到路由6.6.6.6/32
并且Next Hop为2.2.2.2,这是因为R3是通过路由反射传递路由条目,
路由反射不会改变BGP的路由属性Next Hop
当然解决BGP水平分割的问题不止路由反射,也可以使用其他方法来解决:
>>>BGP全互联
>>>MPLS/VPN
>>>路由联邦
④从IBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,为自己
R4从IBGP邻居学习到的路由6.6.6.6/32会传递给它的EBGP邻居R5,下一跳改变,为自己
查看R5的database
R5#show ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 6.6.6.6/32 4.4.4.4 0 234 1 6 i可以看到R5能接收到来自R4的路由6.6.6.6/32并且Next Hop为4.4.4.4