外部网关协议 BGP
问题背景:
1.互联网的规模太大,使得自治系统AS之间路由选择非常困难。
2.自治系统AS之间的路由选择必须考虑有关策略。
所以不同自治系统AS之间的路由不使用内部网关协议(RIP、OSPF)
BGP并非要找出一条最佳路径,只是要求找出一条能够到达目的网络且比较好的路由(不能兜圈子)
总之:
- BGP 是不同自治系统的路由器之间交换路由信息的协议。
- BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 ~ 4278。
- 可以将 BGP-4 简写为 BGP。
BGP 发言人
每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” (BGP speaker) 。
一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
BGP 交换路由信息
一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站(neighbor)或对等站(peer) 。
BGP 发言人和自治系统 AS 的关系
AS 的连通图举例
BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。
当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。
BGP 发言人交换路径向量
自治系统 AS2 的 BGP 发言人通知主干网 AS1 的 BGP 发言人:“要到达网络 N1、 N2、N3 和 N4 可经过 AS2。”
主干网还可发出通知:“要到达网络 N5、N6 和 N7 可沿路径(AS1, AS3)。”
BGP 协议的特点
- BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
- 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
- BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
- 在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
BGP-4 共使用四种报文
- 打开 (OPEN) 报文,用来与相邻的另一个BGP发言人建立关系。 OPEN报文共6个字段(版本、本自治系统号、保持时间、BGP标识符、可选参数长度和可选参数)
- 更新 (UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。 UPDATE报文共5个字段(不可行路由长度、路径属性长度、路径属性、网络层可达性信息NLRI)
- 保活 (KEEPALIVE) 报文,用来确认打开报文和周期性地证实邻站关系。KEEPALIVE报文只有BGP的19字节长的通用首部
- 通知 (NOTIFICATION) 报文,用来发送检测到的差错。NOTIFICATION报文有3个字段,即差错代码(1字节)、差错子代码(1字节)、差错数据(给出有关差错的诊断信息)
BGP 报文具有通用首部