作为虚拟化架构师,我在实践中通过以下步骤配置和检查默认路由:
一、配置默认路由
-
临时配置:
ip route add default via <网关IP> dev <接口> # 例如:ip route add default via 192.168.1.1 dev eth0
- 关键参数:网关IP需与接口子网匹配,否则路由无效。
-
持久化配置:
- RHEL/CentOS:在
/etc/sysconfig/network-scripts/route-<接口>
中写入:default via 192.168.1.1 dev eth0
- Ubuntu/Debian:在
/etc/netplan/*.yaml
中通过routes
字段定义。
- RHEL/CentOS:在
二、检查默认路由
- 查看路由表:
ip route show | grep '^default' # 输出示例:default via 192.168.1.1 dev eth0 proto static
- 连通性验证:
ping 8.8.8.8 # 测试外网连通性 traceroute 8.8.8.8 # 追踪路由路径
三、实践挑战与解决方案
-
多网关冲突:
- 现象:双网卡均配置默认网关导致路由表混乱。
- 解决:通过
metric
参数设置优先级(值越小优先级越高):ip route add default via 192.168.1.1 dev eth0 metric 100 ip route add default via 10.0.0.1 dev eth1 metric 200
-
配置丢失问题:
- 场景:重启后路由消失,因未持久化。
- 根因:未写入网络配置文件或语法错误(如Ubuntu中缩进错误导致netplan apply失败)。
- 排查:检查
systemd-networkd
或NetworkManager
日志(journalctl -u NetworkManager
)。
-
网关不可达:
- 诊断:
arping -I eth0 192.168.1.1 # 检查网关ARP响应 ip neigh show # 验证网关MAC地址是否存在
- 典型原因:VLAN配置错误或物理链路故障。
- 诊断:
-
策略路由干扰:
- 案例:VPN客户端自动添加默认路由覆盖原有配置。
- 方案:通过
ip rule
定义多路由表,隔离VPN流量:ip rule add from <本地IP> lookup main prio 100 ip rule add fwmark 0x1 lookup vpn prio 200
四、高阶调试技巧
- 模拟路由决策:
ip route get 8.8.8.8 # 显示具体路由选择过程
- MTU问题排查:
ping -M do -s 1472 8.8.8.8 # 测试MTU限制(1472+28=1500)
- 现象:大包传输失败时需检查接口MTU:
ip link show eth0
- 现象:大包传输失败时需检查接口MTU: