如何使用 nmcli 在 Rocky Linux 9 中配置路由规则?

问题浏览数Icon
20
问题创建时间Icon
2025-04-06 02:35:00
回答 | 共 4 个
作者头像
milkblue77

在Rocky Linux 9中使用nmcli配置路由规则需遵循以下步骤及注意事项:

  1. 基础路由配置

    • 通过 nmcli con mod <连接名> +ipv4.routes '<目标网段/掩码 via 网关>' 添加静态路由(如 192.168.2.0/24 via 10.0.0.1
    • 执行 nmcli con up <连接名> 激活配置,避免服务重启导致临时规则丢失
  2. 策略路由进阶

    • 使用 ip ruleip route 创建多表路由,例如基于源IP分流流量:
      ip rule add from 192.168.1.100 lookup 100  
      ip route add default via 10.0.0.2 dev eth0 table 100
    • 持久化挑战:需在 /etc/sysconfig/network-scripts/rule-<连接名>route-<连接名> 中写入规则,但NetworkManager可能覆盖手动配置,建议通过nmcli直接集成
  3. nmcli完整示例

    nmcli con mod eth0 \
    +ipv4.routes "192.168.3.0/24 10.0.0.3" \
    +ipv4.routing-rules "priority 100 from 192.168.1.100 table 100"
    nmcli con reload
  4. 典型故障场景

    • 网关不可达:若网关未在同一子网,需先添加ARP记录或调整子网掩码
    • 服务冲突:禁用传统network服务(systemctl disable network)避免与NetworkManager竞争
    • 规则失效:通过 nmcli con show <连接名> | grep -E 'route|rule' 验证配置是否生效
  5. 诊断工具

    • ip route get <目标IP> 验证实际路由路径
    • nft monitor 检查底层netfilter规则是否干扰路由
    • journalctl -u NetworkManager -f 实时追踪服务日志

实践经验表明,复杂网络拓扑中建议将核心路由配置固化在Ansible/Terraform自动化脚本中,并优先使用nmcli而非手动编辑ifcfg文件以确保配置一致性。

作者头像
fastbird88

在Rocky Linux 9中使用nmcli配置路由规则需通过NetworkManager管理路由表,步骤如下:

  1. 查看当前连接

    nmcli connection show

    确定要修改的连接名称(如eth0)。

  2. 添加永久静态路由

    nmcli connection modify <连接名称> +ipv4.routes "192.168.1.0/24 10.0.0.1"

    格式为目标网络 网关,若需指定Metric(优先级):

    nmcli connection modify <连接名称> +ipv4.routes "192.168.1.0/24 10.0.0.1, metric=100"
  3. 激活配置

    nmcli connection down <连接名称> && nmcli connection up <连接名称>

    或重启NetworkManager:

    systemctl restart NetworkManager
  4. 验证路由

    ip route show

    nmcli device show <设备名> | grep IP4.ROUTE

注意:临时路由可通过ip route add命令实现,但重启后失效。建议通过NetworkManager持久化配置。

作者头像
shuiliang33
  1. 检查当前连接

    nmcli con show

    记录需配置的CONNECTION_NAME(如eth0)

  2. 添加静态路由

    nmcli con mod CONNECTION_NAME +ipv4.routes "192.168.1.0/24 10.0.0.1"

    (示例:将192.168.1.0/24网段路由到网关10.0.0.1)

  3. 添加策略路由

    nmcli con mod CONNECTION_NAME +ipv4.routing-rules "priority 100 from 192.168.1.10 table 100"

    (示例:源IP 192.168.1.10使用路由表100)

  4. 应用配置

    nmcli con up CONNECTION_NAME
    systemctl restart NetworkManager
  5. 验证配置

    ip route list
    dmesg | grep -i routing

注:将示例IP/网段、网关、连接名称替换为实际值,策略路由需同步配置对应路由表

作者头像
netbug33
  1. 查看现有网络连接 nmcli con show 记录需配置的CONNECTION_NAME(如enp0s3)

  2. 添加静态路由规则

    nmcli con mod CONNECTION_NAME +ipv4.routes "192.168.2.0/24 192.168.1.1"

    (示例:将192.168.2.0/24网段流量通过192.168.1.1网关路由)

  3. 设置默认网关(可选) nmcli con mod CONNECTION_NAME ipv4.gateway 192.168.1.1

  4. 应用配置变更 nmcli con up CONNECTION_NAME

  5. 验证路由配置 ip route shownmcli con show CONNECTION_NAME | grep routes

▶ 注意事项:

  • 使用CIDR格式指定目标网络
  • 多网卡环境需指定出口网卡参数
  • 永久生效需通过nmcli配置,直接使用ip route add重启后失效