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