On Sun, Aug 07, 2022 at 11:01:16PM +0300, Andrey Jr. Melnikov wrote: > Eugene Berdnikov <b...@protva.ru> wrote: > > > Спецификация GRE не регламентирует поведение инкапсулятора, который > > может мониторить состояние туннеля, либо нет, по своему усмотрению. > > Так что вендоры вольны реализовать над GRE любые модели поведения: > > как голый GRE (stateless), так и l2tp (например) со своими таймерами. > Да оно вообще ничего не регламентирует. Как и прохождение через кривые > провайдерские NAT'ы и прочие перелести современных инетрнетов.
В 1994 году об этих современных реалиях можно было лишь гадать... Многие сетевики, насколько я помню, считали что мир пойдёт в сторону технологий source routing, в том же RFC1701 для GRE есть целая пачка заготовок на этот счёт. Но к концу 90х явно стал побеждать привычный нам NAT. Однако явторы GRE не были совсем уж тупы, они также ввели поле "key", которое дало потом возможность делать трекинг коннекций на шлюзе и выходить за NAT. Благодаря этому полю GRE до сих пор полужив. > > Но задача, которая обсуждается здесь, более высокого уровня: что делать, > > если машрут через туннель недоступен. Сам инкапсулятор этого не знает. > > И даже если он мониторит состояния линка и может передать его на уровень > > дивайса (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 не скажу, но думаю что у него аналогично. -- Eugene Berdnikov