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

问题浏览数Icon
6
问题创建时间Icon
2025-06-12 03:45:00
回答 | 共 2 个
作者头像
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进行策略验证。

作者头像
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规则冲突,需逐一排查。