路由基础与静态路由
🗺️ 路由基础 (Routing Basics)
“路由 (Routing)”是由两个核心概念组成的:
- 路 (Destination):目的网段,由**前缀 (Prefix)和掩码 (Mask)**组成,例如
172.16.12.0/24或3.3.3.3/32。 - 由 (Outgoing Interface):出接口,即数据包离开设备的物理或逻辑接口。
路由的核心在于路由的可达性:必须确保目标网段可达,且对应的出接口可达。
📋 路由表 (Routing Table)
每个路由器默认都有一个名为 public 的全局公共路由表。所有路由条目都存储在这个表中,设备在转发数据之前必须查询此表以获取指导。
使用命令 display ip routing-table 可以查看当前设备的路由表。
📝 路由表字段深度解析
- Destination/Mask:目的网段及其网络掩码。
- Proto (Protocol):路由协议类型。常见类型包括:
- Direct:直连路由。只要接口配置了IP且状态为UP,就会自动产生。
- Static:静态路由。管理员手工配置。
- 动态路由协议:OSPF、IS-IS、BGP、RIP等。
- Pre (Preference):优先级(管理距离)。不同协议的优先级不同,数值越小优先级越高(类似信任度)。用于在不同协议学习到相同目的网络时进行选路。
- Cost:开销/成本。用于在相同协议学习到相同目的网络的不同路径间进行选路,数值越小越优。
- Flags:标志位。
- D (Download to FIB):表示该路由已下载到转发表 (FIB) 中。RIB(Routing Information Base)是主控板上的路由表,FIB(Forwarding Information Base)是业务板上的转发表,真正指导数据转发的是FIB。
- R (Relay):递归查询 (Recursive Lookup)。如果路由没有直接关联出接口(仅配置了下一跳),需要通过下一跳IP地址再次查询路由表,直到找到关联的出接口为止。
- NextHop:下一跳IP地址。
- Interface:出接口。
⚖️ 路由选路原则
当路由器面对去往同一个目的网段的多条路径时,严格遵循以下选路规则:
- 最长掩码匹配原则:优先选择掩码最长的路由条目。例如查询
3.3.3.3/32时,如果路由表中有3.3.3.0/24和3.0.0.0/8,则24比8长,因此更精确,优先匹配。 - 比较优先级 (Preference):如果是通过不同路由协议学习到的相同网络,比较优先级(外部优先级),数值小者优先。可以手动修改静态或OSPF的优先级来控制选路。如果外部优先级相同,再比较内部优先级。
- 比较开销 (Cost):如果是通过相同路由协议学习到的相同网络,因为Cost算法一致具有可比性,所以比较Cost值,数值小者优先。
- 等价负载分担:如果协议(优先级)相同,Cost值也相同,则形成等价路径,路由器会在这些路径上进行负载均衡。
🛠️ 静态路由 (Static Route)
由管理员手动配置的非直连路由。
💡 静态路由的优缺点
优点:
- 简单:易于理解和配置。
- 高效:直接插入路由表,不需要设备进行复杂的算法计算和周期性更新,不占用额外带宽和CPU资源。
缺点:
- 不灵活:无法自动适应网络拓扑的变更(如链路断开、节点故障)。
- 扩展性差:在大型复杂拓扑中配置繁琐,维护困难。
静态路由配置详解与场景
1. 多路访问网络 (MA链路/以太网)
在以太网环境中,配置静态路由时必须指定下一跳 (NextHop),或者同时指定出接口和下一跳。因为以太网是多路访问网络,仅指定出接口无法完成目的IP的ARP解析(设备不知道该向网络上的哪个MAC发送)。
text
# 推荐配置方式:指定下一跳,需要进行递归查询 (Flag: R)
ip route-static 3.3.3.0 24 172.16.12.2
# 也可以同时指定出接口和下一跳,不需要递归查询 (Flag: D)
ip route-static 3.3.3.0 24 GigabitEthernet0/0/0 172.16.12.2⚠️ 多宿主 vs 单宿主配置建议
- 多宿主/多归属:推荐仅指定下一跳。一旦主接口故障,路由可以自动递归到其他可用接口。
- 单宿主/单归属:如果指定了出接口,一旦该接口故障,路由会立刻从路由表中消失。
2. 点到点网络 (P2P链路/PPP/HDLC)
在PPP等串行链路中,由于没有MAC地址和ARP的概念,网关(下一跳)没有实际解析意义,因此可以直接指定出接口。
text
# 直接指定出接口
ip route-static 3.3.3.0 24 Serial1/0/1🌍 默认路由 (Default Route)
默认路由是一种特殊的静态路由,目的网段和掩码均为 0.0.0.0 0。只要明细路由查询不到,都会走默认网关。
text
ip route-static 0.0.0.0 0 172.16.12.2主要应用场景:
- 访问外部Internet网络。
- 单归属接入(Stub网络)的默认出口。
🔀 浮动静态路由与负载均衡
- 等价负载均衡:配置两条目的网段相同、Cost相同、优先级相同的静态路由。如果一条是以太网,一条是PPP,可能导致低带宽链路拥塞。
- 浮动静态路由 (Floating Static Route):通过调整静态路由的优先级 (Preference) 来实现主备路径的冗余。text
# 主路径,默认优先级60 ip route-static 3.3.3.0 24 172.16.12.2 # 备份路径,优先级改为61。平时不出现在路由表中,主路径失效时才会浮现 ip route-static 3.3.3.0 24 Serial2/0/1 preference 61 - 非等价负载均衡:通过巧妙利用虚拟下一跳和多条递归路由,实现不同带宽链路间的比例负载(例如通过配置多条静态路由指向同一个虚拟IP,再把虚拟IP递归解析到不同物理路径,实现2:1等负载)。
🛡️ 虚拟接口的应用
💡 常见的虚拟接口
- Loopback接口:本地回环接口,逻辑接口。只要不被手动删除或关闭,永远处于UP状态。常用于测试、作为Router ID。
- Null0接口:丢弃接口 (黑洞接口)。所有指向
Null0的流量都会被直接丢弃。常用于:- 防环(例如路由汇总时配置指向Null0的防环路由)。
- 防止安全攻击(将恶意流量指向Null0进行黑洞路由丢弃)。