[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: События с линком Wireguard



пн, 8 авг. 2022 г. в 01:19, Eugene Berdnikov <bd4@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

Reply to: