Операционная система FreeBSD продолжает пользоваться популярностью за простоту настройки и надёжность. Ровно за тоже самое пользуется популярностью протокол GRE. И даже отсутствие шифрования не является большой преградой: внутри GRE-туннеля можно использовать протоколы с шифрованием, а сам туннель использовать исключительно как транспорт.
С помощью GRE-туннеля можно связать несколько локальных сетей между собой. Далее будет рассмотрена настройка GRE-туннеля и маршрутизации на сервере под управлением FreeBSD.
Начальные условия:
- Сервер под управлением FreeBSD 11.1 с IP-адресом 2.2.2.2;
- Удалённая машина с IP-адресом 1.1.1.1;
- Сети 10.10.0.0/24 и 10.20.0.0/24 за удалённой машиной;
- Необходимо настроить GRE-туннель для доступа в эти сети. Адрес на "нашей" стороне: 172.17.0.1, на удалённой - 172.16.0.1.
Приступаем к настройке. Первым делом надо загрузить модуль ядра для поддержки протокола GRE:
kldload if_gre
Чтобы в дальнейшем модуль загружался автоматически добавим строчку в конфигурацию начальной загрузки:
echo 'if_gre_load="YES"' >> /boot/loader.conf
Далее добавляем в /etc/rc.conf строки:
# Обязательно указываем список клонируемых интерфейсов cloned_interfaces="gre0" # Настройки интерфейса gre0 (интерфейса GRE-туннеля) ifconfig_gre0="inet 172.17.0.1 172.16.0.1 tunnel 2.2.2.2 1.1.1.1" # Список имён маршрутов, которые надо поднять static_routes="net10:gre0 net20:gre0" # Именованные маршруты route_net10="-net 10.10.0.0/24 -iface gre0" route_net20="-net 10.20.0.0/24 -iface gre0"
Тут надо сделать остановку и объяснить одну тонкость: в параметре «static_routes» указываются имена маршрутов, которые надо поднять. Иногда может сложиться ситуация когда добавление маршрутов будет выполнено раньше чем будет поднят соответствующий интерфейс и потому завершится ошибкой.
Чтобы этого избежать нужно к именам маршрутов добавить через двоеточие имена интерфейсов, которые должны быть подняты для корректного добавления этого маршрута. В данном примере как раз описано что маршруты «route_net10» и «route_net20» должны быть добавлены только после поднятия интерфейса «gre0». Поднимем интерфейс:
/etc/rc.d/netif start gre0
Вывод должен выглядеть примерно так:
Created clone interfaces: gre0. Starting Network: gre0. gre0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1476 options=80000<LINKSTATE> tunnel inet 2.2.2.2 --> 1.1.1.1 inet 172.17.0.1 --> 172.16.0.1 netmask 0xffff0000 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> groups: gre add net 10.10.0.0: gateway gre0 add net 10.20.0.0: gateway gre0
Для проверки доступности можно "пропинговать" второй конец тоннеля. Проверить таблицу маршрутизации можно командой:
netstat -nr
На этом всё. Приятной работы!
Anonymous 2018-04-24 08:05:45 (#)
Про это на картинке никаких пояснений,и поэтому из статьи не понятно что это за адреса