学习
一,何为BGP
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由协议。
1,特性
-
类型:BGP协议是一种外部网关协议。
-
路由算法:路径-矢量,避免了环路的发生
其路由信息携带了所经过的所有AS路径列表,接收路由信息的BGP路由器可以知道该信息是否源于自己的AS,若源于,则抛弃此条路由,这样就解决了环路问题。 -
传递协议:TCP(目的端口号179)
-
支持CIDR和路由聚合
可以将一些连续的子网聚成较大的子网,从而控制路由表增长,降低路由查找复杂度 -
只发送增量路由更新
与邻居建立关系时,BGP路由器会将自己的全部路由信息告诉邻居,此后若路由表发生变化,则只将增量部分告诉邻居 -
路径选择:较好,非最佳
-
交换节点:和本结点相邻的路由器
2,常用术语
-
BGP发言者(BGP Speaker):接收、产生、发送BGP消息的路由器
-
RID(Router ID):32位比特无符号整数,用于在一个AS中唯一标识一台路由器。RID可以是手动配置或路由协议自动选择。
-
BGP对等体(BGP Peer):相互交换信息的BGP发言者。亦称BGP邻居。可分为IBGP对等体和EBGP对等体。
-
EBGP对等体
处于不同AS的BGP对等体称为EBGP对等体,通常情况EBGP对等体是物理上直连
BGP Speaker从EBGP Peer获得的路由会向其除了原EBGP Peer以外的BGP Peer发布(以防止环路) -
IBGP对等体
处于同一个AS下的BGP Peer,其间物理直连或TCP可达。
BGP Speaker从其IBGP Peer获得的路由不会想起IBGP Peer转发(以防止环路)
为防止路由黑洞,从IBGP Peer获得的路由是否发送给其EBGP Peer与BGP是否同步有关 -
IBGP全连接
直接没看懂
TCP的可靠传输机制和滑动窗口机制可以确保承载与TCP之上的BGP可以可靠传递大量路由。但是TCP链接是点到点的单播方式来进行报文传输的,因此BGP链接只能是基于点到点的链接。同时BGP是一种距离矢量路由协议,为了防止产生路由环路,协议规定BGP发言者从IBGP对等体获得的路由不能向其他的IBGP对等体发布。这样,在运行了BGP协议的AS内,为了确保所有BGP路由器的路由信息向,则需要使所有的IBGP路由器保持全连接。
3,BGP消息种类
- Open消息:TCP连接后的首条消息,用于建立BGP Peer之间的链接关系。
- Keepalive消息:周期性的向BGP Peer发出消息,以保持链接有效性。或用于对收到的Open消息作出回应。
- Update消息:BGP Peer间交换的关于路由增删的消息
- Notification消息:用于错误通知,发送之后会关闭链接回到idie状态
- Route-refresh消息:是要求对等体重新发送指定地址族的路有消息
4,BGP协议状态机的状态
状态间的转换描述的是BGP对等体关系的建立过程
- Idle状态(空闲状态):初始状态,不接受任何BGP连接,等待St