2.4.1 Linux路由表与静态路由配置
Linux路由表与静态路由配置#
- 导语与适用场景
-
本节用于理解内核路由决策并配置静态路由,常见于多网段互通、跨网段访问或旁路网关场景。
-
原理草图(内核路由匹配流程)
- 路由表查看与字段解释
- 命令与示例输出
# 查看路由表
ip route
# 示例输出(关键字段)
# default via 192.168.1.1 dev eth0 metric 100
# 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
# 10.10.0.0/16 via 192.168.1.1 dev eth0
-
字段含义
- Destination:目标网段
- Gateway/via:下一跳网关
- Genmask/掩码:匹配范围
- Metric:优先级,值越小越优先
- Iface/dev:出接口
-
静态路由临时配置(即时生效、重启失效)
# 添加网段路由
ip route add 10.10.0.0/16 via 192.168.1.1 dev eth0
# 添加主机路由
ip route add 10.10.10.10/32 via 192.168.1.1 dev eth0
# 删除路由
ip route del 10.10.0.0/16
- 静态路由持久化配置(发行版差异)
# RHEL/CentOS 路由文件(建议与接口名一致)
cat >/etc/sysconfig/network-scripts/route-eth0 <<'EOF'
10.10.0.0/16 via 192.168.1.1 dev eth0
10.20.0.0/16 via 192.168.1.1 dev eth0 metric 50
EOF
# 使配置生效
systemctl restart network
# Debian/Ubuntu(ifupdown)
cat >>/etc/network/interfaces <<'EOF'
auto eth0
iface eth0 inet static
address 192.168.1.10/24
gateway 192.168.1.1
up ip route add 10.10.0.0/16 via 192.168.1.1 dev eth0
EOF
# 使配置生效
systemctl restart networking
- 路由优先级与最长前缀示例
# 先添加广义路由,再添加更精确路由
ip route add 10.10.0.0/16 via 192.168.1.1 dev eth0 metric 100
ip route add 10.10.10.0/24 via 192.168.1.254 dev eth0 metric 200
# 访问 10.10.10.5 会优先匹配 /24(最长前缀优先)
ip route get 10.10.10.5
- 连通性验证与预期效果
# 路由选择验证
ip route get 10.10.10.10
# 预期输出包含:via 192.168.1.1 dev eth0
# 路径追踪
traceroute 10.10.10.10
# 预期第一跳为 192.168.1.1
# 基础连通性检查
ping -c 3 10.10.10.10
- 排错步骤(含命令)
# 1) 检查路由是否存在
ip route | grep -E '10\.10\.0\.0/16|10\.10\.10\.10/32'
# 2) 检查接口状态与IP
ip addr show dev eth0
# 3) 检查网关可达性
ping -c 3 192.168.1.1
# 4) 检查是否被策略路由或防火墙影响
ip rule show
iptables -L -n
- 练习题(含操作步骤)
# 练习1:添加到 172.16.0.0/16 的静态路由并验证
ip route add 172.16.0.0/16 via 192.168.1.1 dev eth0
ip route get 172.16.1.1
# 练习2:模拟删除路由导致不可达,并恢复
ip route del 172.16.0.0/16
ping -c 1 172.16.1.1 || echo "不可达"
ip route add 172.16.0.0/16 via 192.168.1.1 dev eth0
- 注意事项
- 远程变更前备份网络配置,避免断连。
- 生产环境必须做持久化配置并记录变更原因与时间。