4、路由协议实战:静态路由配置、RIP协议原理与部署、OSPF协议基础与单区域配置
路由协议这东西,说白了就是让路由器之间互相“打招呼”,告诉对方自己知道哪些网段。你想想看,如果每台路由器都只靠自己,那它只能看到直连的网络,数据包根本出不了门。
我刚开始接触路由的时候,总觉得静态路由太原始,动态协议又太复杂。后来在项目里吃过亏才明白——没有最好的协议,只有最合适的方案。今天咱们就把静态路由、RIP、OSPF这三兄弟挨个捋一遍。
本章核心脉络:从手动配置到自动学习,从距离矢量到链路状态,一步步理解路由协议的设计演进。
4.1 静态路由配置——最原始也最可靠
静态路由,就是管理员用手一条一条敲进去的路由条目。路由器不会主动去学,也不会自动更新。听起来很笨?但我在好几个项目里都发现,静态路由往往是排障时的救命稻草。
我的习惯:只要网络规模不超过10台路由器,我首选静态路由。简单、可控、不出幺蛾子。
4.1.1 配置语法
不同厂商的命令略有差异,但核心逻辑都一样——告诉路由器:去某个网段,下一跳是谁。
# Cisco / 华为通用格式
ip route 目标网络 子网掩码 下一跳地址
# 示例:去往 192.168.10.0/24 网络,下一跳是 10.0.0.2
ip route 192.168.10.0 255.255.255.0 10.0.0.2
# 华为设备也支持出接口写法
ip route-static 192.168.10.0 255.255.255.0 GigabitEthernet0/0/1
4.1.2 默认路由
有一种特殊的静态路由叫默认路由,它匹配所有目标。我经常把它用在出口路由器上——所有不知道往哪发的流量,统统扔给运营商。
# 默认路由写法
ip route 0.0.0.0 0.0.0.0 10.0.0.1
# 华为
ip route-static 0.0.0.0 0.0.0.0 10.0.0.1
我曾经踩过的坑:有一次给客户配静态路由,把下一跳IP写成了自己接口的IP。结果路由表里出现了递归查找,数据包在路由器里打转,直接导致全网断连。记住——下一跳必须是直连可达的地址。
4.1.3 静态路由的优缺点
| 优点 | 缺点 |
|---|---|
| 不占用带宽和CPU资源 | 网络变化时需要手动修改 |
| 安全性高,不会被恶意路由欺骗 | 配置量大,容易出错 |
| 故障排查直观 | 无法自动适应链路故障 |
| 适合小型网络和特殊场景 | 大型网络维护成本极高 |
4.2 RIP协议原理与部署——老当益壮的距离矢量
RIP(Routing Information Protocol)是路由协议里的老前辈了。它基于距离矢量算法,说白了就是“听邻居说,然后告诉邻居”。每个路由器只知道到目标有多远(跳数),但不知道网络长什么样。
我记得刚入行时,师傅跟我说:“RIP就是靠口口相传,传得多了,路就通了。” 虽然现在大型网络很少用RIP了,但它的原理是所有动态路由协议的基础,学透了不吃亏。
4.2.1 RIP的核心机制
- 度量标准:跳数(Hop Count),最大15跳,16跳表示不可达
- 更新方式:每30秒广播一次完整路由表
- 防环机制:水平分割、毒性逆转、触发更新、抑制计时器
- 版本:RIPv1(有类)、RIPv2(无类,支持VLSM和认证)
为什么最大只有15跳? 因为RIP设计时假设网络直径不会太大。超过15跳就被认为不可达,这是为了防止路由环路无限传播。我在一个跨省项目中见过有人硬要用RIP,结果中间串了16台路由器,业务全挂——嗯,这就是典型的“协议选型错误”。
4.2.2 RIP配置实战
咱们以RIPv2为例,配置其实很简单:
# Cisco设备配置
router rip
version 2
network 192.168.1.0
network 10.0.0.0
no auto-summary # 关闭自动汇总,支持VLSM
# 查看RIP路由表
show ip route rip
# 查看RIP邻居
show ip rip database
# 华为设备配置
rip 1
version 2
network 192.168.1.0
network 10.0.0.0
# 查看
display rip 1 route
display rip 1 neighbor
4.2.3 RIP的局限性
你想想看,每30秒广播一次完整路由表,这在几十台路由器的网络里会产生多大的流量?而且RIP只认跳数,不管带宽——明明有千兆光纤不走,偏要去挤2M的DDN线路,就因为跳数少一跳。我在项目里见过这种“智能”路由,哭笑不得。
什么时候还用RIP? 我个人觉得,只有在两种场景下会考虑:一是纯IPv4的小型网络(<10台路由器),二是为了兼容某些老旧设备。其他情况,建议直接上OSPF。
4.3 OSPF协议基础与单区域配置——企业网的主力军
OSPF(Open Shortest Path First)是链路状态协议,它跟RIP完全不是一个思路。OSPF不靠“听说”,而是让每台路由器都掌握整个网络的拓扑图,然后用SPF算法自己算最短路径。
我第一次接触OSPF时,被它的LSA、邻居状态机、DR/BDR选举搞得头大。但用顺手之后,你会发现它比RIP聪明太多了。
4.3.1 OSPF的核心概念
| 概念 | 说明 |
|---|---|
| Router ID | 路由器的唯一标识,通常用最大的Loopback接口IP |
| 邻居(Neighbor) | 直连的、配置了OSPF的路由器 |
| 邻接(Adjacency) | 建立了完整LSDB同步关系的邻居 |
| DR/BDR | 广播网络中的指定路由器和备份指定路由器,减少邻接数量 |
| Area | 区域,用于分层设计,减少LSA泛洪范围 |
| Cost | 度量值 = 10^8 / 带宽(bps),带宽越大Cost越小 |
4.3.2 OSPF邻居状态机
OSPF建立邻居关系要经过几个状态,我刚开始学的时候记不住,后来自己画了个流程图:
- Down:初始状态,没收到任何Hello包
- Init:收到Hello包,但自己的Router ID不在对方Hello包中
- 2-Way:双方都在对方的Hello包中看到自己,邻居关系建立
- ExStart:开始协商主从关系,确定DD序列号
- Exchange:交换DD报文,描述各自的LSDB
- Loading:请求缺失的LSA,加载完整信息
- Full:LSDB完全同步,邻接关系建立
我曾经遇到的坑:有一次OSPF邻居卡在2-Way状态死活不进Full。查了半天,发现是两台路由器的接口MTU不一致。OSPF在ExStart阶段会检查MTU,不匹配就卡住。从那以后,我配置OSPF前都会先统一MTU——血的教训。
4.3.3 单区域OSPF配置
单区域OSPF(所有路由器都在Area 0)是最简单的部署方式,适合中小型网络。
# Cisco配置
router ospf 1
router-id 1.1.1.1
network 192.168.1.0 0.0.0.255 area 0
network 10.0.0.0 0.0.0.255 area 0
# 查看OSPF邻居
show ip ospf neighbor
# 查看OSPF路由
show ip route ospf
# 查看LSDB
show ip ospf database
# 华为配置
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 192.168.1.0 0.0.0.255
network 10.0.0.0 0.0.0.255
# 查看
display ospf peer
display ospf routing
display ospf lsdb
4.3.4 OSPF的Cost计算
OSPF的Cost默认是10^8除以接口带宽。举个例子:
| 接口类型 | 带宽 | 默认Cost |
|---|---|---|
| FastEthernet | 100 Mbps | 1 |
| GigabitEthernet | 1000 Mbps | 1(因为10^8/10^9 < 1,取最小值1) |
| Ethernet | 10 Mbps | 10 |
| Serial (T1) | 1.544 Mbps | 64 |
我的建议:如果你的网络里有千兆甚至万兆链路,默认Cost都是1,无法区分优劣。这时候可以手动调整Cost值,或者修改参考带宽(auto-cost reference-bandwidth 10000),让OSPF能更精细地选路。
4.3.5 单区域OSPF的优缺点
- 优点:配置简单,所有路由器都有完整拓扑,收敛快,无环路
- 缺点:LSDB过大,每台路由器都要维护全网LSA,CPU和内存开销大
你想想看,如果网络里有100台路由器,每台都要存储所有LSA并运行SPF算法,那得消耗多少资源?这就是为什么大型网络要划分多区域的原因。不过那是后面章节的内容了,咱们先把单区域玩明白。
总结一下:静态路由适合小规模或特殊场景,RIP适合纯IPv4小型网络但局限性明显,OSPF单区域配置简单、收敛快,是企业网的首选。我个人建议,新项目直接上OSPF,别在RIP上浪费时间。