3、IP RAN关键协议:OSPF协议原理与配置、BGP协议原理与配置、MPLS LDP协议原理与配置
各位好,咱们今天聊聊IP RAN网络里最核心的三个协议。OSPF、BGP、LDP,这三个家伙就像网络设备的“三驾马车”,缺一个都跑不起来。我个人习惯把OSPF比作“内部地图”,BGP是“全球导航”,而LDP则是“隧道挖掘机”。
很多刚入行的兄弟觉得协议难,其实说白了,就是搞清楚“怎么找路”、“怎么选路”、“怎么建隧道”。今天我就把我在现网摸爬滚打的经验,掰开了揉碎了讲给你听。
3.1 OSPF协议原理与配置
OSPF,开放最短路径优先。这名字起得挺直白——就是找最短的路。我在项目中遇到过不少次,OSPF邻居起不来,结果发现是Hello时间配错了,这种低级错误其实挺常见的。
3.1.1 核心原理
OSPF是个链路状态协议。它不像RIP那样靠跳数,而是靠“带宽”算路径。你想想看,一条千兆光纤和一条百兆铜缆,谁快?OSPF会选千兆那条。
- 邻居关系建立:通过Hello报文打招呼。默认10秒发一次,40秒没收到就认为邻居挂了。
- LSDB同步:邻居建立后,互相交换LSA(链路状态通告),形成统一的链路状态数据库。
- SPF计算:每台路由器独立运行SPF算法,算出最短路径树。
关键点:OSPF的区域设计。骨干区域(Area 0)必须连续,非骨干区域必须直连Area 0。我曾经见过一个网络,Area 1和Area 2之间直接连了,结果路由全乱套——这就是典型的“非骨干区域互连”坑。
3.1.2 配置实战
咱们看一个最简单的OSPF配置。假设两台路由器直连,网段是10.0.12.0/24。
# 路由器R1
router ospf 1
router-id 1.1.1.1
network 10.0.12.0 0.0.0.255 area 0
network 192.168.1.0 0.0.0.255 area 0
# 路由器R2
router ospf 1
router-id 2.2.2.2
network 10.0.12.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 0
嗯,这里要注意:router-id一定要手动配,别让设备自动选。自动选的话,万一环回口地址变了,router-id也跟着变,邻居会重新建立,业务就闪断了。
我的小技巧:在IP RAN网络中,我习惯把router-id配成设备的Loopback0地址。这样既好记,又稳定。Loopback地址永远不down,OSPF邻居就不会因为接口抖动而频繁重建。
3.1.3 避坑指南
- MTU不匹配:OSPF邻居卡在ExStart状态,八成是MTU问题。我曾经排查过一个故障,折腾了两小时,最后发现一端MTU是1500,另一端是1492。
- 网络类型不一致:一端配了broadcast,另一端配了point-to-point,邻居能起来,但DR选举会出问题。
- 认证配置错误:OSPF支持明文和MD5认证。密码配错,邻居直接down。我建议用MD5,明文在现网里就是裸奔。
3.2 BGP协议原理与配置
BGP,边界网关协议。这玩意儿是互联网的“交通警察”。OSPF管内部,BGP管外部。在IP RAN里,BGP主要用来传递用户路由和MPLS VPN的路由。
3.2.1 核心原理
BGP和OSPF最大的区别是什么?OSPF是“我告诉你我有什么”,BGP是“我告诉你我该走哪”。BGP的路由携带了很多路径属性,比如AS_PATH、NEXT_HOP、LOCAL_PREF等。
- EBGP:不同AS之间的BGP。AS_PATH会累加。
- IBGP:同一AS内部的BGP。AS_PATH不变,但需要全互联或RR(路由反射器)。
- 选路原则:BGP有13条选路原则。排在第一的是“权重最高”,第二是“LOCAL_PREF最高”。
注意:IBGP要求全互联,否则路由会断。但全互联在设备多的时候不现实,所以要用RR。RR是BGP里的“二传手”,它会把收到的路由反射给其他IBGP邻居。我刚开始学BGP时,RR的反射规则把我绕晕了——记住一句话:RR只反射从EBGP或非客户端IBGP学到的路由。
3.2.2 配置实战
咱们配一个简单的EBGP。R1在AS 100,R2在AS 200。
# 路由器R1
router bgp 100
bgp router-id 1.1.1.1
neighbor 10.0.12.2 remote-as 200
neighbor 10.0.12.2 ebgp-multihop 2
network 192.168.1.0 mask 255.255.255.0
# 路由器R2
router bgp 200
bgp router-id 2.2.2.2
neighbor 10.0.12.1 remote-as 100
neighbor 10.0.12.1 ebgp-multihop 2
network 192.168.2.0 mask 255.255.255.0
这里有个细节:ebgp-multihop。默认EBGP的TTL是1,如果两台设备不是直连,就得配这个。我在项目中遇到过,客户说BGP邻居起不来,我一看拓扑,中间隔了一台交换机,TTL不够用。配了multihop 2,立马好了。
避坑指南:BGP的NEXT_HOP问题。在IBGP中,如果下一跳不可达,路由就不会被安装。解决办法是配next-hop-self,让RR或边界路由器把下一跳改成自己。我曾经因为忘了配这个,导致VPN路由在PE之间传不过去,排查了整整一个下午。
3.2.3 选路策略
BGP的选路,说白了就是“比属性”。常用的策略有:
| 属性 | 作用 | 配置命令 |
|---|---|---|
| Weight | 本地优先级,越高越优先 | neighbor weight |
| LOCAL_PREF | AS内传播,越高越优先 | bgp default local-preference |
| AS_PATH | 路径长度,越短越优先 | ip as-path access-list |
| MED | 告诉邻居“走我这边更好” | route-map set metric |
你想想看,如果两条路都能到同一个目的地,BGP怎么选?先比Weight,再比LOCAL_PREF,然后比AS_PATH长度。我建议你记住前三个就够了,现网里90%的场景用这三个就能搞定。
3.3 MPLS LDP协议原理与配置
LDP,标签分发协议。MPLS的核心就是“标签交换”,而LDP就是负责分发标签的“快递员”。没有LDP,MPLS就是空壳子。
3.3.1 核心原理
LDP的工作流程很简单:
- 发现邻居:通过Hello报文发现直连的LDP邻居。
- 建立会话:TCP连接建立后,交换标签映射。
- 标签分发:为每条路由分配一个标签,并通告给邻居。
说白了,LDP就是给路由贴标签。比如去往192.168.1.0/24的路由,LDP给它贴个标签100。下一跳路由器收到带标签100的报文,就知道该往哪转发。
关键点:LDP的标签分发模式。有DU(下游自主)和DoD(下游按需)两种。华为设备默认用DU模式,也就是主动把标签发给邻居。我在项目中遇到过,有些厂商默认是DoD,结果华为和思科对接时,标签一直发不过来——这就是模式不匹配的问题。
3.3.2 配置实战
LDP的配置其实很简单,前提是OSPF或IGP已经跑通了。
# 全局启用MPLS和LDP
mpls lsr-id 1.1.1.1
mpls ldp
# 接口下启用
interface GigabitEthernet0/0/0
mpls
mpls ldp
嗯,这里要注意:mpls lsr-id必须配,而且建议用Loopback地址。LDP的会话是基于TCP的,lsr-id就是TCP连接的源地址。如果lsr-id不可达,LDP会话就建不起来。
我的经验:LDP会话起不来,90%的原因是IGP路由不通。先ping一下对端的lsr-id,如果ping不通,LDP肯定起不来。我曾经帮一个兄弟排查,他折腾了半天LDP,结果发现OSPF没配好——基础不牢,地动山摇啊。
3.3.3 标签转发过程
咱们看一个完整的标签转发过程。假设R1要发一个报文给R3,路径是R1→R2→R3。
- R1查路由表,发现去往R3的下一跳是R2。R1给报文贴上R2分配的标签(比如100)。
- R2收到带标签100的报文,查LFIB(标签转发信息表),把标签换成200,发给R3。
- R3收到带标签200的报文,查LFIB,发现标签是“弹出”(PHP),就剥掉标签,查IP路由表转发。
这里有个概念叫PHP(次末跳弹出)。说白了,就是最后一跳路由器不查标签了,直接查IP。这样可以减少一次查表,提升转发效率。
注意:LDP默认只为IGP路由分配标签。BGP路由默认不分配标签。在IP RAN的MPLS VPN场景中,BGP路由的标签是由MP-BGP分配的,不是LDP。这个区别一定要搞清楚,否则VPN业务会出问题。
3.4 三个协议的协同
在IP RAN网络中,这三个协议是协同工作的。我画个简单的逻辑图给你看:
- OSPF:打通底层IGP,让所有设备的路由可达。
- LDP:在OSPF的基础上,为每条路由分配标签,建立LSP(标签交换路径)。
- BGP:在LSP之上,传递VPN路由或用户路由,实现业务隔离和互通。
说白了,OSPF是“修路”,LDP是“铺轨道”,BGP是“跑火车”。三者缺一不可。我在项目中遇到过,有人把OSPF配好了,LDP也起来了,但BGP的下一跳不可达,结果VPN业务就是不通。排查到最后,发现是BGP的next-hop-self没配——这就是协议协同没做好。
我的建议:在IP RAN网络开局时,按照“先IGP、再LDP、后BGP”的顺序来配置。每一步都验证通了,再往下走。别想着一步到位,否则出了问题都不知道是哪一层的问题。
好了,今天的内容就到这里。OSPF、BGP、LDP这三个协议,是IP RAN网络的基石。你只要把它们的原理搞懂了,配置熟练了,现网里90%的故障你都能搞定。下一章咱们聊聊MPLS VPN的故障排查,到时候会用到今天讲的知识。