TL:DR 如何在不将网络设备添加到 /etc/network/interfaces 中的网桥配置中的情况下使网桥永久存在(重新启动后仍可正常运行)?
你好,我刚刚开始在 ubuntu 14.04 上玩 lxc。
我想要完成的设置是,一个容器带有 haproxy,一个容器带有 nginx。
我将通过 iptables 将外部请求 dnat 发送到 haproxy,然后从那里发送到 nginx。
所有容器都将位于自己的子网中。容器之间的路由/数据包过滤将由主机完成。
到目前为止我已经完成了一半的设置。
我使用 brctl 创建了两个网桥,并向网桥添加了 IP。
br-haproxy: 10.100.0.1/24
br-nginx: 10.100.3.1/24
然后,我通过 lxc 配置将相应的桥添加到相应的容器中。
nginx got br-nginx
haproxy got br-haproxy
然后我在容器中配置了 IP 地址。
haproxy: 10.100.0.10/24 GW 10.100.0.1
nginx: 10.100.3.10/24 GW 10.100.3.1
我现在能够在两个容器之间进行 ping 操作,等等。我现在通过将 iptables 的转发策略设置为拒绝来拒绝访问。我现在可以通过 iptables 控制两个容器之间的流量。
好的,到目前为止一切顺利。我现在想要实现的是,让桥梁永久化。我将bridgeconfig添加到/etc/network/interfaces中,但由于我没有要添加到网桥的网络设备,所以我忽略了这一部分。
当我现在尝试启动桥时,我收到一条错误消息,指出无法找到设备(例如 br-haproxy)。
我发现问题是桥接配置中缺少设备。当我将 eth0 从主机添加到网桥配置时,我可以启动网桥,并且效果非常好。但这不是我需要的。
LXC 在容器启动时动态创建容器中的接口并将其添加到相应的桥接器。
我的问题来了。如何在启动时不向网桥添加网络设备的情况下使网桥永久存在?
希望我以某种方式清楚地说明了问题所在。 :-)
提前致谢。
答案1
bridge_ports none
如果您使用它在启动时工作,而不需要向此接口添加成员,会怎么样?
auto br-haproxy
iface br-haproxy inet static
bridge_ports none
bridge_fd 0
bridge_waitport 0
address 10.100.0.1
netmask 255.255.255.0
bridge_fd
避免waitport
成员端口上线时转发延迟,避免等待端口上线延迟。