Megas Posted August 16, 2016 Posted August 16, 2016 Добрый день всем. Раньше для резервирования домашнего интернета использовал quagga, которая долго трудилась и справлялась со своими задачами, но вот решил попробовать bird чтобы начать потихоньку его изучать и впоследствии применять в работе. Есть 2 домашних провайдера, 1 отдает внешний канал по Ethernet 1G через dhcp, другой обычный adsl, adsl роутер вещает свой default gw через rip2, меня такой порядок полностью устраивал. Quagga выглядела так: log stdout ! interface eth0 ipv6 nd suppress-ra ! interface eth1 ipv6 nd suppress-ra ! interface eth2 ipv6 nd suppress-ra ! interface lo ! interface tun0 ipv6 nd suppress-ra ! interface tun11 ipv6 nd suppress-ra ! router rip version 2 redistribute connected network 192.168.8.0/24 ! ip forwarding ! line vty ! Bird настроен пока так: timeformat base iso long; timeformat log iso long; timeformat protocol iso long; timeformat route iso long; log "/var/log/bird/bird.log" all; log stderr all; router id 192.168.7.254; protocol kernel { scan time 20; import none; export all; # Actually insert routes into the kernel routing table } protocol direct { interface "eth0", "eth3"; } protocol device { scan time 20; } debug protocols { routes, interfaces }; protocol rip { debug all; interface "eth0" { metric 2; mode multicast; }; import filter { print "importing"; accept; }; export filter { print "exporting"; accept; }; } В данной ситуации в системе видно что роут от adsl приходит на bird, когда выключает 1G eth0, то новый default gw на adsl прилетает становится через несколько секунд, но проблема в том что когда включаешь назад 1G c dhcp, то вот тут адрес на интерфейсе появляется, но вот роут не меняется. На сколько понимаю в голове, то bird должен получать информацию о всех маршрутах в системе и держать оба default gw в своей таблице машрутизации как это делала quagga чтобы в случае падение первого спокойно включать второй и возращать назад. Помогите правильно описать bird чтобы он случае и использовал роуты от eth3 Вставить ник Quote
NiTr0 Posted August 16, 2016 Posted August 16, 2016 какая версия птички? в 1.4 каком-то что ли ЕМНИП была какая-то грабля с назначением/убиранием роутов (т.е. если есть 2 роута и убирается один через один ифейс - убираются оба), не ваш ли случай? в 1.5 этой баги нет. хотя не - вроде не ваш, вы пытаетесь скрестить прописывание статик роута в dhcpd с получением динамики через птичку, пичка может и затирать дефолт при этом... как выйти из положения тут - хз; как вариант - прописывать роуты птичкой с недефолтной метрикой (к примеру 1000). Вставить ник Quote
Megas Posted August 16, 2016 Author Posted August 16, 2016 Версия: ii bird 1.6.0-1 amd64 Internet Routing Daemon Моя проблема в том что птица ничего не знает о eth3 и 1G интерфейсе и все что на нем приходит, соотвественно она не знает что есть второй гейт и у его должна быть другая метрика. и как её решить не понятно. Пробовал отталкиваться от: https://habrahabr.ru/post/199478/ но там везде статика. Вставить ник Quote
NiTr0 Posted August 16, 2016 Posted August 16, 2016 protocol kernel { ... import none; ни на что не наводит?... и опять же - bird'у и не важно знать роут, который получен по дхцп. Вставить ник Quote
Megas Posted August 17, 2016 Author Posted August 17, 2016 NiTr0 , спасибо, но ситуация уже чуть проясняется, если передернуть bird то он нормально видит 2 default route: # birdc show route BIRD 1.6.0 ready. 0.0.0.0/0 via 192.168.8.250 on eth0 [rip1 2016-08-17 21:34:01] * (120/3) via 111.11.33.1 on eth3 [kernel1 2016-08-17 21:36:25] (10) 111.11.33.0/24 dev eth3 [direct1 2016-08-17 21:36:24] * (240) 192.168.8.0/24 dev eth0 [direct1 2016-08-17 21:34:01] * (240) но увы, после того как опустишь и поднимеш eth3, ситуация становится такой: birdc show route BIRD 1.6.0 ready. 0.0.0.0/0 via 192.168.8.250 on eth0 [rip1 2016-08-17 21:34:02] * (120/3) 111.11.33.0/24 dev eth3 [direct1 2016-08-17 21:37:57] * (240) 192.168.8.0/24 dev eth0 [direct1 2016-08-17 21:34:02] * (240) он не хочет изучать default из dhcp в системе. protocol kernel { scan time 20; #import none; import all; export all; # Actually insert routes into the kernel routing table learn; } Вставить ник Quote
NiTr0 Posted August 18, 2016 Posted August 18, 2016 он не хочет изучать default из dhcp в системе. а дефолт-то от dhcp в системе есть? :) или может dhcpcd его не прописывает/bird его затирает? вообще, птичке и не надо знать маршруты из системы, ее задача - впихнуть второй дефолт с метрикой скажем 1000. Вставить ник Quote
SABRE Posted August 19, 2016 Posted August 19, 2016 он не хочет изучать default из dhcp в системе. Опцию learn добавьте. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.