我正在努力让网桥在 Ubuntu 服务器上以相当简单的设置运行(我认为)。要进行一些防火墙实验室工作,我需要设置三台机器,如下所示:
ALICE (eth0) ----> (eth0) WILLY (eth1) -----> (eth0) BOB
Willy 将成为一座桥梁,接收 eth0 上收到的每个网络数据包并将其传递给 eth1(反之亦然)。
因此我为 Alice 和 Bob 设置了静态 IP 地址(Alice 有 10.0.0.2;Bob 有 10.0.0.3)。
在 Willy 上,我安装了 bridge_utils 包并修改了 /etc/network/interfaces 如下所示:
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 10.0.0.1
netmask 255.255.255.0
bridge_ports eth0 eth1
另外,内核模块 br_netfilter 通过以下方式加载
modprobe br_netfilter
我可以成功地从 ALICE ping 通 WILLY。但我无法从 BOB ping 通 WILLY,也无法从 ALICE ping 通 BOB(反之亦然)。
我尝试了本故障排除指南中的所有方法(http://www.microhowto.info/troubleshooting/troubleshooting_ethernet_bridging_on_linux.html)并且所有这些测试都通过了。特别是当我这样做时,我在 WILLY 上看到了 ALICE 和 BOB 的 MAC 地址
brctl showmacs br0
因此显然网络数据包到达 WILLY,但无论出于什么原因都可以穿过桥。
有什么想法让我缺少什么才能让它工作吗?真不敢相信它这么复杂,所以我一定是从根本上遗漏了一些东西。
非常感谢您的帮助。