第一章:BGP基础回顾

1.1 BGP协议概述

BGP,全称是边界网关协议。说白了,它就是互联网的「交通警察」。

你想想看,全球有几十万个自治系统(AS),每个AS都有自己的内部网络。这些AS之间怎么交换路由信息?靠的就是BGP。我经常跟团队里的新人说:BGP不是用来做路由的,而是用来做策略的。这句话你品,你细品。

BGP目前有两个版本在运行:

  • BGP-4:支持CIDR(无类域间路由),是目前的主流
  • BGP-4+:扩展支持IPv6,也叫MP-BGP

我记得刚入行那会儿,带我的老工程师跟我说:「BGP学好了,网络这碗饭你就端稳了。」当时我不信,后来踩了无数坑才明白——BGP确实是互联网的基石

核心要点:BGP是路径矢量协议,不是链路状态协议。它不关心链路带宽、延迟,只关心「怎么走」和「让不让走」。

1.2 AS与IGP/EGP概念

先搞清楚几个基本概念。

AS(自治系统):一组由同一管理机构运行的网络集合。每个AS有一个唯一的16位或32位编号。

举个例子:中国电信的AS编号是AS4134,中国联通是AS4837。这些编号就像身份证号,全球唯一。

IGP(内部网关协议):运行在AS内部的路由协议。常见的有:

  • OSPF(开放式最短路径优先)
  • IS-IS(中间系统到中间系统)
  • RIP(路由信息协议,现在基本淘汰了)

EGP(外部网关协议):运行在AS之间的路由协议。BGP就是EGP的唯一代表。

我习惯把IGP比作「小区内部的路」,EGP比作「城市之间的高速路」。你在小区里怎么走都行,但上了高速就得遵守统一的规则。

个人经验:我在项目中遇到过不少次IGP和BGP配合不当导致的问题。记住一条铁律:IGP负责AS内部可达性,BGP负责AS间策略控制。别让BGP去干IGP的活,也别让IGP去干BGP的活。

1.3 BGP路径属性与选路原则

BGP之所以强大,核心在于它的路径属性。每个BGP路由都携带一堆属性,路由器根据这些属性做决策。

先看一张图,帮你理清BGP选路的整体逻辑:

BGP选路决策流程 收到BGP路由 1. 最高权重 (Weight) 2. 最高本地优先级 (Local Pref) 3. 本地起源优先 4. 最短AS_PATH 5. 最低MED值

嗯,这张图展示了BGP选路的前5步。实际上BGP有13条选路规则,但日常工作中最常用的就是前几条。

我来详细说说这些关键属性:

属性名称 类型 作用范围 选路优先级
Weight Cisco私有 本地路由器 第1优先
Local Preference 公认自决 整个AS 第2优先
AS_PATH 公认必遵 全局 第4优先
MED 可选非传递 相邻AS 第5优先
Next Hop 公认必遵 全局 可达性检查

避坑指南:我曾经在项目中犯过一个低级错误——把MED当成全局属性来用。MED只在相邻AS之间传递,不会传到第三个AS。如果你想让策略影响整个路径,用Local Preference才是正解。

1.4 BGP选路原则详解

BGP的选路原则,说白了就是一套「比大小」的游戏。我总结成三步走:

  1. 先看谁更优:Weight越大越优,Local Preference越大越优
  2. 再看谁更短:AS_PATH越短越优
  3. 最后看谁更低:MED越小越优

你可能会问:为什么Weight和Local Preference是越大越好,而MED是越小越好?

嗯,这跟设计初衷有关。Weight和Local Preference是「我主动选谁」,当然越大越优先。MED是「别人告诉我选谁」,越小表示越希望我选它。

我记得有一次帮客户排查路由选路问题。客户说:「为什么我的流量总是走备份链路?」我一看配置,Local Preference设反了——主链路设了50,备份链路设了100。这不就反了吗?

实战技巧:我习惯在配置BGP策略时,先用show ip bgp查看路由表,确认当前选路结果。然后再用show ip bgp x.x.x.x查看具体路由的各个属性值。这样能快速定位问题。

1.5 BGP防劫持的底层逻辑

讲完基础,我们聊聊防劫持。BGP劫持的本质是什么?

说白了,就是有人「撒谎」——他宣称某个IP段属于他的AS,但实际上不是。因为BGP默认信任邻居,所以这个假路由会传播出去。

我见过最典型的劫持场景:

  • 前缀劫持:攻击者宣告一个更具体的路由(比如/24代替/16),流量就被吸走了
  • AS_PATH篡改:攻击者伪造AS_PATH,让路由看起来更优
  • 中间人攻击:攻击者插入自己的AS,截获流量

为什么会这样?因为BGP在设计之初就没考虑安全。它假设所有邻居都是可信的。这在互联网早期没问题,但现在?嗯,你懂的。

核心认知:BGP防劫持不是靠BGP本身,而是靠「外部机制」——RPKI、BGPsec、AS_PATH验证等。这些我会在后续章节详细讲。

好了,第一章就到这里。基础打牢了,后面讲防劫持技术你才能理解为什么需要那些机制。


公众号:蓝海资料掘金营,微信deep3321