pavel.odintsov Posted November 26, 2015 (edited) · Report post Всем привет! Хочу поделиться отличной находкой - GoBGP: https://github.com/osrg/gobgp, чудесный BGP демон с API и CLI, которых как раз бесконечно не хватает в quagga/bird/exabgp и прочих. Все работает стабильно, уже почти 3й месяц гоняю в продакшене. Используется для целей быстрого блэкхола на бордере и передачи информации об этом апстриму. Также среди плюшек умеет BGP Flow Spec. Edited November 26, 2015 by pavel.odintsov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vitalvas Posted November 27, 2015 · Report post Можно ли узнать, какое его преимущество перед тем-же bird. Интересует именно распределенный блекхол. Сейчас все собрано через таблицы + мелкий http интерфейс... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted November 27, 2015 · Report post Преимущество на мой взгляд очень мощное - крутая cli тулза для управления: gobgp global rib add 10.33.0.0/24 -a ipv4 И очень простой конфиг: [Global] [Global.GlobalConfig] As = 65001 RouterId = "213.133.111.200" [Neighbors] [[Neighbors.NeighborList]] [Neighbors.NeighborList.NeighborConfig] NeighborAddress = "10.10.10.250" PeerAs = 65001 [Neighbors.NeighborList.AfiSafis] [[Neighbors.NeighborList.AfiSafis.AfiSafiList]] AfiSafiName = "ipv4-unicast" Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted November 28, 2015 · Report post Очередная экзотика. На python или ruby bgpd демона не встречали? :) Преимущество на мой взгляд очень мощное - крутая cli тулза для управления: gobgp global rib add 10.33.0.0/24 -a ipv4 Подсказать, как через vtysh добавить сеть в список для блэкхола? :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted November 28, 2015 · Report post Это будет дольше, потому что оно захочет soft reset, а прямой анонс быстрее в разы. На Python точно есть - ExaBGP. Экзотика - это Quagag и Bird, которые даже flow spec не умеют :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted November 28, 2015 · Report post Это будет дольше, потому что оно захочет soft reset, а прямой анонс быстрее в разы. Быстрее для чего? во многих местах стоят дефолтные таймеры для BGP. Напомнить порядок величин? На Python точно есть - ExaBGP. Еще одна экзотика. Экзотика - это Quagag и Bird, которые даже flow spec не умеют :) А вы соберите статистику. На софт-роутерах quagga лидирует с большим отрывом :) flow spec - нужна специалистам узкого профиля. Большинство админов настраивают BGP по how-to :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted November 29, 2015 · Report post Ну, если кого-то устраивает Quagga... я могу лишь пожалеть :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted November 29, 2015 · Report post Квагга устраивает цисководов ввиду cisco-like CLI и довольно простого конфига. BIRD - хорош своей гибкостью и универсальностью. GoBGP - ИМХО не такой гибкий как BIRD, и не такой разжеванный как квагга. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted November 29, 2015 · Report post Имхо, не особая разжеванность - это нормально для софта, которому полгода от роду. У проекта огромный потенциал. Quagga мертва уже долгие годы, оно не развивается вообще. Bird активнее, но все равно крайне сложен для обращений извне и очень гибкого управления. ExaBGP медленанная и местами очень специфичная. А вот GoBGP написан программистами (хорошими!) для программистов :) Это лично меня очень радует. Как другим - поживем увидим. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted November 29, 2015 · Report post Имхо, не особая разжеванность - это нормально для софта, которому полгода от роду Не в том дело. Quagga = cisco (почти, за исключением мелочей). Потому howto-шек и use cases - завались. С bird-ом, хоть ему уже сколько лет - такого изобилия нет. Bird активнее, но все равно крайне сложен для обращений извне и очень гибкого управления. Ну в общем да, cli ограничивается списком маршрутов, реконфигурацией, проверкой фильтров и включением-отключением протоколов. Хотя для 99% этого хватает. А вот GoBGP написан программистами (хорошими!) для программистов :) Ну не знаю, мне конфиг bird-а кажется более понятным, чем конфиг GoBGP. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted November 29, 2015 · Report post Конфиг даа, сложно называть понятным и удобным :( Но тут другой прикол - можно все настроить по API, запустившись с пустым конфигом или вообще без него. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pppoetest Posted November 30, 2015 · Report post Впервые столкнувшись с динамической маршрутизацией, проштудировав хаутушки в интернетах остановился на bird, как на самом простом и понятном софте для bgp/ospf. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
snvoronkov Posted November 30, 2015 · Report post pavel.odintsov, вот Вы вместо того, чтоб людям экзотику всякую предлагать, запилили-бы нужные плюшки в любой из популярных демонов. :-) // Offtopic on С вашей AS опять SPAM массово попер. // Offtopic off Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted November 30, 2015 (edited) · Report post А жалобу можно забить по https://bill2fast.com/abuse.php ? Мы таких товарищей быстро уму разуму учим :) snvoronkov, добавление кода в Quagga - проще себя застрелить, как по качеству самого кода, так и по части адекватности разработчиков. Форков квагги уже десяток развелось, именно по причине "особенностей" разработчиков :) С Bird все лучше, но они итак многие фичи планируют сделать сами либо уже сделали в мастер бранче. Мне GoBGP больше всего интересен, с ним удобно работать из моего софта :) Edited November 30, 2015 by pavel.odintsov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
SyJet Posted November 30, 2015 · Report post А жалобу можно забить по https://bill2fast.com/abuse.php ? Мы таких товарищей быстро уму разуму учим :) snvoronkov, добавление кода в Quagga - проще себя застрелить, как по качеству самого кода, так и по части адекватности разработчиков. Форков квагги уже десяток развелось, именно по причине "особенностей" разработчиков :) С Bird все лучше, но они итак многие фичи планируют сделать сами либо уже сделали в мастер бранче. Мне GoBGP больше всего интересен, с ним удобно работать из моего софта :) Запилить бы на него ещё klish https://code.google.com/p/klish/ Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vitalvas Posted December 7, 2015 · Report post Работает как и выглядит - довольно интересно. Но вот только с конфигурацией в toml немного промахнулись.... Все хотел спросить по Flow Spec. Возможно ли правила динамически заливать в тот-же junos? (по bgp к примеру) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted December 10, 2015 · Report post Все хотел спросить по Flow Spec. Возможно ли правила динамически заливать в тот-же junos? (по bgp к примеру) Можно, нужно, проверял в продакшене - тщательно :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DemonS Posted December 16, 2015 · Report post Ну, если кого-то устраивает Quagga... я могу лишь пожалеть :) А вот жалеть не надо. Имеем несколько лет стабильной работы. К кваге претензий не возникло. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted December 16, 2015 · Report post Все хотел спросить по Flow Spec. Возможно ли правила динамически заливать в тот-же junos? (по bgp к примеру) Можно, нужно, проверял в продакшене - тщательно :) Могу даже пример дать: gobgp global rib -a ipv4-flowspec add match destination 10.0.0.0/24 source 20.0.0.0/24 then redirect 10:10 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vitalvas Posted December 17, 2015 · Report post В общем на стенде выглядит интересно и само главное динамически. Вот только небольшой бросок камня в его работу. Не нашел как можно перечитать конфиг-файл на лету. Пока пытался настроить то что у меня есть в bird-e, вспоминал квагу и все ее форки не чистым словом.... Вот небольшой кусок того, что хотел повторить. Архитектура связаности - full mesh. template bgp rr_cdn { table master; local as 65301; gateway direct; import filter { if (65300,666) ~ bgp_community then { dest = RTD_BLACKHOLE; bgp_local_pref = 255; accept; } if net ~ [ 10.17.0.0/16{24,32} ] then accept; reject; }; export filter { if net ~ [ 10.17.0.0/16{24,32} ] then accept; if (65300,666) ~ bgp_community then accept; reject; }; } protocol bgp cs2 from rr_cdn { neighbor 10.17.19.5 as 65302; source address 10.17.19.6; } О кваге. Она зарекомендовала себя как стабильное решения. Использовать можно когда серверов несколько и пиров столько-же. Когда парк оборудования вырастает до несколько сотен единиц, а вместе с ними и архитектура - в кваге можно потеряться, пока поймешь что она делает и что нужно доконфигурить... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Sonne Posted February 16, 2016 · Report post 1. Сервер написан на Go. Этот язык изначально заточен на поддержку многопоточности. Теоретически, если его запустить на железе типа Mikrotik CCR c 36 ядрами, то он будет в десятки раз быстрее. И на любом многопроцессороном сервере он будет быстрее любых других продуктов ( GO сейчас примерно в 2 раза медленнее C) 2. Поддерживается несколько форматов конфигов. 3. Есть API через которые можно теоретически запилить парсер любых конфигов. Изначально продукт преднозначен для Роут серверов с сотнями и тысячами пиров. По отзывам, разработка на языке GO примерно в 10 раз быстрее чем на языке C/C++, так что прогресс действительно еще впереди. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
GrandPr1de Posted February 16, 2016 · Report post ну судя по тому что жаба8 уже быстрее чем чистый ASM, а node.js работает с такой же скоростью как с\с++ (ибо написано на с++) то всё ещё впереди Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pavel.odintsov Posted February 16, 2016 · Report post На Микротике - Tilera, крайне специфичная платформа. Под нее Google крайне маловероятно, что сделает порт. Да и оно само по себе довольно быстро. Но это все же control plane, тут можно обойтись без реактивности. А вот это "По отзывам, разработка на языке GO примерно в 10 раз быстрее чем на языке C/C++, так что прогресс действительно еще впереди." - неправда :) У Go быстрый, но неоптимизирующий компилятор и до компиляторов С/С++ и их скорости ему далеко. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pfexec Posted February 16, 2016 · Report post И очень простой конфиг: "простой" - ахахаха, он заставил меня рыдать как сучку :,-( Подсказать, как через vtysh добавить сеть в список для блэкхола? :) ответ прост: квагга забагованный кусок булшита и его не надо использовать. гобгп и ехабгп - это другой класс программ - рут инжекторы же Ж) у них другие задачи и цели, и они просты и изящны. а квагга - это оверкилл, берд тоже пинцет. тем более у них нет нормального апи, а у гобгп есть. бебебе :-Р Ну, если кого-то устраивает Quagga... я могу лишь пожалеть :) если кого-то устраивает квагга, то надо санитаров скорее вызывать, а не жалеть Ж) пусть поциента лечат электрическим током очень-очень долго Ж) pavel.odintsov, вот Вы вместо того, чтоб людям экзотику всякую предлагать, запилили-бы нужные плюшки в любой из популярных демонов. :-) это не нужно. просто рут инжекторы решают другие проблемы чем роутсервера на иксах или софтроутеры. не нужны эти тонны ненужных фич. ваш любимый юнегз-вей же, не ? Все хотел спросить по Flow Spec. Возможно ли правила динамически заливать в тот-же junos? (по bgp к примеру) да, флоуспек умеют все маршрутизаторы J. еще alcatel lucent и вроде чтото в циске аср9к появиться собиралось... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted February 16, 2016 · Report post 1. Сервер написан на Go. Этот язык изначально заточен на поддержку многопоточности. Херня от гугла для написания мелких утилит на скорую руку. Теоретически, если его запустить на железе типа Mikrotik CCR c 36 ядрами, то он будет в десятки раз быстрее. И на любом многопроцессороном сервере он будет быстрее любых других продуктов ( GO сейчас примерно в 2 раза медленнее C) Дадада, только не забывай что там есть сборщик мусора, который иногда фризит процесс и занимается своим грязным делом. А кроме того 2 раза медленнее это на х86 с мегажирнющим кешем и охерительной длинны конвеером, на огрызке с 36 ядрами тебя ждёт масса сюрпризов. Разработка на Visual Basic была в 1000 раз быстрее 17 лет тому назад, чем на сях, так что прогресса нет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...