BGP协议详解
一、BGP路由选择协议概述
- 在因特网中,所有的AS(Autonomous system)运行相同的AS间路由选择协议,称为边界网关协议(Broder Gateway Protocol,BGP)
- BGP协议是一个自治系统间路由选择协议(inter-autonomous system routing protocol),该协议将因特网中数以千计的AS连接起来。
- BGP协议是一种分布式和异步的协议,与DV距离向量路由选择算法一脉相承。
- BGP协议基于TCP协议,是一个应用层协议。
- 在BGP协议中,分组并不是路由到一个特定的目的地址,而是路由到CIDR化的前缀,其中每个前缀表示一个子网或一个子网集合。在BGP协议中,一个目的地可以采用类似138.16.68/22的形式,因此,一台路由器的转发表将具有形式为 \((x,l)\) 的表项,其中 x 是一个前缀(如138.6.68/22),l 是该路由器其中一个接口的接口号。
- 在BGP协议中,一台路由器执行以下两类任务
- 从邻居AS中获得前缀的可达性信息
- BGP允许每个AS向因特网中其余部分通告它的存在。
- Determining the Best Routes
- 从邻居AS中获得前缀的可达性信息
- 下面我们将详细讨论在BGP协议中,路由器将执行的两类任务。
二、任务1————从邻居AS中获得前缀的可达性信息:通告BGP路由信息
- 在BGP协议中,每对路由器通过使用179端口的半永久TCP连接交换路由选择信息。
- 每条直接连接以及所有通过该连接发送的BGP报文,称为BGP连接(BGP connection)
- 跨越两个AS的BGP连接称为外部BGP(eBGP)连接
- 在相同AS中的两台路由器之间的BGP会话称为内部BGP(iBGP)连接
- 每个AS内的路由器之间还有多条iBGP连接。
- 下图中,eBGP会话显示为长虚线;iBGP显示为短虚线,注意:iBGP连接并不总是与物理链路对应。


- 完成“向上图中所有路由器通告对于 前缀x 的可达性信息”任务
- 网关路由器3a 先向网关路由器2c发送一个eBGP报文“AS3 x”。(“AS3 x”:x存在并且可通过AS3到达)
- 网关路由器2c 向AS2中的所有其他路由器(包括网关路由器2a)发送iBGP报文“AS3 x”。
- 网关路由器2a 接着向 网关路由器1c 发送一个eBGP报文“AS2 AS3 x”。(“AS2 AS3 x”:x存在并且可通过AS2->AS3到达)
- 最后,网关路由器1c 使用iBGP向AS1中的所有路由器发送报文“AS2 AS3 x”。
- 在上述过程中完成后,在AS1和AS2中的每个路由器都知道了 前缀x 的存在并且都知道了通往 前缀x 的AS路径。
- 在实际网络中,从某个给定的路由器到某个给定的目的地之间可能有多条路径,每条路径通过了不同的AS序列,如下图所示。
- 在这种情况下,同AS1到前缀x存在两条路径:通过路由器1c的路径“AS2 AS3 x”,以及通过路由器1d的另一条路径“AS3 x”。
三、任务2————Determining the Best Routes
- 从一个给定的路由器到一个目的子网可能有多条路由路径可供选择,那么,一台路由器该如何选择它的转发路径并配置路由表呢?
3.1 BGP相关术语
- 当路由器利用BGP连接向其他节点通告前缀时,通告报文中会包含一些BGP attribute,其中两个重要的属性介绍如下
- AS-PATH
- AS-PATH属性包含该通告已经通过的AS的列表。
- BGP协议中,路由器除了可利用该属性形成路由路径外,还可使用该属性来检测和防止通告回路。
- 若一台路由器在AS-PATH中看到包含了它自己的AS时,该路由器拒绝该通告。
- NEXT-HOP
- NEXT-HOP是AS-PATH中第一个AS的网关路由器接口的IP地址(下文会用图片展示)
- AS-PATH
- 路由
- 网络前缀及其属性合称为路由route
3.1.1 路由举例【以图5-10为例】

- AS1中的每台路由器都知晓并存储了到 前缀x 的两个BGP路由
- 路由1:【路由器2a的最左侧接口的IP地址;AS2 AS3; x】
- 路由2:【路由器3d的最左侧接口的IP地址;AS3; x】
- 每条BGP路由包含三个组件:NEXT-HOP;AS-PATH;目的地前缀
3.2 BGP路由选择算法
3.2.1 Hot-Potato routing——热土豆🥔路由选择算法【局部最优,快速出手】


- 【假定链路开销均为1】提问:于路由器1b而言,利用热土豆算法规划的路由路径是哪一条呢?请读者先行思考~
- 答案:1b->1c->2a

- 答案:1b->1c->2a
四、疑问汇总
- 为什么会有不同的AS间合AS内部路由选择协议?

参考资料
- 《计算机网路:自顶向下方法(第8版)》

本文重点详解用于自治系统AS间路由选择的协议——BGP协议。
浙公网安备 33010602011771号