Jump to content
Калькуляторы

BIRD on FreeBSD Отстрел птиц.

За длинные выходные обновился до 7.4-STABLE

Ну и заодно решил попробовать BIRD v1.2.5 из портов, всё собралось без проблем.

 

Просто BGP на два аплинка:

 

log "/var/log/bird/bird.log" { remote, warning, error, auth, fatal, bug };

log stderr { error, fatal, bug};

 

# Override router ID

router id <MySubnet>4.1;

 

# accept our subnets filter

filter my_net {

if (net = <MySubnet>3.0/24 ) || (net = <MySubnet>4.0/23 ) then accept;

else reject;

}

 

# reject bogons filter

filter bogons_net {

if net ~ [ 0.0.0.0/8+, 127.0.0.0/8+, 192.0.2.0/24+, 169.254.0.0/16+, 192.42.172.0/24+, 198.18.0.0/15+, 192.88.99.0/24+, 224.0.0.0/4+, 240.0.0.0/4+, 10.0.0.0/8+, 172.16.0.0/12+, 192.168.0.0/16+ ] then reject;

else accept;

}

 

# Turn on global debugging of all protocols

debug protocols all;

 

protocol kernel {

persist;

scan time 20;

import none;

export all;

}

 

protocol static {

# Fake route for announce our subnets

route <MySubnet>3.0/24 via "lo0";

route <MySubnet>4.0/23 via "lo0";

}

 

protocol direct {

interface "-ng*", "*";

}

 

# BGP peer to UpLink1

protocol bgp UpLink1 {

local as 1234;

neighbor x.x.x.1 as 11111;

source address x.x.x.2;

hold time 30;

path metric 1;

default bgp_med 1;

default bgp_local_pref 900;

export filter my_net;

import filter bogons_net;

}

 

# BGP peer to UpLink2

protocol bgp UpLink2 {

local as 1234;

neighbor y.y.y.66 as 22222;

source address y.y.y.65;

hold time 30;

path metric 1;

default bgp_med 0;

default bgp_local_pref 100;

export filter my_net;

import filter bogons_net;

}

 

# This pseudo-protocol watches all interface up/down events.

protocol device {

scan time 10; # Scan interfaces every 10 seconds

}

 

Всё завелось сразу и проработало... полчаса. :(

 

В логе только это:

<FATAL> Shutdown completed

<FATAL> RT scan 2

 

Запускаешь ещё раз и ещё полчаса работает.

 

Вернулся на старую, добрую Quagga.

С ней никаких проблем нет, до обновления аптайм был >400 дней.

 

Собственно Quagga устраивает, но периодически отжирает дохрена ресурсов, BIRD поэкономнее.

 

Есть у кого идеи на счёт BIRD-а?

 

Из особенностей можно отметить только ~1000 PPPoE интерфейсов.

 

Share this post


Link to post
Share on other sites

Может, просто не стоит делать PPPoE на бордере? :)

Share this post


Link to post
Share on other sites

А по существу?

 

Лошадка то скачет, а вот птица валится.

Условия одинаковые.

Share this post


Link to post
Share on other sites
А по существу?

 

Лошадка то скачет, а вот птица валится.

Условия одинаковые.

Хм.... Bird имеет такое свойство отваливаться, но интересно что в самой кваге стоит модуль "watch", который следит за выполнением процесс.

Пришлось написать скрипт, который бы отлеживал посекундно жив или мертв ли процесс в памяти:

Вот логи работы скрипта:

26.02.2011-11.17.01 : Падение BIRD

01.03.2011-16.51.01 : Падение BIRD

01.03.2011-18.42.01 : Падение BIRD

01.03.2011-18.45.01 : Падение BIRD

02.03.2011-11.54.01 : Падение BIRD

02.03.2011-16.02.01 : Падение BIRD

05.03.2011-17.55.01 : Падение BIRD

10.03.2011-10.05.01 : Падение BIRD

10.03.2011-13.25.01 : Падение BIRD

 

 

Вопрос к DEAC: какую версию кваги вы используете? У меня была Quagga 0.99.17. Но отказался в пользу BIRD. Quagga не совсем корректно работает с OSPF.

 

 

