BGP按照运行方式分为EBGP(External/Exterior BGP)和IBGP(Internal/Interior BGP)。
1、EBGP:
运行于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。()
2、IBGP:
运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟(详情见后面)。
如果在AS内一台BGP设备收到EBGP邻居发送的路由后,需要通过另一台BGP设备将该路由传输给其他AS,此时推荐使用IBGP。
同步规则 BGP synchronization
当一台路由器从自己的 IBGP 对等体学习到一条BGP 路由时,它将不能使用该条路由或把这条路由通告给自己的 EBGP 对等体,除非它又从IGP 协议学习到这条路由,也就是要求 IBGP 路由与 IGP 路由同步。
同步规则主要用于规避 BGP 路由黑洞。
解决方法:
1所有设备都运行 BGP
2 IGP与BGP 进行引入
3 采用 MPLS
BGP的Router ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。
BGP邻居建立状态:
idle:初始状态
connect:BGP等待TCP连接的建立
active:TCP连接失败,重新建立TCP连接
opensent:TCP建立成功,发送open报文
openconfirm:收到正确的OPEN报文
established:BGP邻居建立成功