kisa Posted September 8, 2017 (edited) TheRouter переименован в BisonRouter. Вся подробная информация о компании на сайте https://bisonrouter.com The project is now Bison Router! Please visit our website https://bisonrouter.com for more information. History: Завершил разработку первой версии софтварного (dpdk) браса. therouter.net # TheRouter TheRouter is a software packet router based on DPDK and NPF libraries. Using modern software technique such as QSBR, lockless data structures and cuckoo hashing the router to perform routing up tp 32Mpps and NAT (up to 6 Mpps) on high packet rates using commodity hardware. Вот здесь https://github.com/alexk99/the_router/blob/master/bras/subsriber_management.md документация именно по функциям браса и howto https://github.com/alexk99/the_router/blob/master/bras/bras_howto.md с примером реализации небольшого bras сервера. Документация по pppoe брасу https://github.com/alexk99/the_router#pppoe Вот здесь документация по проекту https://github.com/alexk99/the_router, пример боевого внедрения в качестве bgp раутераhttps://github.com/alexk99/the_router/blob/master/bizin.md Текущая версия браса - это все еще тестовая версия, но с каждым месяцем количество фич, которые должны быть реализованы в стандартном браса, но которых еще не поддерживает TheRouter, все меньше и меньше. На текущей стадии продукт бесплатный. Мне нужна помощь в тестировании, обратная связь и советы по фичам, которых сейчас не хватает больше всего. Edited October 2, 2021 by kisa Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tau Posted September 10, 2017 the_router --proc-type=primary -c 0xF --lcores='0@0,1@1,2@2,3@3' --syslog='daemon' -n2 -w 0000:01:00.0 -w 0000:01:00.1 -- -c $1 -d ps -ef | grep the_router | grep -v grep | awk '{print $2}' > /var/run/the_router.pid Откройте для себя pidof. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
bomberman Posted September 11, 2017 Не хочу разводить спор относительно парвильности. Но слово "раутер", режет слух :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pppoetest Posted September 11, 2017 У меня "раут" ассоциируется со светским. Мерлезонский балет, etc. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ichthyandr Posted September 11, 2017 В 08.09.2017 в 21:32, kisa сказал: Завершил разработку первой версии софтварного (dpdk) браса. Вот здесь https://github.com/alexk99/the_router/blob/master/bras/subsriber_management.md документация именно по функциям браса и howto https://github.com/alexk99/the_router/blob/master/bras/bras_howto.md с примером реализации небольшого bras сервера. Вот здесь документация по проекту https://github.com/alexk99/the_router, пример боевого внедрения в качестве bgp раутераhttps://github.com/alexk99/the_router/blob/master/bizin.md Текущая версия браса - это прототип, в нем нет некоторых фич, необходимых для боевой эксплуатации, таких как ipfix (netflow), nat algs (pptp, sip и т.п.). Но это может и не быть препятствием для построения полу-боевых тестовых систем. Проект не опенсорс, но бесплатный. Мне нужна помощь в тестировании, обратная связь и советы по фичам, которых сейчас не хватает больше всего. Если проект взлетит, то он будет платным. В таком случае все участвующие не останутся без лицензий. а почему dpdk? он вроде как ядра процессора, те которые с карты пакеты перехватывают на 100% грузят - минус к диагностике, или я ошибаюсь? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted September 11, 2017 33 минуты назад, ichthyandr сказал: а почему dpdk? он вроде как ядра процессора, те которые с карты пакеты перехватывают на 100% грузят - минус к диагностике, или я ошибаюсь? мне понравился dpdk. хорошо документированных, качественных, бесплатных, с хорошим коммьюнити проектов я просто не нашел на тот момент. по поводу 100% - не совсем так. это не dpdk грузит, это большинство проектов на ранних стадиях разработки не реализуют стратегии энергосбережения, т.е. в основной цикл рабочих процессов не вставляют грубо говоря sleep. к диагностике это имеет косвенное отношение, можно смотреть на счетчики потерь, а наиболее "горячие" места в коде обычно смотрят профайлерами, тем же perf можно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
TheUser Posted September 12, 2017 В 08.09.2017 в 21:32, kisa сказал: Проект не опенсорс, но бесплатный. [..] Если проект взлетит, то он будет платным. Перспективы как-то не очень. Закрытость проекта означает невозможность внесения изменений или исправления ошибок без вашего участия. Бесплатность означает отсутствие каких-либо обязательств с Вашей стороны. В 08.09.2017 в 21:32, kisa сказал: Мне нужна помощь в тестировании, обратная связь и советы по фичам, которых сейчас не хватает больше всего. Найдите потенциальных клиентов, допилите продукт под их хотелки за их же деньги. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
murano Posted September 16, 2017 (edited) Согласен, закрытость проекта не позволит более опытным программистам предложить в коммиты пулл-реквесты с улучшениями... Либо бесплатно и открыто, либо платно и проприеритарно. Другие комбинации слов "бесплатно", "платно", "открыто" и "проприеритарно" как-то не очень сочетаются на практике. Другое дело, что начнут форки строгать, что начнет вводить в заблуждение в выборе. Тому пример Accel-ppp. Edited September 16, 2017 by murano Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted September 19, 2017 Меня спрашивают про какие-нибудь тесты. 1) есть тесты NAT. Подробно вот тут https://github.com/alexk99/the_router/blob/master/source_nat.md Если коротко, то с таблицей трансляций нат 1M (1 миллион), сервер с пятью ядрами, выделенными под рабочие потоки TheRouter, пропускает 5,4 Mpps( миллионов пакетов в секунду) - это примерно 40 гбит/c, если взять в расчет обычные пакеты большого размера. Processor: Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz NIC: Intel X520-DA2 Ram: 32Gb 4x8 2) и есть тесты просто раутинга там железки были попроще Core i5, 3 ядра под рабочие потоки TheRouter'а, Суммарно (in+out) 14,8 Mpps 64 байтными пакетам. Количество ip потоков в трафике - 128k. Поток в этом тесте - это все пакеты с одинаковыми ip src, ip dst. Таблица маррутизации тоже 128k, фактически она могла быть любого размера, т.к. только количество потоков важно для таких тестов. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
bomberman Posted September 20, 2017 Вот Вы приводите какие то результаты тестов, выходит уже некую стадию тестирования проэкт прошёл, и тут он для рекламмы, и бесплатного теста (не берём в рассчёт Ваши обещяния лицензий тестерам). Какова же стоимость Вашего решения? Как будет лицензироваться? За что придётся платить возможным клиентам? Какие существенные отличия от готовых бесплатных решений (ну кроме dpdk based, это разумеется даёт своё приимущество в скорости, хатя попадились решения и на её основе открытые.)? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted September 20, 2017 (edited) 4 часа назад, bomberman сказал: Вот Вы приводите какие то результаты тестов, выходит уже некую стадию тестирования проэкт прошёл, и тут он для рекламмы, и бесплатного теста (не берём в рассчёт Ваши обещяния лицензий тестерам). Какова же стоимость Вашего решения? Как будет лицензироваться? За что придётся платить возможным клиентам? Какие существенные отличия от готовых бесплатных решений (ну кроме dpdk based, это разумеется даёт своё приимущество в скорости, хатя попадились решения и на её основе открытые.)? Стоимость будет ниже аналогичных решений, возможно ниже в разы. >> Как будет лицензироваться? >> За что придётся платить возможным клиентам? Над деталями лицензирования думать рано. >> Какие существенные отличия от готовых бесплатных решений скорость Открытых работающих решений (dpdk или подобных, не ядерных) я не знаю. Если знаете, приведите ссылки. Всем будет очень интересно посмотреть. Edited September 20, 2017 by kisa Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
oleg_n Posted September 20, 2017 Я правильно понимаю, что проект должен иметь часть функционала netfilter(такую как NAT, conntrack, например), полный функционал iproute2 и функционал tc? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted September 20, 2017 3 минуты назад, oleg_n сказал: Я правильно понимаю, что проект должен иметь часть функционала netfilter(такую как NAT, conntrack, например), полный функционал iproute2 и функционал tc? NAT есть, он основан на NetBSD NPF - это аналог netfilter в части conntrack. полного функционала iproute, конечно же нет, но есть все самые базовые и нужные в первую очередь вещи. из tc есть только shaping. P.S. задачи копировать linux нет и не будет. Сейчас есть задача сделать BRAS с самыми базовыми вещами и производительностью, аналогичной железным решениям. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
oleg_n Posted September 20, 2017 1 минуту назад, kisa сказал: NAT есть, он основан на NetBSD NPF - это аналог netfilter в части conntrack. полного функционала iproute, конечно же нет, но есть все самые базовые и нужные в первую очередь вещи. из tc есть только shaping. P.S. задачи копировать linux нет и не будет. Сейчас есть задача сделать BRAS с самыми базовыми вещами и производительностью, аналогичной железным решениям. Я не про это. Я про то, не пугает ли Вас сколько функционала надо будет отлаживать и оптимизировать, который уже годами и тысячами людей отлажен в netfilter/iproute2/tc? У меня глаз дёргается от одной мысли. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted September 20, 2017 Нет, не пугает. т.к. я уже сказал, что не собираюсь делать универсальный сетевой стэк на все случаи жизни, как это сделано в linux. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
TheUser Posted September 20, 2017 kisa , а почему бы не сделать готовый ISO-образ дистрибутива с вашим продуктом? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
oleg_n Posted September 20, 2017 18 минут назад, kisa сказал: Нет, не пугает. Это хорошо :-). Похоже, просто, я старею :-). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted September 20, 2017 (edited) Цитата а почему бы не сделать готовый ISO-образ дистрибутива с вашим продуктом? я собираюсь именно так и сделать , установка слишком сложная. Edited September 20, 2017 by kisa Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
TheUser Posted September 20, 2017 1 минуту назад, kisa сказал: я собираюсь именно так и сделать , установка слишком сложная. Ну, раз Вы только собираетесь, может быть сразу посмотрите в сторону deb-based дистрибутивов? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted September 20, 2017 Только что, TheUser сказал: Ну, раз Вы только собираетесь, может быть сразу посмотрите в сторону deb-based дистрибутивов? задача - упростить установку, и мне очень хочется сделать это с минимальными затратами. т.к. сейчас все обкатано на gentoo, то, скорей всего, это и останется gentoo. у NPF очень много зависимостей, заного изучать процесс сборки мне не хочется. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
bomberman Posted September 20, 2017 3 часа назад, kisa сказал: Если знаете, приведите ссылки. Да. пожалуй ошибся. Там не dpdk. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DeadMeat Posted September 21, 2018 Всем прмвет. Позволю себе оставить первый отзыв на the-router. Ввели в тестовую эксплцуатацию на реальном трафике, в качестве BGP (только маршрутизация). Машина: -AMD FX(tm)-8350 Eight-Core Processor 4.2 GHz (используется 4 ядра) -16G RAM -2x 2-головах Intel 82599ES, объединены в LACP (все 4 порта в 1 bonding) - 5 vlan - GBP Full View 702k маршрутов. Запущена 28.06, в работе по настоящее время. 1 падение по питанию (таз есть таз - 1 БП :) ) Средний PPS в ЧНН - 2.4-2.5 Mpps на вход + столько-же на выход (асего 4.8-5 Mpps); трафик ~ 17GBps вход + столько же выход. router.conf: startup { sysctl set mbuf 16384 port 4 mtu 1500 tpid 0x8100 state enabled bond_slaves 0,1,2,3 rx_queue port 4 queue 0 lcore 1 rx_queue port 4 queue 1 lcore 2 rx_queue port 4 queue 2 lcore 3 rx_queue port 4 queue 3 lcore 4 sysctl set global_packet_counters 1 } runtime { vif add name v668 port 4 type dot1q cvid 668 flags kni ip addr add 192.168.0.1/24 dev v668 vif add name v229 port 4 type dot1q cvid 229 flags kni vif add name v150 port 4 type dot1q cvid 150 flags kni vif add name v232 port 4 type dot1q cvid 232 flags kni vif add name v227 port 4 type dot1q cvid 227 flags kni vif add name v239 port 4 type dot1q cvid 239 flags kni vif add name v732 port 4 type dot1q cvid 732 flags kni } Производительности 4 ядео хватает чтоб заменить 2 процессторный Xeon E5-2630 v2 2.60G (12 ядер) загрузка которого при том же pps ~60% на 3.18 ядре (всех ядер). Если есть вопросы - спрашивайте. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
QWE Posted September 21, 2018 (edited) 7 часов назад, DeadMeat сказал: внутри quagga? Скорость коммутации это заслуга dpdk Edited September 21, 2018 by QWE Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DeadMeat Posted September 21, 2018 6 hours ago, QWE said: внутри quagga? Если точнее - frr. 6 hours ago, QWE said: Скорость коммутации это заслуга dpdk Да, но в отличие от, например, packet-journey, где full-view в приложение загружается ~1.5 минуты(на том же железе) - тут (по крайней мере на мой глаз) практически мгновенно (замеров не делал). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
QWE Posted September 21, 2018 (edited) я юзаю bird, FV грузиться гораздо быстрее чем 1,5 минуты. но точно не замерял. логирование загрузки роутов включите, узнаете за сколько точно грузиться от отгружаемой стороны также зависит скорость приема роутов. ipv6 BGP? NETFLOW V4 V6 ? или что есть для экспорта flow-s ? у Вас единственный бордер на этой штуке? к меня два бордера, как для таких случаев подходит то что вы тестируете? Edited September 21, 2018 by QWE Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...