ytil Posted March 19, 2018 Привет всем. Собственно гугл не помог, поэтому прошу помощи опытных товарищей. Есть сервер доступа freebsd pppoe. Задача была, чтобы одновременно абоненты использовали 2 провайдера, т.е. чтобы была балансировка. Было решено это дело реализовать с помощью множественных таблиц маршрутизации setfib. Всё здорово работает, и очень удобно балансировать всё и переключать, проблема в следующем: этот сервер доступа находится в ospf сети и анонсы от других серверов доступа получает только первая таблица маршрутизации. Вторая же пустая, шлюз+умолчанию да айпишники подключенных абонентов, так вот абоненты которые работают через вторую таблицу не знают ничего о внутренних сервисах, а вручную писать маршруты до этих сервисов я уже устал. Как тут быть? и есть ли способ как-то синхронизировать эти таблицы или чтобы от ospf пополнялась и вторая таблица, чтобы грубо говоря в них только default route отличался?! Share this post Link to post Share on other sites More sharing options...
adron2 Posted March 21, 2018 Похачить квагу? Share this post Link to post Share on other sites More sharing options...
ytil Posted March 21, 2018 1 час назад, adron2 сказал: Похачить квагу? что значит "похачить"? не понимаю Share this post Link to post Share on other sites More sharing options...
ytil Posted March 21, 2018 @adron2 не знаете как? Share this post Link to post Share on other sites More sharing options...
adron2 Posted March 21, 2018 7 часов назад, ytil сказал: @adron2 не знаете как? Я имел ввиду взять исходник кваги и немного его поправить чтобы помимо добавления в main таблицу маршрутизации оно еще добавляло и в нужную вам таблицу. Вторым вариантом я вижу написать небольшую программку на Си которая подключается посредством определенных механизмов к ядру и получает эвенты при изменениях в таблице маршрутизации main. после этого она добавляет/удаляет полученный роут в указанную таблицу. Например в Linux такое умеет делать утилита ip из пакета iproute2: # ip monitor 10.20.30.50 via 195.189.99.193 dev enp2s0 Deleted 10.20.30.50 via 195.189.99.193 dev enp2s0 В этом случае вообще можно тем же Perl-ом парсить вывод `ip monitor` и выполнять соответствующую команду вида: ip route add x.x.x.x/xx via y.y.y.y dev enp2s0 table kkkk Как это делается во фряхе я хз. Но думаю тоже должны быть похожие утилиты. Share this post Link to post Share on other sites More sharing options...
dvb2000 Posted March 22, 2018 Вот, вот, правильно именно так. Как в той поговорке: «Мыши плакали, кололись, но продолжали грызть кактус». Пока пользователь допотопной и глючной кваги полностью не пройдёт этот путь боли и немыслимых извращений, ему не стоит переходить на Bird, который не только нормально поддерживает управление, логические манипуляции и пользование множеством таблиц маршрутизации и требует меньше ресурсов для тех же задач, но ещё и развивается в отличие от мёртвой кваги. Share this post Link to post Share on other sites More sharing options...
pppoetest Posted March 22, 2018 21 час назад, adron2 сказал: Я имел ввиду взять исходник кваги и немного его поправить чтобы помимо добавления в main таблицу маршрутизации оно еще добавляло и в нужную вам таблицу. Вторым вариантом я вижу написать небольшую программку на Си которая подключается посредством определенных механизмов к ядру и получает эвенты при изменениях в таблице маршрутизации main. после этого она добавляет/удаляет полученный роут в указанную таблицу. На что люди не пойдут, чтобы не ставить bird, с его фильтрами, пайпами и прочими поэтессами и преферансом. 9 часов назад, dvb2000 сказал: продолжали грызть кактус Угу. Share this post Link to post Share on other sites More sharing options...
vlad11 Posted March 23, 2018 А потом читаешь конфиги bird таких деятелей и за голову берешься. Ну, каким местом надо было думать, чтоб так извращаться. Наличие фич не означает читабельность и понятность конфига. Share this post Link to post Share on other sites More sharing options...
ytil Posted March 24, 2018 Спасибо за рекомендации Share this post Link to post Share on other sites More sharing options...