Eugene Berdnikov <b...@protva.ru> wrote: > On Sun, Aug 07, 2022 at 11:01:16PM +0300, Andrey Jr. Melnikov wrote: > > Eugene Berdnikov <b...@protva.ru> wrote: > >
[] > > > Но задача, которая обсуждается здесь, более высокого уровня: что делать, > > > если машрут через туннель недоступен. Сам инкапсулятор этого не знает. > > > И даже если он мониторит состояния линка и может передать его на уровень > > > дивайса (link up/down) или на 3-й уровнь (icmp-unreach и т.п.), варианты > > > вида "переключить маршрут" выходят за рамки p2p-туннеля. Для этого нужен > > > BGP/OSPF/etc, а GRE тут просто низший уровень, который задачу не решает. > > В оригинале автор сомневался, что решение "скриптик с wg show" это не > > профессионально и всё такое, а дальше - понеслось. > В общем, он правильно сомневается: bgpd или ospfd отслеживают события > "link up/down" гораздо надёжнее, чем самопальные скрипты. Хотя бы потому, > что между двумя poll-ами вида "wg show" можно пропустить события > link down-up, скрипт этого не заметит, а вот ядро маршрутик-то через > могнувший дивайс аккуратно удалит. С push-ами через netlink таких пропусков > не будет. У quagga с этим всё вроде нормально, про bird не скажу, но > думаю что у него аналогично. Да нету там этих событий. В выводе wg show можно только гадать по наличию "latest handshake: XX seconds ago" и то, если включены keepalive. Поэтому и нужен протокол, умеющий внутри себя keepalive.