Linux
IP/GRE 在核心中編譯但 gre0 介面不存在
我試圖通過 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.9
,iproute2
版本是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 句柄來解決。