Linux

Linux橋接不轉發數據包

  • September 17, 2020

我正在嘗試設置具有 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 和路由器,對嗎?

引用自:https://serverfault.com/questions/117788