BGP nexthop属性
概念
BGP nexthop属性是一个公认必选属性,它是去往目的路由下一跳路由器的IP地址。该地址并不一定是邻居路由器的地址。该属性需要遵守如下规则:
- 从EBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,变成自己的IP地址。
- 从EBGP邻居学习到的路由会传递给我的IBGP邻居,下一跳不变,还是EBGP邻居,需要使用next-hop-self改变。
- 从IBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,变成自己的IP。
- 特殊协议特殊对待,比如对于evpn协议强制不能修改该属性。因为该属性表示的是源vtep的IP地址,如果修改该属性将会导致vxlan隧道建立错误。
代码分析
/* Allocate new peer object, implicitely locked. */
struct peer *peer_new(struct bgp *bgp)
{
......
/* set nexthop-unchanged for l2vpn evpn by default */
/* 默认是不能改变evpn的下一跳地址的 */
SET_FLAG(peer->af_flags[AFI_L2VPN][SAFI_EVPN],
PEER_FLAG_NEXTHOP_UNCHANGED);
......
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。