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