3、静态路由基础:静态路由配置、默认路由、浮动静态路由、负载均衡
各位同行,今天我们来聊聊静态路由。说实话,这可能是路由技术里最基础、最不起眼的一块。但你别小看它,我在现网里见过太多因为静态路由配错导致的重大故障。说白了,静态路由就像是你给网络设备画的一张地图——你画错了,它就走错了。
3.1 静态路由的基本配置
静态路由,就是管理员手动在路由器上指定的路径。它不会像动态路由那样自己去学,也不会自己去适应网络变化。嗯,这里要注意:静态路由的优先级是最高的,只要配了,设备就会无条件信任。
配置命令其实很简单,我习惯用这个格式:
ip route 目标网络 子网掩码 下一跳地址 [管理距离]
举个例子,假设我们要让R1能访问192.168.2.0/24这个网段,下一跳是R2的接口地址10.0.0.2:
R1(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2
这里有个小细节——下一跳地址。我个人习惯用下一跳IP,而不是出接口。为什么?因为用出接口的话,路由器会认为这是一个直连路由,在某些场景下会引发ARP问题。我在项目中遇到过,有人配了出接口,结果路由器一直发ARP请求,把链路带宽都吃掉了。
ip route 192.168.2.0 255.255.255.0 GigabitEthernet0/0 10.0.0.2。这样既明确了出接口,又指定了下一跳,双重保险。
3.2 默认路由
默认路由,也叫缺省路由。说白了就是——当路由器不知道目标网络怎么走时,就走这条路。它就像是你手机里的“其他”分类,所有没明确归类的流量都往这里扔。
配置命令:
ip route 0.0.0.0 0.0.0.0 下一跳地址
0.0.0.0 0.0.0.0 这个写法,代表所有网络。你想想看,只要路由器查不到更精确的路由,就会匹配这条。
我记得有一次帮客户排查故障,他们的出口路由器上配了默认路由,但就是上不了外网。我一看,下一跳地址写错了——写成了内网网关。这种低级错误,排查起来其实挺费时间的。所以我的建议是:配完默认路由后,一定要用 show ip route 确认一下。
3.3 浮动静态路由
浮动静态路由,这个名字听起来挺玄乎,其实原理很简单——就是给静态路由配一个更大的管理距离,让它变成“备胎”。
正常情况下,主链路走的是管理距离小的路由。一旦主链路断了,备胎路由就会自动顶上。为什么会这样?因为管理距离越大,优先级越低。当主路由失效时,路由器会从路由表中删除它,然后备胎路由就上位了。
配置示例:
! 主链路,管理距离默认1
ip route 192.168.2.0 255.255.255.0 10.0.0.2
! 备份链路,管理距离设为10
ip route 192.168.2.0 255.255.255.0 10.0.1.2 10
这里的管理距离10,比默认的1大,所以平时不会用。但一旦主链路断了,它就会生效。
我曾经在一个数据中心项目里用过这个技术。客户要求主备链路切换时间不超过5秒。我配了浮动静态路由,配合BFD(双向转发检测),切换时间控制在2秒以内。嗯,这里要提醒一下:浮动静态路由本身没有检测机制,它依赖的是接口状态。如果接口没down但链路已经不通了,浮动路由不会切换。所以建议配合BFD或IP SLA使用。
3.4 负载均衡
负载均衡,就是让流量走多条路径。静态路由也能做负载均衡,而且配置起来特别简单——只要配两条去往同一目标网络、管理距离相同的静态路由就行。
举个例子:
ip route 192.168.2.0 255.255.255.0 10.0.0.2
ip route 192.168.2.0 255.255.255.0 10.0.1.2
这两条路由管理距离都是1,路由器会把它们都放进路由表。默认情况下,Cisco设备是按目标IP做哈希的——同一个目标IP的流量会走同一条路径,不同目标IP的流量会分摊到不同路径上。
你想想看,这样做的好处是什么?不会乱序。同一个会话的所有包都走同一条路,不会出现包A走路径1、包B走路径2的情况,避免了TCP乱序重传的问题。
但这里有个坑——如果两条链路的带宽不一样,默认的负载均衡是等价的。比如一条是千兆,一条是百兆,流量还是各分一半。这就不太合理了。我建议用CEF(Cisco快速转发)的per-packet模式,或者用策略路由来做更精细的负载分担。
| 负载均衡方式 | 特点 | 适用场景 |
|---|---|---|
| 基于目标IP(默认) | 同一个目标IP走同一条路径 | 大多数场景,避免乱序 |
| 基于源IP+目标IP | 更均匀的哈希分布 | 流量种类多、源IP分散的场景 |
| per-packet(逐包) | 每个包独立选择路径 | 链路带宽差异大、需要精确分担 |
好了,静态路由的基础就这些。配置不难,但细节很多。我建议你在实验室里多敲几遍,特别是浮动静态路由和负载均衡的切换场景。只有亲手验证过,才能真正理解它的行为。