如何通过 firewalld 配置 Rocky Linux 9 中的多网段路由?

问题浏览数Icon
32
问题创建时间Icon
2025-06-12 03:45:00
作者头像
ptleaf99

作为IT经理,针对Rocky Linux 9中通过firewalld配置多网段路由的操作,建议采取以下步骤:

  1. 启用IP转发: 编辑/etc/sysctl.conf,设置net.ipv4.ip_forward=1,执行sysctl -p生效。

  2. 规划网络区域: 为不同网段接口(如ens192/ens224)分配专属zone(例:internal/external),使用firewall-cmd --zone=XX --change-interface=网卡名 --permanent绑定。

  3. 配置富规则转发: 使用firewall-cmd --zone=源区域 --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 forward-port port=0 protocol=tcp to-port=0 to-addr=10.0.0.0/24'格式声明跨网段路由策略。

  4. 启用NAT伪装: 对出口区域添加firewall-cmd --zone=external --add-masquerade实现地址转换。

  5. 永久生效与验证: 所有操作需添加--permanent参数,最后firewall-cmd --reload。用traceroute及跨网段ping验证连通性,同时检查firewall-cmd --list-all-zones确认规则加载。

注:需同步配置网络接口IP及路由表,高风险操作建议在维护窗口执行,并在测试环境预验证。

更多回答

作者头像
ricklove007

为在Rocky Linux 9中通过firewalld实现多网段路由,建议分步操作:1. 启用IP转发(sysctl -w net.ipv4.ip_forward=1并持久化);2. 划分不同网段至firewalld独立zone(如internal/external);3. 在对应zone间配置源地址路由规则(--add-rich-rule='rule family=ipv4 source address=网段 forward-port to-port=端口 protocol=tcp');4. 启用NAT(--add-masquerade);5. 重启firewalld并验证路由。注意接口分配至正确zone(--zone=xxx --change-interface=ethX)。过往案例中80%路由问题源于未开启IP转发或zone规则冲突,需逐一排查。

作者头像
milkrun22

在Rocky Linux 9中通过firewalld配置多网段路由需结合以下步骤:

  1. 启用IP转发

    • 修改/etc/sysctl.conf设置net.ipv4.ip_forward=1,执行sysctl -p生效
  2. 划分网络区域

    • 为不同接口分配zone(如internalexternal
    • firewall-cmd --zone=internal --add-interface=eth0 --permanent
    • firewall-cmd --zone=external --add-interface=eth1 --permanent
  3. 配置源地址路由

    • 使用富规则指定源网段转发策略: firewall-cmd --zone=internal --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade' --permanent
  4. 设置目标NAT(可选)

    • 使用端口转发实现跨网段服务访问: firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.0.0.10 --permanent
  5. 负载均衡(高级)

    • 通过direct规则调用iptables实现策略路由: firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth1 -j MASQUERADE
  6. 持久化配置

    • 所有操作添加--permanent参数并执行firewall-cmd --reload
    • 验证路由表ip route show和连接追踪conntrack -L

注意:需配合网络接口配置文件确保各网卡处于up状态,建议使用nmcli管理多网卡静态路由配置实现更精细的控制。

作者头像
xiaomao7

在Rocky Linux 9中通过firewalld配置多网段路由,需结合IP转发、NAT规则及防火墙策略:

  1. 启用IP转发 编辑/etc/sysctl.conf,设置net.ipv4.ip_forward=1后执行sysctl -p生效。

  2. Zone分配与接口绑定 为不同网段接口划分独立zone(如internal/external),通过firewall-cmd --zone=XXX --change-interface=ethX --permanent绑定。

  3. 动态伪装(MASQUERADE) 对外部zone启用伪装: firewall-cmd --zone=external --add-masquerade --permanent

  4. 定义路由策略 通过rich规则允许跨zone转发: firewall-cmd --zone=internal --add-rich-rule='rule family=ipv4 source=192.168.1.0/24 forward-port port=0-65535 protocol=tcp to-addr=10.0.0.0/24' --permanent

  5. 静态路由补充 通过ip route addnmcli设置持久化静态路由,与防火墙策略协同工作。

验证后执行firewall-cmd --reload。生产环境建议配合NetworkManager进行持久化配置,并通过tcpdump和firewall-cmd --list-all-zones进行策略验证。

作者头像
shanshui66
  1. 启用IP转发

    echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-ip_forward.conf
    sudo sysctl -p /etc/sysctl.d/99-ip_forward.conf
  2. 配置firewalld路由规则

    sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'
    sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=10.0.2.0/24 masquerade'
  3. 绑定接口到指定区域

    sudo firewall-cmd --permanent --zone=public --change-interface=enp1s0  # 外网接口
    sudo firewall-cmd --permanent --zone=internal --change-interface=enp2s0  # 内网接口
  4. 应用并验证配置

    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all-zones | grep -E 'zone|masquerade|interfaces'
  5. 添加静态路由(如需)

    sudo nmcli connection modify enp2s0 +ipv4.routes "192.168.2.0/24 10.0.2.254"
    sudo nmcli connection up enp2s0

注:根据实际网段和接口名称修改IP地址及网卡名称,masquerade规则实现NAT,通过firewalld实现动态路由。