BGP 全称是 Border Gateway Protocol, 边界网关协议。是互联网上一个核心的去中心化自治路由协议。

因特网采用分层次的路由选择协议:

内部网关协议 IGP(例如路由信息协议 RIP 或开放最短路径优先 OSPF)

  • 设法使分组在一个启治系统内尽可能有效地从源网络传输到目的网络
  • 无需考虑自治系统外部其他方面的策略

外部网关协议 EGP(例如边界网关协议 BGP)

  • 在不同自治系统内,度量路由的”代价”(距离,带宽,费用等)可能不同。因此,对于自治系统之间的路由选择,使用”代价” 作为度量来寻找最佳路由是不行的

    AS5—>AS4 哪个是最佳路由?

    路径1: AS4 —> AS1 —> AS3 —> AS5

    路径2: AS4 —> AS1 —> AS2 —> AS5

    没有统一的度量,何谈最佳路由

  • 自治系统之间的路由选择必须考虑相关策略(政治,经济,安全等)

2. 工作原理

BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。当BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的第略从收到的路由信息中找出到达各 AS 的较好路由。

  1. 在配置 BGP 时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的”BGP 发言人”

  2. 不同自治系统的 BGP 发言人要交换路由信息,首先必须建立 TCP 连接,端口号为179

  • 在此 TCP 连接上交换 BGP 报文以建立 BGP 会话
  • 利用 BGP 会话交换路由信息(例如,增加新的路由,或撤销过时的路由,以及报告出错的情况等)
  • 使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此称为对方的邻站 (neighbor)或对等站 (peer)
  1. BGP 发言人除了运行 BGP 外,还必须运行自己所在自治系统所使用的内部网关协议 IGP,例如 OSPF 或 RIP.
  2. BGP发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统)
  3. 当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好的路由

3. 报文格式

一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,即通过 TCP 传送,然后
在此连接上交换 BGP 报文以建立 BCP 会话(session),利用 BGP会话交换路由信息。

BGP 是应用层协议,借助 TCP 传送。

4. 特点

  • BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的
    各个自治系统序列。
  • 在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

5. BGP-4 的四种报文

  1. OPEN(打开)报文

    用来与相邻的另一个BGP发言人建立关系,并认证发送方

  2. UPDATE(更新)报文

    通告新路径或撤销原路径。

  3. KEEPALIVE(保活)报文

    在无 UPDATE 时,周期性证实邻站的连通性, 也作为 OPEN 的确认

  4. NOTIFICATION(通知)报文

    报告先前报文的差错;也被用于关闭连接。

6. BGP & OSPF & RIP

  • RIP 是一种分布式的基于距离向量的内部网关路由选择协议,通过广播 UDP 报文来交换路由信息。
  • OSPF 是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如 UDP 或 TCP),而是直接采用 IP。
  • BGP 是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复余,需要保证可靠传输,采用 TCP。

对比: