You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker启动后iptables FORWARD设为DROP时VLAN流量无法转发求助

问题:Docker启动后VLAN网段流量无法转发到外网接口

环境与需求

  • Host01:Ubuntu 20.04(内核5.4.0-135-generic),同时作为Docker主机和IP转发网关
  • 转发规则要求:
    • eth_net_0 ↔ eth_inet_1
    • vlan100@eth_net_0(已重命名为eth_net_0.100) ↔ eth_inet_2
  • 接口配置:
    • eth_inet_1:开启NAT/MASQUERADE、DHCP
    • eth_inet_2:静态IP,默认路由0.0.0.0 via 172.16.0.1/24,metric 1000(双外网时eth_inet_1优先)

已完成配置

  • 启用IP转发:/proc/sys/net/ipv4/ip_forward值为1
  • 配置NAT:为两个外网接口添加POSTROUTING MASQUERADE规则
  • iptables配置:默认策略INPUT/FORWARD/OUTPUT为ACCEPT;Docker自动生成DOCKER链;在DOCKER-USER链中添加了接口间转发规则

问题现象

  • FORWARD默认策略为ACCEPT时,所有转发正常
  • Docker启动后自动将-P FORWARD设为DROP,此时:
    • eth_net_0网段(PC02,10.0.0.50/24)流量可正常转发到eth_inet_1/2
    • vlan100网段(PC01,10.100.0.50/24)流量无法转发,ping外网地址失败

排查结果

  • PC01抓包可见ping请求发出,eth_net_0能收到请求,但eth_inet_2无输出
  • 仅连接eth_inet_2时问题依然存在

问题原因与解决方法

1. 完善DOCKER-USER链的转发规则

Docker启动后,所有FORWARD流量会先经过DOCKER-USER链,默认DROP策略下必须显式允许VLAN接口与外网接口的双向转发:

# 允许VLAN接口到eth_inet_2的正向转发
iptables -A DOCKER-USER -i eth_net_0.100 -o eth_inet_2 -j ACCEPT
# 允许eth_inet_2到VLAN接口的反向转发(回应包)
iptables -A DOCKER-USER -i eth_inet_2 -o eth_net_0.100 -j ACCEPT

# 可选:若需要VLAN网段在eth_inet_2故障时切换到eth_inet_1,添加以下规则
iptables -A DOCKER-USER -i eth_net_0.100 -o eth_inet_1 -j ACCEPT
iptables -A DOCKER-USER -i eth_inet_1 -o eth_net_0.100 -j ACCEPT

保存规则确保重启后生效:

iptables-save > /etc/iptables/rules.v4

2. 关闭反向路径过滤(rp_filter)

VLAN接口默认的rp_filter(严格反向路由检查)会导致多外网场景下流量被内核丢弃,修改sysctl配置:
编辑/etc/sysctl.d/99-custom.conf,添加:

net.ipv4.conf.eth_net_0.100.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

生效配置:

sysctl -p /etc/sysctl.d/99-custom.conf

3. 确认VLAN网段的路由规则

检查VLAN网段流量是否能正确路由到eth_inet_2:

ip route get 192.168.0.1 from 10.100.0.50

若输出的出口不是eth_inet_2,添加静态路由策略:
在netplan配置文件中补充:

network:
  ethernets:
    eth_inet_2:
      routes:
        - to: 0.0.0.0/0
          via: 172.16.0.1
          metric: 1000
          table: 100
      routing-policy:
        - from: 10.100.0.0/24
          table: 100

应用配置:

netplan apply

内容的提问来源于stack exchange,提问作者HiLTastic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:45:31