BGP协议详解

一、BGP路由选择协议概述

  1. 在因特网中,所有的AS(Autonomous system)运行相同的AS间路由选择协议,称为边界网关协议(Broder Gateway Protocol,BGP)
  2. BGP协议是一个自治系统间路由选择协议(inter-autonomous system routing protocol),该协议将因特网中数以千计的AS连接起来。
  3. BGP协议是一种分布式和异步的协议,与DV距离向量路由选择算法一脉相承。
  4. BGP协议基于TCP协议,是一个应用层协议。
  5. 在BGP协议中,分组并不是路由到一个特定的目的地址,而是路由到CIDR化的前缀,其中每个前缀表示一个子网或一个子网集合。在BGP协议中,一个目的地可以采用类似138.16.68/22的形式,因此,一台路由器的转发表将具有形式为 \((x,l)\) 的表项,其中 x 是一个前缀(如138.6.68/22),l 是该路由器其中一个接口的接口号。
  6. 在BGP协议中,一台路由器执行以下两类任务
    1. 从邻居AS中获得前缀的可达性信息
      1. BGP允许每个AS向因特网中其余部分通告它的存在。
    2. Determining the Best Routes
  7. 下面我们将详细讨论在BGP协议中,路由器将执行的两类任务。

二、任务1————从邻居AS中获得前缀的可达性信息:通告BGP路由信息

  1. 在BGP协议中,每对路由器通过使用179端口的半永久TCP连接交换路由选择信息。
  2. 每条直接连接以及所有通过该连接发送的BGP报文,称为BGP连接(BGP connection)
  3. 跨越两个AS的BGP连接称为外部BGP(eBGP)连接
  4. 在相同AS中的两台路由器之间的BGP会话称为内部BGP(iBGP)连接
    1. 每个AS内的路由器之间还有多条iBGP连接。
  5. 下图中,eBGP会话显示为长虚线;iBGP显示为短虚线,注意:iBGP连接并不总是与物理链路对应
    iBGP连接与eBGP连接
    物理链路
  6. 完成“向上图中所有路由器通告对于 前缀x 的可达性信息”任务
    1. 网关路由器3a 先向网关路由器2c发送一个eBGP报文“AS3 x”。(“AS3 x”:x存在并且可通过AS3到达)
    2. 网关路由器2c 向AS2中的所有其他路由器(包括网关路由器2a)发送iBGP报文“AS3 x”。
    3. 网关路由器2a 接着向 网关路由器1c 发送一个eBGP报文“AS2 AS3 x”。(“AS2 AS3 x”:x存在并且可通过AS2->AS3到达)
    4. 最后,网关路由器1c 使用iBGP向AS1中的所有路由器发送报文“AS2 AS3 x”。
    5. 在上述过程中完成后,在AS1和AS2中的每个路由器都知道了 前缀x 的存在并且都知道了通往 前缀x 的AS路径。
  7. 在实际网络中,从某个给定的路由器到某个给定的目的地之间可能有多条路径,每条路径通过了不同的AS序列,如下图所示。
    通往目的地有不同的AS序列路径
    1. 在这种情况下,同AS1到前缀x存在两条路径:通过路由器1c的路径“AS2 AS3 x”,以及通过路由器1d的另一条路径“AS3 x”。

三、任务2————Determining the Best Routes

  1. 从一个给定的路由器到一个目的子网可能有多条路由路径可供选择,那么,一台路由器该如何选择它的转发路径并配置路由表呢?

3.1 BGP相关术语

  1. 当路由器利用BGP连接向其他节点通告前缀时,通告报文中会包含一些BGP attribute,其中两个重要的属性介绍如下
    1. AS-PATH
      1. AS-PATH属性包含该通告已经通过的AS的列表。
      2. BGP协议中,路由器除了可利用该属性形成路由路径外,还可使用该属性来检测和防止通告回路。
      3. 若一台路由器在AS-PATH中看到包含了它自己的AS时,该路由器拒绝该通告。
    2. NEXT-HOP
      1. NEXT-HOP是AS-PATH中第一个AS的网关路由器接口的IP地址(下文会用图片展示)
  2. 路由
    1. 网络前缀及其属性合称为路由route

3.1.1 路由举例【以图5-10为例】

通往目的地有不同的AS序列路径

  1. AS1中的每台路由器都知晓并存储了到 前缀x 的两个BGP路由
    1. 路由1:【路由器2a的最左侧接口的IP地址;AS2 AS3; x】
    2. 路由2:【路由器3d的最左侧接口的IP地址;AS3; x】
  2. 每条BGP路由包含三个组件:NEXT-HOP;AS-PATH;目的地前缀

3.2 BGP路由选择算法

3.2.1 Hot-Potato routing——热土豆🥔路由选择算法【局部最优,快速出手】

以路由器1b为例
一图胜千言:热土豆算法实例

  1. 【假定链路开销均为1】提问:于路由器1b而言,利用热土豆算法规划的路由路径是哪一条呢?请读者先行思考~
    1. 答案:1b->1c->2a
      《计算机网路:自顶向下方法》中对热土豆算法的局部最优描述

四、疑问汇总

  1. 为什么会有不同的AS间合AS内部路由选择协议?
    《计算机网路:自顶向下方法》给出的答案

参考资料

  1. 《计算机网路:自顶向下方法(第8版)》
posted @ 2024-11-25 17:30  宇星海  阅读(1966)  评论(0)    收藏  举报