互联网的外交官,一文带你彻底搞懂BGP对等体
BGP协议被誉为“互联网的外交官”,而BGP对等体则是建立这种“外交关系”的基础,BGP对等体(Peer)是指两台建立了TCP连接并相互交换路由信息的BGP路由器,它们通常分属不同的自治系统(AS),通过彼此“沟通”来通告网络可达性,从而决定数据包在全球互联网中的最佳传输路径,本文深入浅出地解析了BGP对等体的概念、建立过程及核心作用,助你快速搞懂这一支撑全球互联网运转的关键技术。
当我们每天畅游互联网,顺畅地访问身处异国的网站时,背后离不开一个极其庞大且复杂的全球网络路由系统,在这个系统中,各个网络(如电信、联通、AT&T、Google等)之间需要互相交换它们所拥有的IP地址信息,这样数据包才能准确找到目的地,而在这个过程中,BGP(边界网关协议,Border Gateway Protocol)扮演了核心角色。
在BGP的术语体系中,有一个非常基础且关键的概念——BGP对等体,BGP对等体到底是什么呢?
一句话解释:什么是BGP对等体?
BGP对等体是指在两台不同的路由器之间建立了BGP连接、并相互交换路由信息的逻辑关系实体。
你可以把互联网想象成一个由许多独立国家(自治系统,AS)组成的世界,每个国家都有自己的领地(IP网段)和边境海关(边界路由器),如果A国的人想往B国寄包裹,A国海关必须知道去B国的路怎么走。
这时,A国海关和B国海关就要坐下来建立一种“外交关系”,互相交换各自的“国家地图”(路由表)。这两个建立了外交关系、开始交换地图的海关节点,互为彼此的BGP对等体。
BGP对等体是如何建立的?
BGP对等体并不是凭空出现的,它们需要通过特定的流程来建立连接:
- 底层连接:BGP使用TCP协议进行通信,端口号为179,这意味着两台路由器在成为BGP对等体之前,它们的网络层(IP)必须是互相连通的。
- 发送Open报文:两台路由器互相发送Open报文,里面包含了自己的BGP版本、所在的AS号(自治系统号)、路由器ID等信息。
- 协商与确认:如果双方参数匹配且互相确认,就会发送Keepalive报文表示同意。
- 建立成功:当双方都收到Keepalive报文后,BGP对等体关系正式建立,开始互相发送Update报文交换路由信息。
BGP对等体的两大分类
在BGP的世界里,根据对等体所在的AS(自治系统)不同,对等体被分为两类,这两类在网络中扮演的角色也大不相同:
EBGP(External BGP,外部对等体)
当两个BGP对等体属于不同的AS时,它们就是EBGP对等体。
- 场景:比如中国电信的AS和一个美国运营商的AS之间建立的对等体。
- 作用:主要用于在不同组织、不同国家或不同运营商之间传递互联网路由,这是真正构建全球互联网骨干的连接方式。
IBGP(Internal BGP,内部对等体)
当两个BGP对等体属于同一个AS时,它们就是IBGP对等体。
- 场景:比如中国电信北京节点和上海节点之间的BGP连接。
- 作用:主要用于在AS内部传递从EBGP学到的外部路由,因为BGP有一条防环规则(从IBGP学到的路由不再传给其他IBGP),所以为了保证AS内部所有边界路由器都能拿到完整的路由表,通常需要让AS内部的关键路由器两两建立IBGP对等体(即全连接,Full Mesh),或者使用路由反射器(RR)来优化。
BGP对等体之间交换什么?
成为BGP对等体后,它们并不会一直喋喋不休地发送完整路由表,它们交换的是“增量更新”以及维护关系的报文:
- Update报文:当有新的路由出现、现有路由消失或路由属性发生变化时,才会发送此报文。
- Keepalive报文:周期性发送的“心跳包”,用来告诉对方“我还活着,我们的对等体关系依然有效”。
- Notification报文:如果发现错误(比如参数不匹配、Hold Time超时等),发送此报文并立刻断开BGP对等体连接。
为什么BGP对等体如此重要?
BGP对等体是互联网去中心化、可扩展的基石。
它赋予了网络高度的自治权和控制权,通过BGP丰富的路由属性(如Local Preference、AS_PATH、MED等),网络管理员可以通过配置BGP对等体,精准控制流量的进出路径,实现流量工程和负载均衡。
它提供了极高的冗余性,一个AS可以通过多个BGP对等体连接到多个不同的上游或下游网络,当某条线路断开时,BGP对等体会迅速感知并切换到备用路径,保证互联网不断网。
BGP对等体不是一个具体的硬件,而是一种基于TCP的、在两台路由器之间建立的“路由信息交换外交关系”,正是这些数以万计的BGP对等体相互交织、相互协作,才拼接出了覆盖全球、生生不息的互联网,理解了BGP对等体,你就理解了互联网跨国、跨网通信的第一块敲门砖。

