В рамках проекта GoBGP (http://osrg.github.io/gobgp/) подготовлена реализация протокола маршрутизации BGP (https://ru.wikipedia.org/wiki/Border_Gateway_Protocol), которую можно использовать для развёртывания серверов и рефлекторов (https://en.wikipedia.org/wiki/Route_reflector) BGP. GoBGP рассчитан на применения на многоядерных системах и активно использует средства распараллеливания операций, предоставляемые языком Go. GoBGP поддерживает такие расширенные возможности, как Route Map (https://github.com/osrg/gobgp/blob/master/docs/sources/polic... MRT (https://github.com/osrg/gobgp/blob/master/docs/sources/mrt.md) (Multi-Threaded Routing Toolkit), BMP (https://github.com/osrg/gobgp/blob/master/docs/sources/bmp.md) (BGP Monitoring Protocol), EVPN (https://github.com/osrg/gobgp/blob/master/docs/sources/evpn.md) (Ethernet VPN), Flowspec (https://github.com/osrg/gobgp/blob/master/docs/sources/flows... (RFC5575) и RPKI (https://github.com/osrg/gobgp/blob/master/docs/sources/rpki.md) (Resource Public Key Infrastructure для верификации автономных систем). Исходные тексты проекта распространяются (https://github.com/osrg/gobgp) под лицензией Apache 2.0.
Для управления предлагается удобный интерфейс командной строки (https://github.com/osrg/gobgp/blob/master/docs/sources/cli-c... позволяющий изменять конфигурацию на лету, без перезапуска фонового процесса. Конфигурация может храниться в форматах toml, json, yaml или hcl. Модель настройки не привязана к особенностям реализаций BGP отдельных поставщиков и основана на рекомендациях IETF. Имеется поддержка (https://github.com/osrg/gobgp/blob/master/docs/sources/grpc-... интерфейса gRPC, который обеспечивает интеграцию GoBGP с приложениями на различных языках программирования, включая Python, Ruby, C++, Node.js и Java.
URL: https://news.ycombinator.com/item?id=11521009
Новость: http://www.opennet.dev/opennews/art.shtml?num=44268
Я правильно понял, что эта реализация примечательна лишь языком?
А давайте напишем про ту единственную реализацию протокола BGP имя автора которой начинается на J...
Дело в том, что quagga почти не развивается, да и само качество кода унылое. bird хорош, но нет многих фишек, фактически bird это стандарт де-факто для IX-ов. openbgpd - тоже малофункционален и почти не используется в реальной жизни.Кроме того, bgp это всё-таки control plane и использование Go вполне допустимо
Вообщем, ещё одна реализация bgp нужна.
> ещё одна реализация bgp нужна.На расте?
на эрланге
Слышите это бульканье? Ах да, это же лиспер что-то пытается говорить, уткнувшись лицом в тарелку с борщом. Вытащите его -- пусть лучше BGP пишет...
и на Свифте
На haskell со стюардессами и тетрисом
вычисляя маршруты факториалом и рядом фибоначчи
> вычисляя маршруты факториалом и рядом фибоначчиГлоба негодуе.
На php
на Javascript
на бейсике же, ну очевидно.
> на бейсике же, ну очевидно.На каком именно?
вижуал конечно, с формочками и уютными ламповыми кнопочками.
Скорее ноги растут от того, что на серверах бгп встечается все реже, железки которые его умеют дешевеют, а сетевки способные более гигабита нет, очевидно, проще купить железку. Впрочем, для конторок с /24 сетью, которым пропускная способность не критична функционала quagga хватает за глаза.Хотелось бы увидить комментарий по объему памяти, который потребляется этой реализацией, для фул-вью относительно старенькие циски уже не тянут по памяти, очень сомнительно, что сервак вытянет.
В общем идея чем-то отдает, как будто из дешевой пластмассы пытаются сделать механические часы, согласен, что протоколы динамической маршрутизации устарели, как и ip4, и ip6 не является достойной заменой, но сабж ИМХО очередное хипстерское "я могу" без привязки к реальным возможностям и потребностям.
GoBGP используют для прокидывания в аппаратные железки фильтрации ддос как пример, он будет работать даже там где нет аппаратного flowspec.
По памяти фул-вью мой телефон вытянет
Фул-вью сервак не вытянет? Вы шутите? Что там вытягивать-то? 586 тысяч маршрутов в ядре?
В тазик с 4гб рамы можно запихать их с десяток, а то и два. Все равно в таблицу маршрутизации пойдет только один, а уж оператива для серверов нынче намного, намного дешевле, чем "специализированные решения" с мостом на морде.
Десктопный хасвелл i7 не заикаясь отроутит 10 гигабит, а если чуть-чуть потюнить его, то и 20, на хороших сетевушках.Memory statistics for zebra:
System allocator statistics:
Total heap allocated: 214 MiB
Holding block headers: 0 bytes
Used small blocks: 0 bytes
Used ordinary blocks: 198 MiB
Free small blocks: 32 bytes
Free ordinary blocks: 16 MiB
Ordinary blocks: 13747
Small blocks: 1
Holding blocks: 0
Memory statistics for bgpd:
System allocator statistics:
Total heap allocated: 727 MiB
Holding block headers: 260 KiB
Used small blocks: 0 bytes
Used ordinary blocks: 591 MiB
Free small blocks: 32 bytes
Free ordinary blocks: 136 MiB
Ordinary blocks: 1072731
Small blocks: 1
Holding blocks: 1Это 3 независимых ФВ и несколько обменников + десяток клиентов, анонсящих свои /24 и получающие дефолт, в основном.
сервак на го..
А в ваших краях до сих пор на иномарки позырить толпы собираются?
зебра на си, i7, кто спорит, речь о го, о стоимости 10г/бит сетевух в сравнении с железками
> а сетевки способные более гигабита нет,я удивлюсь если вы прилепите пропускную способность инерфейса к протоколу маршрутизции, который по задумке должен отрабатывать редкие перестройки сети.
Даже если вы выплюните или получите новый (ну не выплюните точно) фулл вью, сколько микросекунд потребуется на перестройуку таблицы маршрутизации, ась?
Штанишки идите просушите.
> я удивлюсь если вы прилепите пропускную способность инерфейса к протоколу маршрутизции,А как вы отвяжете пропускную способность, от маршрутизации? разобьете сеть на подсети со статическими маршрутами? не несите бред. ваш бордер, либо имеет 10г/бит интерфейс, либо нет; это либо железка, либо сервак, если это сервак, то его цена выше аналогичной железки, какой другой функционал вам нужен на бордере? пасьянс расскладывать, поработайте сначала на провайдерских сетях, потом и поговорим.
>> я удивлюсь если вы прилепите пропускную способность инерфейса к протоколу маршрутизции,
> А как вы отвяжете пропускную способность, от маршрутизации?Эмм... да как это связано то? Протокол маршрутизации и пропускная способность?
> со статическими маршрутами? не несите бред. ваш бордер, либо имеет 10г/бит
> интерфейс, либо нет; это либо железка, либо сервак, если это сервак,
> то его цена выше аналогичной железкиО_о Вот тут можно подробней?
как это связано то?Припоем вероятнее всего, - нельзя на циску поставить го, и перенести бгп на отдельный сервак, так как и анонсы и трафик будут ходить через 1 интерфейс.
> подробней
легко
http://www.nix.ru/autocatalog/networking_d_link/D-Link-DXS-1...
Железяка с 2 10г портами за 60к рублей.
http://shop.nag.ru/catalog/00006.Servery/02273.Setevye-karty...
Сетевка на 10г, 20к
Итого на сервак остается 60-20 = 40к рублей, не ну можно взять старенький б/у, но сами с ним возитесь.
> как это связано то?
> Припоем вероятнее всего, - нельзя на циску поставить го, и перенести бгп
> на отдельный сервак, так как и анонсы и трафик будут ходить
> через 1 интерфейс.И из этого следует, что протокол машрутизации зависит как-то от пропускной способности?
>> подробней
> легко
> http://www.nix.ru/autocatalog/networking_d_link/D-Link-DXS-1...
> Железяка с 2 10г портами за 60к рублей.
> http://shop.nag.ru/catalog/00006.Servery/02273.Setevye-karty...
> Сетевка на 10г, 20к
> Итого на сервак остается 60-20 = 40к рублей, не ну можно взять
> старенький б/у, но сами с ним возитесь.Вы сравниваете дешевый л2 свич с сервером?
> И из этого следуетИз этого следует, что 10г интерфейс с ГоБГП при прочих равных будет дороже.
А еще я утомлен глупыми вопросами.
>> И из этого следует
> Из этого следует, что 10г интерфейс с ГоБГП при прочих равных будет
> дороже.
> А еще я утомлен глупыми вопросами.А извините - где в данном свитче БГП - о котором идёт речь ?
Выше оратор писал о не использовании ОпенБГПД - пилиться, возможностей в нём предостаточно, если подымать на Опёнке - то вообще любой финт ушами, с любыми капризами, если подымать его на Фре - то почти всё то-же что и на Опёнке, с определёнными исключениями ( разные всё-таки ядра по возможностям у систем ).
Пример нагрузки при фулвью от всех ниже - 4x10г интерфейса, на фре+опенбгпд - кластер из 2 бгп рутеров.
bgpctl sh
Neighbor AS MsgRcvd MsgSent OutQ Up/Down State/PrfRcvd
To_*** *** 39558261 3907260 0 04w2d03h 584184
To_*** *** 83966859 3907636 0 09w1d12h 584571
To_*** *** 41064179 3909834 0 09w1d12h 587182
To_BGP2 *** 27895365 100637181 0 15w4d17h 0bgpctl show ip bgp memory
RDE memory statistics
589858 IPv4 unicast network entries using 22.5M of memory
1179716 rib entries using 72.0M of memory
3511799 prefix entries using 214M of memory
556796 BGP path attribute entries using 63.7M of memory
411624 BGP AS-PATH attribute entries using 23.2M of memory,
and holding 556796 references
12136 BGP attributes entries using 474K of memory
and holding 679808 references
12135 BGP attributes using 106K of memory
RIB using 396M of memoryps -axu | grep bgp
root 854 0.0 0.6 49468 40328 - Ss 24Jul15 90:19.58 bgpd: parent (bgpd)
_bgpd 859 0.0 8.7 553276 547732 - S 24Jul15 1099:48.45 bgpd: route decision engine (bgpd)
_bgpd 860 0.0 0.2 16700 10220 - S 24Jul15 1023:48.53 bgpd: session engine (bgpd)Нагрузка на машины с БГП - 5-25 %.
Даже если покупать 2 сервера с поддержкой от производителя железа - выйдет дешевле, нежели к примеру брать 2 джуника по 4x10г интерфейса, да ещё и с тупняками самого джуноса - при перестроении маршрутов, к примеру с холодного старта, а именно - пока не прольёт весь фулл вью - ни 1 маршрут отрабатывать не будет, в отличии от опёнка - сеть пришла - маршрут появился. Поверьте, есть с чем сравнивать, как-раз съехали с Джуников, на опенбгпд в своё время, куча проблем отвалилась при апгрейдах, и релоадах.
А по поводу сабжа - если будет обрастать возможностями, и не будет бешено прожорлив - завоюет свою нишу, и свою часть серверов в глобальной паутине. Лучше когда выбор больше, нежели утыкаться в выбор : Кошка-Джуник
> и не будет бешено прожорливВот-вот.
> выбор : Кошка-Джуник
Есть еще микротики, к сожалению пока без 10г интерфейсов, но циска разочаровала полностью, хуавеи чутка получше, но гибче микротиков только чистый линукс с netns.
>> и не будет бешено прожорлив
> Вот-вот.
>> выбор : Кошка-Джуник
> Есть еще микротики, к сожалению пока без 10г интерфейсов, но циска разочаровала
> полностью, хуавеи чутка получше, но гибче микротиков только чистый линукс с
> netns.Простите, вы случайно не Saab95?
>>> и не будет бешено прожорлив
>> Вот-вот.
>>> выбор : Кошка-Джуник
>> Есть еще микротики, к сожалению пока без 10г интерфейсов, но циска разочаровала
>> полностью, хуавеи чутка получше, но гибче микротиков только чистый линукс с
>> netns.
> Простите, вы случайно не Saab95?Багага :) Нагу привет! Подумал тоже самое :)
Микротыки под 10г уже давно есть, к примеру :
http://routerboard.com/CCR1036-8G-2Splus
SFP+ 10G и поехали.
Согласен, в табличке с х-ми 10г не указано явно.
> Микротыки под 10г уже давно есть, к примеру :
> http://routerboard.com/CCR1036-8G-2Splus
> SFP+ 10G и поехали.Вы реально предлагаете на бордер поставить микротик?
>> Микротыки под 10г уже давно есть, к примеру :
>> http://routerboard.com/CCR1036-8G-2Splus
>> SFP+ 10G и поехали.
> Вы реально предлагаете на бордер поставить микротик?Если он будет заниматься только БГП, а не всем попало, как любят понастроить - то почему нет, свои основные функции, а именно бгп он будет выполнять. Но многие любят понавесить блекджека со стюардессами (шейпинг, фаерволинг и тд ) на бгп - а потом говорить что оно тормозит почему-то, и работает как-то странно ... Тут главное умение готовить - если для организации не критично, и не могут себе позволить к примеру пару джуниперов с поддержкой ( которая стоит +30% от стоимости самой железки на пару лет), то почему и не микротыки, к примеру клаудроутер серию, попользовать - запаса по мощности за глаза. По памяти тем более.
P.S.
Прикидываем цены :
Микротык на 2 10г порта ~ 900-1600 $ + пара сфп+ модулей отдельно ... пара ~ 3-3.5к американских рублей ...
Джуник, хотяб MX40 серии - 2 встроеных порта по 10г , дополнительно можно взять ещё модули расширения + дополнительные лицензии ... - 60-65к американских рублей за 1 железку + 25-30% к стоимости 1 железки поддержка, без которой можно по сути купить только у не официалов - я-ля интернет магазины и тд. Итого на пальцах - за кластер из 2 железок с возможностью подать 2 линка по 10г, или 4 по 10г - как настроите - 150-170к американских рублей. Даже если брать лоу сегмент Джуников - меньше 50к с саппортом не встанет.
>[оверквотинг удален]
> на отдельный сервак, так как и анонсы и трафик будут ходить
> через 1 интерфейс.
>> подробней
> легко
> http://www.nix.ru/autocatalog/networking_d_link/D-Link-DXS-1...
> Железяка с 2 10г портами за 60к рублей.
> http://shop.nag.ru/catalog/00006.Servery/02273.Setevye-karty...
> Сетевка на 10г, 20к
> Итого на сервак остается 60-20 = 40к рублей, не ну можно взять
> старенький б/у, но сами с ним возитесь.Вы забыли докупить sfp-модули к этому девайсу. Что-то вроде http://www.xcom-shop.ru/d-link_dem-436xt-bxda1a_377228.html
>[оверквотинг удален]
> железки которые его умеют дешевеют, а сетевки способные более гигабита нет,
> очевидно, проще купить железку. Впрочем, для конторок с /24 сетью, которым
> пропускная способность не критична функционала quagga хватает за глаза.
> Хотелось бы увидить комментарий по объему памяти, который потребляется этой реализацией,
> для фул-вью относительно старенькие циски уже не тянут по памяти, очень
> сомнительно, что сервак вытянет.
> В общем идея чем-то отдает, как будто из дешевой пластмассы пытаются сделать
> механические часы, согласен, что протоколы динамической маршрутизации устарели, как и
> ip4, и ip6 не является достойной заменой, но сабж ИМХО очередное
> хипстерское "я могу" без привязки к реальным возможностям и потребностям.Протоколы динамической маршрутизации устарели?
В контексте ip4, да.
> В контексте ip4, да.Вы, простите, сюда через в6 попали? в4 еще дооооолго будет.
> Вы, простите, сюда через в6 попали? в4 еще дооооолго будет.MPLS, лет уже хз сколько, а ip4, ip6, ipx или что-то еще ваще пофиг, хоть ethernet до самого гугла.
>> Вы, простите, сюда через в6 попали? в4 еще дооооолго будет.
> MPLS, лет уже хз сколько, а ip4, ip6, ipx или что-то еще
> ваще пофиг, хоть ethernet до самого гугла.Рукалицо
> Хотелось бы увидить комментарий по объему памяти, который потребляется этой реализацией, для фул-вью относительно старенькие циски уже не тянут по памяти, очень сомнительно, что сервак вытянет.Держу два фуллвью на квагге, сеточка /24. Хавает памяти около 500 с хвостиком метров. Поставил дремучий интелевый двухголовый сервак на это дело с гигабитными сетевками, который выкинуть жалко, а под полезные вещи он по ресурсам не годится.
Собсно почти весь этот объем весит ядерная таблица маршрутизации, поэтому можете синтетикой два раза по 550к маршрутов в нее запихать, и получится валидно.
Поддерживаю. Еще как нужна! Использую GoBGP уже более 7 месяцев и рад как слон :)
> Поддерживаю. Еще как нужна! Использую GoBGP уже более 7 месяцев и рад
> как слон :)Кому интересны примеры интеграции с С++ - GoBGP интегрирован в мой проект https://github.com/pavel-odintsov/fastnetmon/blob/master/doc...
Ну и в самом репо GoBGP есть примеры :)
так уже давно есть exabgp на питоне, Flowspec (RFC5575) точно умеет.
> так уже давно есть exabgp на питоне, Flowspec (RFC5575) точно умеет.exa о другом, это не роут-сервер в полноценном понимании, это инжектор или рулилка.
>> так уже давно есть exabgp на питоне, Flowspec (RFC5575) точно умеет.
> exa о другом, это не роут-сервер в полноценном понимании, это инжектор или
> рулилка.Для ExaBGP очень проблемно сделать API, который будет работать в две стороны. Плюс у эксы проблемы со скоростью, когда нужно принять фул вью - это критично.
Был один случай. Искал работу и бац, в _воскресенье_ звонит человек и предлагает идти к нему работать: BGP на пеньтиумах рулить.Все это детский сад, ИМХО. Помимо BGP, нужны охеренные сетевушки (стоят как три корки i7), охеренный стек ПО (ну, радиус вы подключите, когда _кто-то_ напишет за вас GoRadius, да? :) и охеренное окружение (дацацентр в уборной офиса 9 кв.м вам, конечно, за глаза).
Бредятина какая. Какие нафиг спец сетевые нужны для роутинга? 82599/Intel 520 и вперед. Стоит 300 баксов за два порта в базарный день.
Тише-тише, с такими сетевухами вы уже ISP регионального уровня! Мужик, спустись на землю, открой календарь. Такими вещами занимались "папки" в начале 90х и тогда это было актуально. А сейчас ты вот с этим раскрутишься, без базара, и через недельку продашься дом.сру. Похвально. Только не надо хвастаться, что это хорошо, окей? Не ты один такой умный.
Мир не ограничивается "созданием еще одного провайдера" и не только провайдеры используют выспокопроизводительный роутинг.
> Мир не ограничивается "созданием еще одного провайдера" и не только провайдеры используют
> выспокопроизводительный роутинг.Производительность (без DPDK/NETMAP) на чистом линуксовом ядре (да и на фришном) весьма убогая. Даже со всем набором тюнингов и раскидыванием прерываний.
> да и на фришномВрешь мерзость!
> Производительность (без DPDK/NETMAP) на чистом линуксовом ядре (да и на фришном) весьма
> убогая. Даже со всем набором тюнингов и раскидыванием прерываний.Мне вот на предприятии нужна была только многоногость, а рутить торрент-трафик 100к хомяков не нужно было.
Ну написал нужных бумажек, получил AS и PI, поставил кваггу на старенький, но породистый сервачок, и кушать-пить там она не просит с той поры как поставил и настроил. Пыль смахиваю, секурити апдейты натягиваю и сплю крепко, потому-что дебиан.
Башлять 9000 нефти за кошака даже БУ в которого два фуллвью лезут - в гробу я видал при таких раскладах, у меня доставшееся бесплатно железячное решение на бесплатном софтовом работает превосходно.
>[оверквотинг удален]
>> убогая. Даже со всем набором тюнингов и раскидыванием прерываний.
> Мне вот на предприятии нужна была только многоногость, а рутить торрент-трафик 100к
> хомяков не нужно было.
> Ну написал нужных бумажек, получил AS и PI, поставил кваггу на старенький,
> но породистый сервачок, и кушать-пить там она не просит с той
> поры как поставил и настроил. Пыль смахиваю, секурити апдейты натягиваю и
> сплю крепко, потому-что дебиан.
> Башлять 9000 нефти за кошака даже БУ в которого два фуллвью лезут
> - в гробу я видал при таких раскладах, у меня доставшееся
> бесплатно железячное решение на бесплатном софтовом работает превосходно.Это конечно хорошо, что под эту задачу этот инструмент подошёл (соответственно, был применен по назначению), но я всё-таки отвечал предыдущему оратору на "высокопроизводительный роутинг".
> Был один случай. Искал работу и бац, в _воскресенье_ звонит человек и
> предлагает идти к нему работать: BGP на пеньтиумах рулить.
> Все это детский сад, ИМХО. Помимо BGP, нужны охеренные сетевушки (стоят как
> три корки i7), охеренный стек ПО (ну, радиус вы подключите, когда
> _кто-то_ напишет за вас GoRadius, да? :) и охеренное окружение (дацацентр
> в уборной офиса 9 кв.м вам, конечно, за глаза).для пафоса надо упоминать не коре исемь, а паверы и всякую сантехнику, тогда школьники увидят твой пафос и сразу подчинятся твоей воле. Да, и про ПО лучше вовсе молчи, а то они полезут в инторнет читать о нём, и засмеют потом.
Нет, пафос это когда сетевухи за 300 баксов равнозначны распоследней циски. Ты вообще прочитал о чем мой посыл? Видимо, нет. Кроме сетевухи в цисках есть еще много чего за что ее любят. И да, дядя что звонил мне в воскресенье херачил на работе в тот день, потому что нужно это дописать, тут подкрутить, там еще что-то сделать и т.д. А будь деньги на нормальное железо, то сделал он это меньше чем за неделю. Но нет, ему никто денег не дал, и денег на спеца у него тоже не было, корячился как проклятый без выходных.
>Нет, пафос это когда ...Порят вот такую чушь! Давно уже самые мощные IX-ы гонябт раутинг на севрверах.
PS: И да - таки если вы поклонник спец железа, то для BGP традиционно рулит Juniper :)
Но там же не православный линукс?
>самые мощные IX-ыЭто выражение доказывает вашу компетентность в вопросе. Иди сходи в википедию и почитай, что такое IX. Также посмотри в зеркало и спроси себя: какого все вокруг не похожи на меня?
Вот же дятел ... последуй своему же совету :) К примеру поищи кто есть (был?) крупнейший пользователь OpenBGPD :)
Это? http://www.openbgpd.org/users.htmlЧто я вижу? Какие-то недопровайдеры крутят какие-то маршруты, да, напоиграться в DSL можно. Я про это и говорю. Где **** сервера гугла под openbgp? Где **** сервера yandex под openbgpd? Отвечай!
Утрись, щенок:
1. http://bgp.he.net/AS6777
2. http://bgp.he.net/AS3356
Почему проекты, написанные на Go, обязательно подчеркивают выбранный язык? Еще и названии его указали, а если по каким-нибудь причинам язык придется сменить?
> Почему проекты, написанные на Go, обязательно подчеркивают выбранный язык? Еще и названии
> его указали, а если по каким-нибудь причинам язык придется сменить?Согласен, надо Линукс переименовать в clinux, nginx -> cnginx, postfix -> cpostfix и т.д.
Было бы вообще замечательно, сразу было бы понятно, какое говно не стоит тянуть
А чё, уже появился загрузчик, прога для разметки винтов, ядро ОС (включая TCP/IP, дрова для железок, планировщик и т.д.) на этот вашем сраном гоу?
> А чё, уже появился загрузчик, прога для разметки винтов, ядро ОС (включая
> TCP/IP, дрова для железок, планировщик и т.д.) на этот вашем сраном
> гоу?Подписка на гугл закончилась или забанили?
> Почему проекты, написанные на Go, обязательно подчеркивают выбранный язык? Еще и названии
> его указали, а если по каким-нибудь причинам язык придется сменить?как веганы или геи, суть у них одинакова
Сектанты, сэр.
Сложилась такая традиция. Однако, при этом можно сразу отметить моменты, характерные для ПО на соответствующем языке. В данном случае это:
- (как правило) простота деплоя приложения, т.к. статическая линковка
- наличие сборщика мусора
И можно отдельно проверить:
- "у меня есть/нет люди, которые знакомы с этим языком и смогут подшаманить"Как ни крути, в большинстве случаев язык накладывет определённый отпечаток на продукт.