我们拥有一台拥有生产和管理网络的主机。
使用默认设置,容器使用 lxcbr0。但是,我们找不到此接口的定义位置,也找不到它正在使用我们的哪个网络(管理或生产)。我们还想更改它以配置 DNS 服务器等。
我们知道,理论上,您可以在 /etc/network/interfaces 中设置自己的网桥,但这对我们来说不是一个选择,因为出于某些未知的原因,当我们在任何绑定接口上定义一个简单的网桥时,网络将无法启动(并且没有解决方案)。
所以我们唯一的选择是弄清楚如何操纵 lxcbr0 来完成我们想要做的事情。
需要明确的是,主机有 2 个物理接口绑定用于两个交换机之间的故障转移,每个接口都有 2 个 VLAN 用于生产网络和管理网络。我们需要知道:
- 如何找出 lxcbr0 实际桥接的众多接口中的哪一个
- 如何将其更改为使用不同的。
在此先感谢您的帮助。
更新
我找不到接口定义的原因是它没有被定义为网桥,它似乎是使用 iptables 转发规则实现的。默认规则设置不关心传入网络或源。iptables 在 /etc/init/lxc-net.conf 中设置。所以我想改变这种情况的方法是编辑这个文件(因为在 /etc/network/interfaces 中桥接一对绑定接口不起作用)。
制定的规则如下:
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i lxcbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -i lxcbr0 -p udp -m udp --dport 67 -j ACCEPT
-A FORWARD -o lxcbr0 -j ACCEPT
-A FORWARD -i lxcbr0 -j ACCEPT
在我们的例子中,前 4 条规则没有任何作用,因为默认情况下所有数据包都被接受。显然,53 和 67 是域和 bootps(用于 DNS)
有人能解释一下这两条前向规则到底起什么作用吗?
Ubuntu 14