1. 自治系统AS(Autonomous System)

AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。

2. BGP邻居类型

BGP邻居类型按照运行方式分为EBGP(External/Exterior BGP)IBGP(Internal/Interior BGP)

  • EBGP:运行于不同AS之间的BGP称为EBGP
  • IBGP:运行于同一AS内部的BGP称为IBGP

3. BGP报文交互中的角色

BGP报文交互中分为SpeakerPeer两种角色

  • Speaker:发送BGP报文的设备称为BGP发言者(Speaker),它接收或产生新的报文信息,并发布(Advertise)给其它BGP Speaker
  • Peer:相互交换报文的Speaker之间互称对等体(Peer)。若干相关的对等体可以构成对等体组(Peer Group)

4. BGP的路由器号(Router ID)

BGPRouter ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的Router ID,否则对等体之间不能建立BGP连接。

BGP的Router ID在BGP网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。缺省情况下,BGP选择设备上的Loopback接口的IPv4地址作为BGP的Router ID。如果设备上没有配置Loopback接口,系统会选择接口中最大的IPv4地址作为BGP的Router ID。一旦选出Router ID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的Router ID

5. BGP工作原理

BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和5个原则

5.1 BGP的报文

BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:

  • Open报文:用于建立BGP对等体连接
  • Update报文:用于在对等体之间交换路由信息
  • Notification报文:用于中断BGP连接
  • Keepalive报文:用于保持BGP连接
  • Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文

5.2 BGP状态机

BGP对等体的交互过程中存在6种状态机:空闲(Idle)连接(Connect)活跃(Active)Open报文已发送(OpenSent)Open报文已确认(OpenConfirm)连接已建立(Established)。在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active和Established

BGP bird的工作原理 bgp soo工作原理_状态机

5.3 BGP对等体之间的交互原则

BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则:

  • 从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。
  • 从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体。
  • 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体。
  • 路由更新时,BGP设备只发送更新的BGP路由。
  • 所有对等体发送的路由,BGP设备都会接收。

参考文档:

  • 《AR系列接入路由器 产品文档》