пн, 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