所以我有一堆与我的主要以太网设备绑定的桥接接口(em1
怪HP)。它们为我在服务器上运行的各种 LXC 容器提供服务,并且可以轻松地让我从网络上的其他物理设备访问它们。
name id STP interfaces IP
br0 8000.989096db8b8a no em1 10.10.0.2
veth236T4V 10.10.0.15
veth269GNR 10.10.0.16
vethBYBC0Y 10.10.0.17
这些都从主网络 DHCP(分配静态租约)获取 IP。
我想将已在主主机(、、端口 9000、9001)上运行的服务移动em1
到10.10.0.2
第一个 LXC 容器。我已经这样做了,现在可以通过它访问东西10.10.0.15:9000-9001
,但网络上的所有其他东西都希望看到它10.10.0.2:9000-9001
。
传统的端口转发iptables
似乎不起作用。我试过了:
-A PREROUTING -i em1 -p tcp --dport 9000 -j DNAT --to 10.10.0.15:9000
-A PREROUTING -i em1 -p tcp --dport 9001 -j DNAT --to 10.10.0.15:9001
我已经尝试过br0
,em1
但都没有工作。
在凌晨 3 点的冰雹研究中,我发现了大量的东西表明我需要ebtables
,但我以前从未听说过。问题的一半似乎是大多数人使用lxcbrN
带有 LXC 的设备,但我需要外部 IP。我不确定我需要什么。ebtables
文档似乎将“端口”一词定义为其他内容,这无济于事。
我已经超出了我的深度。我再也感觉不到地板了,我开始踩水了。任何人都可以告诉我一条线并确定我需要在桥接接口之间重定向几个端口吗?
你可以使用iptables。以下是建议解决方案的脚本版本。我不知道您可能已经拥有哪些 iptables 规则,因此可能需要进行一些合并工作。