1. BGP基础回顾:BGP协议原理、AS与IGP概念、BGP路径属性详解
各位同行,咱们今天聊聊BGP的基础。说实话,BGP这东西,你光看RFC文档是学不会的。我做了十几年网络,踩过的坑比走过的桥还多。今天就把这些干货掏出来,咱们一起捋一捋。
1.1 BGP协议原理:到底在干什么?
BGP,全称是Border Gateway Protocol,边界网关协议。说白了,它就是互联网的「交通警察」。你想想看,全球几十万个自治系统(AS)要互相通信,总得有个规则吧?BGP就是干这个的。
它的核心原理其实就一句话:交换可达性信息。每个AS把自己知道的路由告诉邻居,邻居再告诉邻居的邻居,最后整个互联网的路由表就拼出来了。
关键点:BGP不是找最短路径,而是找「最佳路径」。这个「最佳」由策略决定,不是由距离决定。我在项目中遇到过客户非要绕半个地球走某条链路,就是因为政治原因——嗯,BGP就是这么灵活,也这么复杂。
1.2 AS与IGP概念:两个世界的语言
咱们先搞清楚两个概念:AS(自治系统)和IGP(内部网关协议)。
AS,就是一个独立管理的网络集合。每个AS有一个唯一的16位或32位编号。比如你家公司申请了一个AS号,那你在互联网上就有了「身份证」。
IGP,是AS内部用的路由协议,比如OSPF、IS-IS。IGP只管内部怎么走,不管外面的事。
那BGP和IGP是什么关系?我打个比方:
- IGP就像公司内部的办公流程——谁找谁审批,走哪个走廊
- BGP就像公司之间的商务合作——签合同、谈价格、定条款
两者各司其职,但必须配合好。我曾经见过一个案例,IGP收敛慢,导致BGP路由黑洞——那叫一个惨,全网断了两小时。
我的习惯:在生产环境里,我会把IGP的metric调得比BGP的优先级高。这样内部流量走IGP,外部流量走BGP,互不干扰。你试试看,效果立竿见影。
1.3 BGP路径属性详解:选路的「投票机制」
BGP选路,靠的就是路径属性。每个属性就像一张选票,权重不同。我整理了一张表,你一看就明白:
| 属性名称 | 类型 | 作用 | 我的经验 |
|---|---|---|---|
| Weight | Cisco私有 | 本地优先级,越高越优先 | 我常用它做出口选路,简单粗暴 |
| Local Preference | 公认自决 | AS内传播,越高越优先 | 适合做AS内统一策略 |
| AS Path | 公认必遵 | 路径长度,越短越优先 | 注意AS Path prepend可以「骗」选路 |
| MED | 可选非传递 | 告诉邻居「走我这边更近」 | 多出口场景下很实用 |
| Next Hop | 公认必遵 | 下一跳IP地址 | IGP必须可达,否则路由无效 |
| Community | 可选传递 | 打标签,方便策略控制 | 我强烈建议你用,运维神器 |
选路顺序是这样的:
- Weight(最高优先)
- Local Preference
- 本地生成路由(network/aggregate)
- AS Path长度
- Origin类型(IGP < EGP < Incomplete)
- MED
- EBGP > IBGP
- 下一跳IGP metric
- ... 后面还有几条,但前面这些已经够用了
避坑指南:我曾经遇到过一个问题——两台路由器都收到了同一条路由,但选路结果不一样。查了半天,发现是Weight没配一致。记住:Weight是本地有效的,不会传给邻居。如果你想让整个AS统一选路,用Local Preference。
1.4 核心逻辑:一张图看懂BGP选路
下面这张SVG图,是我自己画的。它把BGP选路的整个流程串起来了。你盯着看两分钟,比看十页文档都管用。
1.5 实战中的小技巧
说了这么多理论,来点实在的。我平时排查BGP问题,就靠这几招:
- show ip bgp summary —— 先看邻居状态,Established才算正常
- show ip bgp —— 看路由表,注意>号表示最优路径
- show ip bgp x.x.x.x —— 看某条路由的详细属性,所有选路依据都在里面
- debug ip bgp updates —— 慎用!生产环境别开,流量大的时候CPU直接爆掉
我的建议:刚开始学BGP,别急着配策略。先把基础选路逻辑搞明白。你可以在模拟器里搭两个AS,互相宣告几条路由,然后用show命令看选路结果。动手试一遍,比看十遍书都强。
好了,BGP的基础就聊到这儿。记住:BGP不是洪水猛兽,它就是个选路工具。你掌握了它的脾气,它就能为你所用。下一节咱们聊聊更深入的东西——不过那是后话了。