互联网<->(wan)BRIDGED_DEVICE(lan)<->ETH_ROUTER<->LAN
问题:
需要通过路由器从 INTERNET 访问 BRIDGED_DEVICE 的 LAN 上的 Web 服务器(BRIDGED_DEVICE 的 Web 服务器无法从 INTERNET 访问,因为它没有公共管理 IP)。
试图:
在 ETH_ROUTER 上创建辅助/别名 WAN 接口(例如,主接口:eth0.1(用于互联网访问),辅助接口:eth0.2(用于访问 BRIDGED_DEVICE 上的 Web 服务器),(无 VLAN)。
- eth0.1有公网IP;
- eth0.2 在 BRIDGED_DEVICE 的子网中有一个静态私有 IP(例如 10.0.XY)。
ETH_ROUTER 上的 Iptables:添加了从 eth0.1 到 eth0.2 的端口转发 (DNAT):
iptables -t nat -I PREROUTING -i eth0.1 -p tcp --dport 80 -j DNAT --to-destination 10.0.X.Y
iptables -t nat -I POSTROUTING -o eth0.2 -s 10.0.X.0/24 -j MASQUERADE
状态防火墙在 FORWARD 链上具有整体丢弃策略,因此:
iptables -I FORWARD -i eth0.1 -d 10.0.X.Y -p tcp --dport 80 -j ACCEPT
可以从 ETH_ROUTER ping 到 BRIDGED_DEVICE,但无法从 Internet 访问 Web 服务器。我看到 DNAT 规则的数据包数量不断增加,但不确定之后它会在 ETH_ROUTER 中消失在哪里。
ETH_ROUTER 是唯一可以配置来实现此目的的设备。
如果熟悉这种情况,请建议我在这里可能遗漏或做错了什么,或者建议调试技术?
答案1
检查桥接设备上的默认网关以及从桥接设备到互联网的转发规则。如果您不关心互联网源 IP,您可以添加从路由器到桥接设备的源 nat。