我试图build立一个2个以太网接口的Linux桥,不能让它正常工作。 我正在使用Gentoo Linux,并认为这将是相当简单的,但我最终无法获得数据包通过桥梁。 所有这些在Hyper-V下都是虚拟化的,对于任何事情都很重要(但我怀疑它)。
这里是我的configuration。
------ ------------------ -------- ----------- | NUX3 |------------|eth1 BRIDGE eth0|---------| ROUTER |-------/ INTERNET / ------ ------------------ -------- ----------- 192.168.1.195/24 192.168.1.197/24 (br0) 192.168.1.101/24 00:15:5d:00:01:12 00:15:5d:00:01:08 (eth0) 00:15:5d:00:01:03 00:15:5d:00:01:13 (eth1)
#cat /etc/conf.d/net
bridge_br0=( "eth0 eth1" ) config_eth0=( "null" ) config_eth1=( "null" ) config_br0=( "192.168.1.197 netmask 255.255.255.0 brd 192.168.1.255" ) routes_br0=( "default via 192.168.1.101" )
#brctl show
bridge name bridge id STP enabled interfaces br0 8000.00155d000108 no eth0 eth1
#brctl showstp br0
<...> eth0 (1) state forwarding eth1 (2) state forwarding <...>
#cat /etc/sysctl.conf
net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-arptables = 0 net.bridge.bridge-nf-call-iptables = 0
#ifconfig
<...> br0 UP BROADCAST RUNNING MULTICAST inet addr:192.168.1.197 Bcast:192.168.1.255 Mask:255.255.255.0 <...> eth0 UP BROADCAST RUNNING PROMISC MULTICAST <...> eth1 UP BROADCAST RUNNING PROMISC MULTICAST <...>
#brctl showmacs br0
port no mac addr is local? ageing timer 1 00:15:5d:00:01:03 no 1.51 1 00:15:5d:00:01:08 yes 0.00 2 00:15:5d:00:01:12 no 36.22 2 00:15:5d:00:01:13 yes 0.00
BRIDGE可以ping通ROUTER,但不能ping通NUX3,NUX3不能ping任何BRIDGE和ROUTER。 一切似乎都对我很好,但我明显失去了一些东西。 如果有人能指点我,我会很高兴!
谢谢。
主机上的底层networking设备可能没有启用混杂模式。 例如,在VMWare中,如果底层虚拟networking适配器不是+ promisc,那么来宾网桥将会惨败 – 尽pipe它认为它能够进入混杂模式,但它不能。
我从来没有使用过HyperV,但逻辑应该是一样的,如果主机不允许来宾进入混杂模式,网桥不能来回传递数据包,因为网卡只能处理被寻址的帧具体到它。
如果您禁用网桥,您可以ping NUX3和路由器,对吗?
在hyper-vpipe理器中,转至要使用网桥的vm的设置,并在要用作网桥一部分的每个networking接口下启用“允许mac地址欺骗”checkbox。 我正在使用Windows Server 2008r2 SP1。 这就是我所做的工作。 我也使用预装了所有Hyper-V驱动程序的Ubuntu 12.04,但我不认为这很重要。
桥接工作正常。