Я пытаюсь создать IP через туннель GRE, но у меня нет такого устройства:
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
Проблема заключалась в модуле демультиплексора GRE, необходимом для ip_gre. Когда ядро загружает GRE, драйвер демультиплексора регистрирует дескриптор протокола 47, поэтому, когда ip_gre.c пытается сделать то же самое, он терпит неудачу, потому что он был зарегистрирован ранее. Это решается изменением ip_gre.c, чтобы не регистрировать дескриптор GRE протокола.