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/16192.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. 最佳实践#

  • 保持路由表简洁,仅添加必要路由
  • 变更前备份配置文件,保留回滚命令
  • 生产变更后做全链路验证(网关可达、目标网段可达、应用端口可达)