Linux

只有在橋上執行 tcpdump 時才會轉發數據包

  • September 4, 2015

在嘗試使用 OpenStack 調試網路問題時,我遇到了最奇怪的事情。我正在虛擬機之間進行ping測試。如果我在執行 nova-network 的節點上的網橋介面上執行“tcpdump”,ICMP 請求數據包才會到達目標主機,該節點會轉發數據包。如果我停止在該介面上執行 tcpdump,我將不再看到請求到達主機。

一般來說,在 Linux 網橋介面上執行 tcpdump 如何/為什麼會影響數據包是否被轉發?

一般來說,在 Linux 網橋介面上執行 tcpdump 如何/為什麼會影響數據包是否被轉發?

橋接軟體是否期望介面處於混雜模式,以便允許它接收發送到其他機器的單播數據包?如果是這樣,那麼它可能是錯誤的,因此它要麼沒有打開混雜模式,要麼沒有成功打開,並且預設情況下打開混雜模式的 tcpdump 正在解決這個錯誤。

檢查您的系統上是否正確配置了轉發。

在 Linux 中,這通常涉及設置 sysctl 選項net.ipv4.ip_forwardnet.ipv4.conf.<interface>.forwarding.

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