@aborouhin

Как использовать полученный посредством OSPF gateway для BGP маршрутов?

Добрый день.

Дано - маленькая SOHO-сеть из 6 площадок (дом, офис, другой дом, сервер в датацентре...) Роутеры на них - или обычные Debian-серверы, или Mikrotik. За каждым из роутеров 1-3 локальных подсетей. Нужна связность всех со всеми. Раньше это решалось единой Wireguard сетью, где все были в пирах у всех. Но в связи с блокировками VPN пришлось заморочиться, разбить единый Wireguard на отдельные тоннели точка-точка, и добавить к этим основным VPN-тоннелям резервные (Amnezia-WG, WG over Cloak). Выживаемость сети в случае пропадания отдельных тоннелей обеспечивает OSPF, через который анонсируются маршруты к локальным подсетям каждой площадки. Если между площадками отвалился приоритетный тоннель (простой Wireguard, ибо он быстрый и стабильный), маршрутизация перекидывается на менее приоритетный (те самые Amnezia-WG или Cloak), если не осталось ни одного прямого тоннеля - то ходим через другую площадку, с которой у обеих сторон связь ещё есть. В общем, тоннелей пришлось завести вагон, но выживаемость сети максимальная. Всё отлично работает.

Дальше больше. Поскольку площадки в разных странах, логично использовать всю эту систему и для обхода географических ограничений (как блокировок, так и установленных самими сайтами). Для этого поднят свой BGP-сервер (bird), который регулярно обновляет списки подсетей из GeoIP-баз и реестра блокировок и раздаёт их роутерам в составе разных BGP communities. BGP используется тупо как способ быстро передавать и вставлять в таблицы маршрутизации сотни тысяч префиксов. Таким образом, роутер в России, например, получает в одном community набор подсетей, заблокированных РКН, и маршрутизирует их через Голландию, в другом - набор турецких подсетей и маршрутизирует их через Турцию. А роутер в Турции получает российские подсети и маршрутизирует их через российский сервер. На роутерах, получающих маршруты по BGP (Mikrotik или тот же Bird), указан filter, который в зависимости от BGP community подставляет gateway.

И вот тут внимательный читатель уже понял проблему :) Пока не было отваливающихся тоннелей и резервных маршрутов, gateway до того самого голландского или российского сервера, турецкого роутера для каждой площадки был всегда один и тот же. Сейчас же в зависимости от того, что отвалится и как отработает OSPF, путь к целевой точке может меняться. Соответственно, надо менять и gateway, который мы указываем в фильтре для входящих BGP маршрутов.
Решение в лоб - написать скрипт, который раз в минуту проверяет состояние линков и соответственно переписывает тот самый BGP фильтр. Но что-то мне подсказывает, что это костыль и должен быть какой-то штатный способ реализовать искомое средствами протокола. Поскольку BGP я использую как тот самый микроскоп для забивания гвоздей :) , то не знаю и 10% его фич.

Подскажите, плиз, в какую сторону можно подумать. В идеале вообще от двух протоколов маршрутизации отказаться бы и использовать или BGP, или OSPF, а не оба, - но насколько я понимаю, BGP не очень подходит для первой задачи (выживаемость сети с множеством дублирующих линков), а OSPF совсем не подходит для второй (распространять толстые пачки внешних маршрутов). В любом случае, благодарю за любые идеи.
  • Вопрос задан
  • 307 просмотров
Пригласить эксперта
Ответы на вопрос 3
martin74ua
@martin74ua Куратор тега Компьютерные сети
Linux administrator
redistribute ospf route-map only-default
ну роутмапу придется написать....
Ответ написан
b1ora
@b1ora
Контакты в профиле
Много воды, пока читаешь - забываешь суть вопроса.
Получить список сетей, затем отдать его в отдельном ospf инстансе, где применить фильтр для подмены шлюза в маршрутах.
Ответ написан
Vigogne
@Vigogne
Вижу, как минимум два варианта решения такой проблемы:
1. С помощью скрипта, отслеживающего изменение текущего GW, и подставляющего измененный в конфиг.
2. Строить eBGP мультихоп, т.е. в качестве GW будет выступать адрес лупбека, а за маршрут до этого лупбека будет отвечать OSPF. Т.о. маршрут до лупбека может динамически меняться в зависимости от ваших реалий, а роутинг с точки зрения BGP меняться не будет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы