Jump to content
Калькуляторы

̶F̶r̶e̶e̶B̶S̶D̶ ̶9̶.̶2̶,̶ ̶а̶в̶т̶о̶м̶а̶т̶и̶ч̶е̶с̶к̶и̶й̶ ̶с̶т̶а̶р̶т̶ ̶G̶R̶E̶ ̶ч̶е̶р̶е̶з̶ ̶/̶e̶t̶c̶/̶r̶c̶.̶c̶o̶n̶f̶ [НЕ РЕШЕНО, ТЕМА ЗАКРЫТА].

Уважаемые знатоки, приветствую Вас.

 

 

Имеется устаревшая ОС FreeBSD RELEASE 9.2, kernel amd64.

 

Пытаюсь штатным образом настроить автоматический старт GRE-тоннеля через /etc/rc.conf:

 

cloned_interfaces="gre0"

ifconfig_gre0="inet xxx. xxx. xxx.22 xxx. xxx. xxx.21 netmask 255.255.255.252 tunnel 172.0.255.1 172.31.255.241 mtu 1436 up"

 

Тоннель корректно создаётся, но "не поднимается" пока не применить:

#Ifconfig gre0 up

 

Ограничений в IPFIREWALL нет, в ядре установлено "IPFIREWALL_DEFAULT_TO_ACCEPT".

Поддержка сетевых карточек (emX) так же прописана в ядре, чтобы "стартовать первыми" (были проблемы не связанные с GRE).

 

 

При этом, если создать простенький скрипт в /usr/local/etc/rc.d/start_gre0.sh:

#!/bin/sh

/sbin/ifconfig gre0 create

/sbin/ifconfig gre0 tunnel 172.0.255.1 172.31.255.241 mtu 1436

/sbin/ifconfig gre0 inet xxx. xxx. xxx.22 xxx. xxx. xxx.21 netmask 255.255.255.252

 

И стартовать GRE-тоннель через него, а не через /etc/rc.conf - тоннель прекрасно работает

 

Вроде всё так банально должно быть, а вот не выходит "каменный цветок". Скорей всего по невнимательности упускаю какую-то мелкую деталь.

На обновляться продуктивный RELEASE задача не стоит, можно обойтись скриптом. Просто хочется сделать красиво и понять в чём могла быть загвоздка.

 

Возможно кто-то поделиться заведомо рабочим сегментом /etc/rc.conf для старта GRE-тоннеля. ;)

Edited by SUrov_IBM

Share this post


Link to post
Share on other sites

У меня вот такие строчки от хуриката:

gifconfig_gif0="185.44.xx.xx 216.66.84.46" # Choose correct tunnel addrs.
ifconfig_gif0="tunnel 185.44.xx.xx 216.66.84.46"
ifconfig_gif0_ipv6="inet6 2001:470:xxxx:xxxx::2 2001:470:xxxx:xxxx::1 prefixlen 128"

 

Share this post


Link to post
Share on other sites

2 часа назад, SUrov_IBM сказал:

/sbin/ifconfig gre0 tunnel 172.0.255.1 172.31.255.241 mtu 1436

/sbin/ifconfig gre0 inet xxx. xxx. xxx.22 xxx. xxx. xxx.21 netmask 255.255.255.252

 

Вот в этом собака и порылась, из man gre:

 

Цитата

For correct operation, the device needs a route to the destination that is less specific than the one over the tunnel. (Basically, there needs to be a route to the decapsulating host that does not run over the tunnel, as this would be a loop.) If the addresses are ambiguous, doing the ifconfig tunnel step before the ifconfig(8) call to set the IP addresses will help to find a route outside the tunnel.

 

Потому в одну строку может не прокатывать, а в две - работать.

Share this post


Link to post
Share on other sites

Проблема в том, что хотелось запускать GRE туннель по феншую (штатными средствами), т.е. из /etc/rc.conf.

При построении туннеля через скрипт в /usr/local/etc/rc.d/ - всё прекрасно работает.

 

Заметил, если tunnel inet находятся в одной подсети (например 172.0.255.1 --> 172.0.255.5 /29), интерфейс GRE работает (статус RUNNING).

 

Порыскав на просторах Интернет, похоже нашёл описание своей проблемы - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=138407

 

>>If the system did not install default route before the gre interface initialization, setting up tunnel properties will not trigger RUNNING flag on interface.

В моём случае, действительно отсутствует "default route" в момент запуска интерфейса GRE из /etc/rc.conf.

 

Правда указание defaultrouter="xxx. xxx. xxx. xxx " или статического маршрута до tunnel inet IP destination в /etc/rc.conf ситуации не изменило.

 

Кроме варианта обновления системы до stable версии 10 или использования скрипта автоматического запуска интерфейса, решения не нашёл.

 

Задачи обновляться не стоит, GRE туннель запускается через  скрипт в /usr/local/etc/rc.d/.

 

Просто хотелось разобраться, что я делаю не так. Для себя тему считаю закрытой.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.