пн, 8 авг. 2022 г. в 01:19, Eugene Berdnikov <b...@protva.ru>:

>  В общем, он правильно сомневается: bgpd или ospfd отслеживают события
>  "link up/down" гораздо надёжнее, чем самопальные скрипты. Хотя бы потому,
>  что между двумя poll-ами вида "wg show" можно пропустить события
>  link down-up, скрипт этого не заметит, а вот ядро маршрутик-то через
>  могнувший дивайс аккуратно удалит. С push-ами через netlink таких
> пропусков
>  не будет. У quagga с этим всё вроде нормально, про bird не скажу, но
>  думаю что у него аналогично.
>

Мне что-то в голову не приходит, каким образом моя задача может быть решена
с помощью ospfd.

Давайте определим задачу, если вы уже тут собрались придумать решение за
рамками очерченной в исходном вопросе проблемы.

Задача: в некоторой сети за рубежом необходимо сделать так, что трафик на
российские IP заворачивается в туннель, который выныривает на сервере
внутри России, и чтобы всё это не зависело от настроек хостов в этой сети.
Для чего? Для того, чтобы не страдал user experience в отношении российских
сервисов анально отгородившихся от остального мира  - это как многие
государственные сервисы, так и коммерческие (например, Авито). Почему не
заворачивать весь трафик? Out of scope. Так надо сделать.

Сейчас задача решается следующим способом: между роутером в этой сети и
серваком в РФ поднят wireguard-туннель. Пакеты на роутере классифицируются
по destination ip с помощью geoip-модуля iptables или с помощью nftables, и
пакетам присваивается соответствующий fwmark. Далее, работает policy
routing по этому fwmark, который заворачивает весь трафик, кроме пакетов на
адрес российского сервака (он, очевидно, тоже получает такой fwmark), в
туннель.

Проблема: если туннель ложится (причины не обсуждаем сейчас), то
отваливается весь рунет. То есть нужна некоторая активная сущность, которая
будет отключать классификатор пакетов, либо менять правила policy routing.
Я не совсем понимаю, как эту задачу можно решить с помощью ospfd. То есть,
понятно, что можно анонсировать со стороны российского сервера в туннель
маршруты на весь рунет, но как это сделать с т.з. конфигурации - я хз.

-- 
With best regards
  Maksim Dmitrichenko

Ответить