, последнее обновление:
Quagga, RIPv2 - раздаем маршруты
Однажды мне надоело запускать некий софт для входа в VPN, поэтому я решил перенести этот софт на виртуалку. Конечно же, сразу возникли проблемы с работой с этим VPN, так как маршруты на моем ноутбуке не появлялись. Решение было найдено - раздача маршрутов с помощью ripd из состава Quagga. В сочетании с Mikrotik - связка просто наиудобнейшая и бомбическая.
В этой статье описана более-менее безопасная настройка ripd, безопасность виртуалки и сети в целом - на вашей совести!
Перед конфигурированием и запуском ripd необходимо провести как минимум базовую конфигурацию zebra (без которой никуда - ничего не запустится).
Конфигурация ripd
Файл лежит в /etc/quagga/ripd.conf
в Debian (которую я использую как свою серверную ОС). Вот пример конфига:
hostname ripd
password YOURPASSWORDHEREPLEASECHANGE
router rip
network eth0
neighbor 192.168.0.254
version 2
redistribute kernel
redistribute connected
distribute-list outgoing out ens18
distribute-list incoming in ens18
access-list outgoing permit 10.0.0.0/8
access-list outgoing permit 172.16.0.0/12
access-list outgoing permit 123.45.67.89/32
access-list outgoing permit 123.45.67.90/32
access-list outgoing permit 123.45.67.91/32
access-list incoming deny any
log stdout
Описание параметров:
Параметр | Описание |
---|---|
hostname | Имя хоста для Quagga. Менять не обязательно. |
password | Пароль для подключения к консоли управления через telnet. МЕНЯТЬ ОБЯЗАТЕЛЬНО (даже если вы не будете ее использовать). |
router rip | Включает ripd. |
network | Задает интерфейс, на котором мы слушаем обновления с других маршрутизаторов и куда отправляем свои обновления. В примере - работаем с интерфейсом eth0 . На самом деле тут может быть что угодно, так как влияет на автоматическое включение работы RIP, можно использовать это только для идентификации. |
neighbor | Задаем адрес соседа, с которым общаемся. В примере - 192.168.0.254 . |
redistribute | Что раздаем. В примере - ядерную таблицу маршрутизации и маршруты на подключенные устройства (типа устройств tun/tap, которые используют всякие VPNовские программы). |
distribute-list | Как работаем с таблицами маршрутизации. В примере - принимаем входящие и отправляем исходящее, используя интерфейс ens18 . |
access-list | Задаем список префиксов по направлениям (incoming и outgoing ), которые разрешены (permit ) или запрещены (deny ) к приему/передаче. В примере конечное правило - запрет всех входящих, так как нам надо только раздать маршруты. |
log | Куда логируем. В примере - stdout , но можно указать путь до файла. |