BGP协议的基本概念
BGP(Border Gateway Protocol,边界网关协议)是互联网的核心路由协议,负责在不同自治系统(AS)之间交换路由信息。通俗来说,BGP(Border Gateway Protocol,边界网关协议)是互联网的“导航系统”或“外交官”,负责在不同国家(自治系统)之间交换路由信息,并决定数据包在全球网络中最佳的前进路径。
相关服务:日本站群服务器
核心概念解析
1.自治系统 (AS, Autonomous System)
-
专业解释:一个在统一技术管理下的大型网络集合(比如一个运营商、一个大公司、一所大学)。每个AS都有一个全球唯一的编号,称为AS号(AS Number)。
-
通俗比喻:一个国家。比如,中国移动是一个“国家”(AS),中国电信是另一个“国家”,谷歌也是一个“国家”。每个国家有自己的内部法律和交通规则(即内部路由协议,如OSPF、EIGRP)。
2.BGP Speaker & BGP Peer
-
专业解释:运行BGP协议的路由器称为BGP发言者(BGP Speaker)。两个建立BGP连接的路由器互为BGP对等体(BGP Peer)。
-
通俗比喻:国家的外交大使和外交关系。中国驻美大使和美国驻华大使就是“BGP发言者”。他们之间建立的沟通渠道就是“BGP对等体”关系。
3.BGP Route (路由)
-
专业解释:BGP交换的不是具体的数据包,而是“路由信息”。一条BGP路由包含一个重要信息:要到达某个网络前缀(比如
8.8.8.0/24),下一站应该去哪个AS。 -
通俗比喻:一张国际航线图。这条信息不是在说“怎么从北京海淀区到朝阳区”(这是国内事务,由OSPF等协议负责),而是在说“要从中国去谷歌(AS),可以先坐飞机到日本(AS),然后转机去美国(AS)”。
4.Path Vector (路径矢量)
-
专业解释:这是BGP协议的核心机制。每一条BGP路由都附带它所经过的所有AS的编号列表(称为AS_Path)。这个列表就像是一个路径履历。
-
通俗比喻:护照上的签证页。你的护照上盖了“中国->日本->美国”的签证章。BGP路由器看到这个“护照”(AS_Path),就知道这条路经过了哪些国家。这个设计有两个关键作用:
-
防环:如果一个中国路由器看到一条路由的AS_Path里已经有“中国”,它就知道这条路会把数据包再送回来,形成环路,于是果断丢弃这条路由。
-
选路:通常,路径越短(经过的AS越少),路线越好。
中国 -> 美国的路径通常比中国 -> 欧洲 -> 美国更优。
-
5.NLRI(网络层可达信息):BGP通告的路由条目,比如“192.168.1.0/24可通过AS100到达”。
BGP的工作原理
BGP通过建立TCP连接(端口179)来交换路由信息。路由器之间会互相发送“可达性”消息,比如“我可以通过AS1234到达10.0.0.0/8”。BGP选择最优路径的依据包括:AS路径长度(跳数越少越好)、路由策略(运营商自定义偏好)等。
BGP对等体之间通过以下四种消息类型进行通信:
-
Open (开场白): “你好,邻居!我是AS64596,咱们建立对话吧?”
-
Update (核心信息): “我告诉你一条新路,可以到达
8.8.8.0/24,路径是(64596, 15169)”(意思是先到我AS64596,再到AS15169[Google])。或者“之前告诉你的那条路不通了,请删掉。” -
Keepalive (心跳包): “我还活着,对话继续。” 用来维持邻居关系。
-
Notification (告警): “出错了!我们的对话必须中断!”
BGP的核心特点
- 路径向量协议:BGP记录的是完整的AS路径(例如AS1→AS2→AS3),而不是单纯的距离。这避免了环路问题。
- 增量更新:只有路由变化时才会发送更新,减少带宽占用。
- 策略驱动:运营商可以手动干预路由选择(比如优先走便宜的线路)。
BGP路径选择(决策过程:哪条路最好?)
当一台BGP路由器通过不同“外交官”(邻居)了解到多条可以到达同一目的地的路由时,它不会全部采纳,而是会执行一个非常复杂的最佳路径选择算法。
这个过程可以简化理解为以下优先级(用快递送包裹来比喻):
-
权重 (Weight) - ( Cisco私有属性 )
-
比喻:你自己的个人偏好。你最喜欢顺丰,所以所有快递你都优先选顺丰。这是本地路由器自己的策略,不会告诉别人。
-
-
本地优先级 (Local Preference) - ( 在AS内部传递 )
-
比喻:公司的规定。公司规定所有国际快递必须走DHL。整个公司(AS内部)的所有人都遵守这个规定。
-
-
AS_Path (AS路径长度)
-
比喻:中转次数最少的路线。一条路要经过3个中转站,另一条只经过1个,你肯定选后者。
-
-
起源 (Origin) & MED (多出口鉴别器) 等...
-
如果以上都分不出胜负,还会继续比较更多属性。
-
最终,只有一条最佳路径会被选中,放入路由表,并用来转发数据。同时,它也会把这条最佳路径告诉它的其他BGP邻居。
一个完整的例子:访问Google.com
假设你的宽带属于中国电信(AS4134),你要访问谷歌的服务器(假设在8.8.8.8,属于AS15169)。
-
国内段:你的数据包通过中国电信的内部网络(使用OSPF等协议)被送到了中国电信的“国际出口局”——一台连接着其他“国家”(AS)的BGP路由器。
-
国际导航:这台出口路由器查看它的BGP路由表,发现要到达
8.8.8.0/24(谷歌),有好多条路:-
路径A:
(4134 -> 58453 -> 15169)// 中国电信 -> 中国香港某AS -> 谷歌 -
路径B:
(4134 -> 174 -> 15169)// 中国电信 -> Cogent(美国大型运营商) -> 谷歌 -
路径C:
(4134 -> 3356 -> 15169)// 中国电信 -> Level3(另一个美国大型运营商) -> 谷歌
-
-
做出选择:出口路由器运行BGP算法。它发现路径A的AS_Path最短(只有3跳),于是选择路径A作为最佳路径。
-
上路:数据包被贴上“经由AS58453去往AS15169”的标签,从中国电信的出口发出,送往香港的合作伙伴网络。
-
抵达:香港的网络根据同样的BGP规则,将数据包最终转交给谷歌的AS15169。谷歌服务器回复的数据包也通过类似的BGP路径选择过程,一路返回到你的电脑。
BGP的实际应用
- 多宿主(Multi-homing):企业通过多个ISP接入互联网,BGP能实现流量分流或备份。
- 流量工程:大型运营商用BGP引导流量走特定路径(比如避开拥堵的线路)。
简单例子
假设AS100想访问Google的IP(8.8.8.0/24),BGP会这样工作:
- AS100的ISP(比如AS200)告诉它:“8.8.8.0/24可以通过AS300→AS400(Google)到达”。
- AS100选择最短或最优的路径,将数据包发给AS200。
BGP的潜在问题
- 路由泄露:错误配置导致路由广播到不该去的地方(比如2017年Google流量被误导到俄罗斯)。
- 收敛慢:路由变更可能需要几分钟才能全网同步,期间可能丢包。
如果需要更技术性的细节(比如报文格式或配置命令),可以进一步补充说明。






