Linux
Linux橋接不轉發數據包
我正在嘗試設置具有 2 個乙太網介面的 Linux 橋接器,但無法使其正常工作。我正在使用 Gentoo Linux,並認為這很容易,但我最終無法讓數據包通過網橋。所有這些都在 Hyper-V 下進行了虛擬化,這對任何事情都很重要(但我對此表示懷疑)。
這是我的配置。
------ ------------------ -------- ----------- | 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)
# 貓 /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 顯示
bridge name bridge id STP enabled interfaces br0 8000.00155d000108 no eth0 eth1
# brctl showstp br0
<...> eth0 (1) state forwarding eth1 (2) state forwarding <...>
# 貓 /etc/sysctl.conf
net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-arptables = 0 net.bridge.bridge-nf-call-iptables = 0
# 如果配置
<...> 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。一切對我來說似乎都很好,但我顯然錯過了一些東西。如果有人能指出我,我會很高興!
謝謝。
主機上的底層網路設備可能沒有啟用混雜模式。例如,在 VMWare 中,如果底層虛擬網路適配器不是 +promisc,那麼來賓網橋將慘遭失敗——即使它認為自己能夠進入混雜模式,但它不能。
我沒用過HyperV,但邏輯應該是一樣的,如果主機不允許guest進入混雜模式,網橋就不能來回傳遞數據包,因為網卡只會處理被定址的幀專門針對它。
如果您禁用網橋,您可以 ping NUX3 和路由器,對嗎?