Linux

GRE 上的透明乙太網不轉發流量

  • April 12, 2016

我在 Linux 2.6.30.9 上執行,並且一直在嘗試通過 GRE 隧道設置透明乙太網。使用的網路拓撲如下:

在此處輸入圖像描述

我想使用基於 GRE 的透明乙太網橋接 PC1 和 PC2。RouterA 作為RouterB 通過ppp0 連接到網際網路。兩個網際網路連接都是 PPPOE(PPPoEoA PVC)。

所以我這樣做:

在路由器 A (linux 2.6.30.9) 中:

ip link add testgre type gretap remote 193.152.243.206 local 95.121.205.77 ttl 255
brctl addif br0 testgre
ip link set testgre up

在路由器 B (linux 2.6.30.9) 中:

ip link add testgre type gretap remote 95.121.205.77 local 193.152.243.206 ttl 255
brctl addif br0 testgre
ip link set testgre up

一些命令輸出:

在 RouterA 中(RouterB 中的類似輸出):

# ip link show testgre
36: testgre: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1442 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 5f:79:cd:4d:c6:57 brd c1:98:f3:ce:ff:ff

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.5f79cd4dc657       no              eth0.5
                                                       eth0.4
                                                       eth0.3
                                                       eth0.2
                                                       wlan0
                                                       testgre

然後我從 PC1 向 PC2 發出 PING 請求:

ping 192.168.1.33

我在 RouterA 中執行 tcpdump,我看到 ppp0 上的 ARP 請求幀(使用 Wirehark 打開的 pcap 文件):

在此處輸入圖像描述

我在連接到 ppp1 的 RouterB 中執行 tcpdump,我看到 ARP 請求已經到達,但它沒有在 L2 轉發到 PC2。我在 PC2 中看不到 ARP 請求。

我嘗試使用靜態 ARP 條目,但 ICMP 請求有同樣的問題,它沒有轉發到 PC2。

沒有ebtables規則。也不是 iptables 規則(對於 ebtables 和 iptables,預設操作是 ACCEPT)。我應該將 ppp0 添加到橋接介面或類似的東西嗎?歡迎任何建議。

該問題與我在核心中編譯的伺服器故障 IP/GRE 上提出的問題有關,但 gre0 介面不存在

我通過讓 GRE 解復用器驅動gre.c程序在核心中註冊 GRE 協議處理程序解決了第一個問題。但是我發現當 GRE 數據包到達時,GRE 處理程序沒有指向任何ip_gre.c函式(GRE 解復用器驅動程序應該檢查數據包中的 GRE 版本並將儲存桶傳遞給正確的協議處理程序,但在我的情況下它指向 NULL)。

我註釋了gre.c註冊 GRE 協議處理程序的程式碼段,我取消了ip_gre.c註冊 GRE 協議處理程序的程式碼段。現在,當 GRE 數據包到達時,它被很好地解封裝並送出到下一層,現在我可以從 PC1 ping 到 PC2 沒有任何問題。我認為這個問題發生在他們的嵌入式設備中的許多人身上,因為我用Google搜尋錯誤消息 https://www.google.com/search?q=ipgre+init%3A+can%27t+add+protocol when IP GRE 驅動程序無法啟動,因為 GRE 多路分解器驅動程序尚未註冊 GRE 處理程序,並且我發現多個設備出現此錯誤。

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