Share this post


Link to post
Share on other sites

А что там некорректно? А то у меня работает уже 5-й год, а оказывается что то не так....

Share this post


Link to post
Share on other sites
Вопрос к DEAC: какую версию кваги вы используете? У меня была Quagga 0.99.17. Но отказался в пользу BIRD. Quagga не совсем корректно работает с OSPF.

Версия последняя, из портов.

OSPF мне не надо.

Share this post


Link to post
Share on other sites
А что там некорректно? А то у меня работает уже 5-й год, а оказывается что то не так....

Читал спеца на одном из форумом инета. Так он говорит, что в последних версиях Quagga разбит протокол OSPF

 

На основе опыта я тоже пришел к этому выводу:

Стоят две системы НАС (Linux и FreeBSD). Подняты quagga c идентичными конфигами. На Linux все работает отлично, а вот фря как-то случайно то анонсирует маршрут, то нет.

Причину так и не нашел. Использовалась Quagga 0.99.17. Может в более ранних версиях это работает. но не пробовал!

Share this post


Link to post
Share on other sites

Меж делом вышел BIRD 1.3.0

 

У кого-то уже летает?

Share this post


Link to post
Share on other sites

Меж делом вышел BIRD 1.3.0

 

У кого-то уже летает?

Как появится в unstable, надо будет пощупать :)

Share this post


Link to post
Share on other sites

Quagga не совсем корректно работает с OSPF.

У меня как раз наоборот, птица срала флудила по 200 метров OSPF-анонсов при любом изменении, чем вгоняла в ребут либо вешала половину L3-свитчей.

Share this post


Link to post
Share on other sites

Уже в портах!

К слову, зашёл,чтобы скачать и почитать NEWS, а там:

Download bird-1.3.1.tar.gz 	bird-1.3.1.tar.gz 	808 KB 	02.05. 2011

:)

Edited by GFORGX

Share this post


Link to post
Share on other sites

Меж делом вышел BIRD 1.3.0

 

У кого-то уже летает?

 

Да, на роут-серверах обновились до данной версии.

Share this post


Link to post
Share on other sites

Меж делом вышел BIRD 1.3.0

 

У кого-то уже летает?

 

Да, на роут-серверах обновились до данной версии.

 

И как оно?

Share this post


Link to post
Share on other sites

Меж делом вышел BIRD 1.3.0

 

У кого-то уже летает?

 

Да, на роут-серверах обновились до данной версии.

 

И как оно?

 

Как и в прошлых релизах, нас стабильность кода полностью устраивает. Правда, потерялся один из минорных патчей под наши специфичные нужды.

 

P.S. Сегодня вышел следующий релиз, .1 на конце. В списке рассылки мини опрос от разработчиков, развитию каких новых фитч уделить наибольшее внимание на взгляд потребителей продукта.

Edited by magr

Share this post


Link to post
Share on other sites

Попробовал 1.3.1, неделю проработало без падений.

Но вылезла другая проблема:

