2.3.3 网关与路由基础配置
网关与路由基础配置#
网关是主机访问非本地网段的出口,路由表决定数据包转发路径。本节以单网卡与多网卡场景为例,提供原理草图、完整命令流程、持久化配置、排错与练习。
原理草图:默认网关与静态路由的转发路径#
1. 查看当前网关与路由表(带解释)#
# 查看完整路由表
ip route show
# 仅查看默认网关
ip route | grep '^default'
# 旧命令(兼容)
route -n
命令字段解释:
- default via 192.168.1.1 dev eth0 metric 100
- default:默认路由
- via:下一跳网关
- dev:出口网卡
- metric:优先级,数值越小越优先
2. 临时配置默认网关(立即生效、重启失效)#
# 添加默认网关
ip route add default via 192.168.1.1 dev eth0
# 替换默认网关(常用)
ip route replace default via 192.168.1.254 dev eth0
# 删除默认网关
ip route del default
# 验证默认路由是否生效
ip route | grep '^default'
预期效果:
- ip route 中出现 default via 192.168.1.254 dev eth0
- ping 8.8.8.8 可达(前提网关具备外网转发能力)
3. 配置静态路由(临时)#
# 添加到目标网段的静态路由
ip route add 10.10.0.0/16 via 192.168.1.254 dev eth0
# 添加主机路由(/32)
ip route add 10.10.10.5/32 via 192.168.1.254 dev eth0
# 删除静态路由
ip route del 10.10.0.0/16
验证示例:
# 查看路由匹配
ip route get 10.10.20.8
# 预期输出含:via 192.168.1.254 dev eth0
4. 持久化配置示例(按发行版)#
4.1 NetworkManager(RHEL/CentOS 7+/Rocky/Alma)#
# 设置默认网关
nmcli connection modify eth0 ipv4.gateway 192.168.1.1
# 添加静态路由:目标/掩码,网关,metric
nmcli connection modify eth0 +ipv4.routes "10.10.0.0/16 192.168.1.254 100"
# 应用配置
nmcli connection up eth0
# 验证
ip route | grep -E 'default|10.10.0.0/16'
4.2 传统网络脚本(CentOS 6/部分最小化系统)#
文件路径:/etc/sysconfig/network-scripts/route-eth0
10.10.0.0/16 via 192.168.1.254 dev eth0
接口文件:/etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=192.168.1.1
应用:
systemctl restart network
ip route | grep -E 'default|10.10.0.0/16'
4.3 Ubuntu/Debian(netplan)#
文件路径:/etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
routes:
- to: 10.10.0.0/16
via: 192.168.1.254
metric: 100
应用:
netplan apply
ip route | grep -E 'default|10.10.0.0/16'
5. 多网卡与多网关示例(使用 metric 控制优先级)#
# eth0 走办公出口,优先级高
ip route replace default via 192.168.1.1 dev eth0 metric 100
# eth1 作为备用出口
ip route add default via 10.0.0.1 dev eth1 metric 200
# 验证优先级
ip route show default
注意:
- 同时存在多个默认路由时,以 metric 最小为准
- 多出口更复杂时建议使用策略路由(后续高级章节)
6. 常见问题排查(带命令与预期)#
# 1) 网关不可达
ping -c 3 192.168.1.1
# 2) 目标网段不可达,检查是否匹配静态路由
ip route get 10.10.20.8
# 3) 路由不生效,检查是否有更优匹配
ip route show table main
# 4) 网卡未 up
ip link show eth0
快速诊断思路:
- 先确认本地网卡IP与网关可达
- 再确认路由匹配结果是否指向预期网关
- 若多默认路由,检查 metric 与具体出口
7. 练习(含目标与预期)#
1) 练习一:配置默认网关
- 目标:将默认网关设置为 192.168.1.254
- 操作:
ip route replace default via 192.168.1.254 dev eth0
ip route | grep '^default'
- 预期:显示
default via 192.168.1.254 dev eth0
2) 练习二:为测试网段添加静态路由
- 目标:访问 10.10.0.0/16 走 192.168.1.254
- 操作:
ip route add 10.10.0.0/16 via 192.168.1.254 dev eth0
ip route get 10.10.10.5
- 预期:
ip route get输出包含via 192.168.1.254
3) 练习三:持久化配置
- 目标:重启后路由仍然存在
- 操作:按发行版修改配置文件或 nmcli,重启网络后验证
8. 最佳实践#
- 保持路由表简洁,仅添加必要路由
- 变更前备份配置文件,保留回滚命令
- 生产变更后做全链路验证(网关可达、目标网段可达、应用端口可达)