Linux

IP/GRE 在核心中編譯但 gre0 介面不存在

  • January 9, 2014

我試圖通過 GRE 隧道創建 IP,但我得到沒有這樣的設備:

ip tunnel add gre0 mode gre remote 192.168.152.22 local 192.168.152.21 ttl 255
ioctl: No such device

我在核心中編譯了 GRE 支持:

CONFIG_NET_IPGRE_DEMUX=y
CONFIG_NET_IPGRE=y
CONFIG_NET_IPGRE_BROADCAST=y

儘管我看到所有可用的網路介面(也包括那些尚未升級的網路介面) ,但gre0通過顯示介面時沒有介面。ifconfig -a

我的核心版本是2.6.30.9iproute2版本是2-2.6.33.

編輯: ip tunnel show顯示:

ip tunnel show
ioctl: Invalid argument
tunl0: ip/ip  remote any  local any  ttl inherit  nopmtudisc
sit0: ipv6/ip  remote any  local any  ttl 64  nopmtudisc 6rd-prefix 2002::/16

問題是 ip_gre 所需的 GRE 解復用器模組。當核心載入 GRE 解復用器驅動程序時,會註冊協議 47 句柄,因此當 ip_gre.c 嘗試執行相同操作時,它會失敗,因為它之前已經註冊過。通過修改 ip_gre.c 不註冊協議 GRE 句柄來解決。

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