-- после пропадания аплинка(перезагрузка оборудования провайдером) BGP не поднимается. :(

 

В логе выглядит так:

18:50:58 <RMT> UpLink1: Received: Hold timer expired

18:12:15 <RMT> UpLink1: Received: Hold timer expired

18:16:55 <WARN> BGP: Unexpected connect from unknown address x.x.x.1 (port 54603)

18:21:43 <WARN> BGP: Unexpected connect from unknown address x.x.x.1 (port 52067)

 

Опять вернулся к QUAGGA, никаких проблем с пропаданием/появлением аплинков нет.

Share this post


Link to post
Share on other sites

Конфиг здесь: http://forum.nag.ru/forum/index.php?showtopic=64784&st=0

Обсуждение можно продолжить там же, дабы не отвлекаться от темы.

Продолжая: это все очень странно, код в данном случае достаточно простой и не менялся с 1.3.* (см. https://git.nic.cz/redmine/projects/bird/repository/revisions/master/annotate/proto/bgp/bgp.c#L628 )

Фактически там идет перебор всех протоколов и для каждого с типом BGP сравнивается remote address.

То есть, без как минимум sh protocols / sh protocols all нужный_протокол сказать ничего нельзя.

Кстати, там никаких автоматизаций с cli не было? типа birdc 'disable протокол ' или подобного?

Ну и да, в момент 1.3.1 в порту была некая каша на тему не очень правильных патчей.

 

В общем, предлагаю последний релиз попробовать.

Share this post


Link to post
Share on other sites

В общем, предлагаю последний релиз попробовать.

После двух, не слишком удачных попыток, продолжать эксперименты чревато забрасыванием тухлыми яйцами.

Хотелось бы success story, о юзании птицы в боевых условиях, со всевозможными ребутами чего-либо и отсутствием траблов.

Само желание поюзать птицу есть, уж больно она к ресурсам непритязательна.

Edited by Deac

Share this post


Link to post
Share on other sites

В общем, предлагаю последний релиз попробовать.

После двух, не слишком удачных попыток, продолжать эксперименты чревато забрасыванием тухлыми яйцами.

Хотелось бы success story, о юзании птицы в боевых условиях, со всевозможными ребутами чего-либо и отсутствием траблов.

Само желание поюзать птицу есть, уж больно она к ресурсам непритязательна.

 

А у вас 100500 bgp-сессий или ospf-нейборов? Что bird, что quagga, что любой другой демон дин. маршрутизации на производительность форвардинга не влияют. О каких ресурсах идёт речь?

 

Bird сделан для публичных IX-ов с огромным числом пиров, где contol-плейны всяких цисок и подобных могут не справиться.

Share this post


Link to post
Share on other sites

А у вас 100500 bgp-сессий или ospf-нейборов? Что bird, что quagga, что любой другой демон дин. маршрутизации на производительность форвардинга не влияют. О каких ресурсах идёт речь?

У нас просто три fw, было два, но сейчас добавили ещё.

Речь собственно о том, что quagga периодически отжирает до 30% одного из ядер.

bird, в свою очередь, за отжиранием больше чем 15% не замечен.

А ещё там оч. вкусные таблицы.

Share this post


Link to post
Share on other sites

В общем, предлагаю последний релиз попробовать.

После двух, не слишком удачных попыток, продолжать эксперименты чревато забрасыванием тухлыми яйцами.

Хотелось бы success story, о юзании птицы в боевых условиях, со всевозможными ребутами чего-либо и отсутствием траблов.

Само желание поюзать птицу есть, уж больно она к ресурсам непритязательна.

Вот у MSK-IX был success story с bird, как раз в момент их последнего факапа :)

Ну а вообще-то крупные IX-ы используют, криков в рассылке нет.

У меня в паре мест крутится птичка в multi-fib конфигурации уже с год - пара десятков пиров/таблиц, пайпы, фильтры, все хорошо. Нареканий нет никаких

 

Тестили недавно производительность bird как RR (5 FW, 300 пиров) - тоже все замечательно.

Share this post


Link to post
Share on other sites

Ну а вообще-то крупные IX-ы используют, криков в рассылке нет.

Но подробностями то они не делятся, а как известно, "в подробностях - вся соль".

Хорошо бы указывать версию, это новая страница и оч. многие не потрудятся просмотреть предыдущие, что вызовет вопросы.

Share this post


Link to post
Share on other sites

Это да.

Вот, из того что в открытом доступе, например:

 

http://dataix.ru/rus/s/11/looking_glass.html?typ=BGP&router=3&x=19&y=12#

http://dataix.ru/rus/s/11/looking_glass.html?typ=PREFIX&router=2&arg1=213.248.23.202&x=17&y=9#

 

Это 1.3.3+, судя по выводу информации о префиксе (ну, либо люди бекпортировали ряд патчей оттуда, но это сомнительно)

Share this post


Link to post
Share on other sites

Даже здесь:

178.18.224.14        42775 Oct31               0/0                  Active        Socket: Connection refused

Это как понять?

Share this post


Link to post
Share on other sites

Даже здесь:

178.18.224.14        42775 Oct31               0/0                  Active        Socket: Connection refused

Это как понять?

Это значии, что с другой стороны вместо бгп спикера сидит страшный connection refused :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this