kisa Опубликовано 8 сентября, 2017 (изменено) · Жалоба 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, все меньше и меньше. На текущей стадии продукт бесплатный. Мне нужна помощь в тестировании, обратная связь и советы по фичам, которых сейчас не хватает больше всего. Изменено 2 октября, 2021 пользователем kisa Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Tau Опубликовано 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. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bomberman Опубликовано 11 сентября, 2017 · Жалоба Не хочу разводить спор относительно парвильности. Но слово "раутер", режет слух :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 11 сентября, 2017 · Жалоба У меня "раут" ассоциируется со светским. Мерлезонский балет, etc. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ichthyandr Опубликовано 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% грузят - минус к диагностике, или я ошибаюсь? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kisa Опубликовано 11 сентября, 2017 · Жалоба 33 минуты назад, ichthyandr сказал: а почему dpdk? он вроде как ядра процессора, те которые с карты пакеты перехватывают на 100% грузят - минус к диагностике, или я ошибаюсь? мне понравился dpdk. хорошо документированных, качественных, бесплатных, с хорошим коммьюнити проектов я просто не нашел на тот момент. по поводу 100% - не совсем так. это не dpdk грузит, это большинство проектов на ранних стадиях разработки не реализуют стратегии энергосбережения, т.е. в основной цикл рабочих процессов не вставляют грубо говоря sleep. к диагностике это имеет косвенное отношение, можно смотреть на счетчики потерь, а наиболее "горячие" места в коде обычно смотрят профайлерами, тем же perf можно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
TheUser Опубликовано 12 сентября, 2017 · Жалоба В 08.09.2017 в 21:32, kisa сказал: Проект не опенсорс, но бесплатный. [..] Если проект взлетит, то он будет платным. Перспективы как-то не очень. Закрытость проекта означает невозможность внесения изменений или исправления ошибок без вашего участия. Бесплатность означает отсутствие каких-либо обязательств с Вашей стороны. В 08.09.2017 в 21:32, kisa сказал: Мне нужна помощь в тестировании, обратная связь и советы по фичам, которых сейчас не хватает больше всего. Найдите потенциальных клиентов, допилите продукт под их хотелки за их же деньги. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
murano Опубликовано 16 сентября, 2017 (изменено) · Жалоба Согласен, закрытость проекта не позволит более опытным программистам предложить в коммиты пулл-реквесты с улучшениями... Либо бесплатно и открыто, либо платно и проприеритарно. Другие комбинации слов "бесплатно", "платно", "открыто" и "проприеритарно" как-то не очень сочетаются на практике. Другое дело, что начнут форки строгать, что начнет вводить в заблуждение в выборе. Тому пример Accel-ppp. Изменено 16 сентября, 2017 пользователем murano Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kisa Опубликовано 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, фактически она могла быть любого размера, т.к. только количество потоков важно для таких тестов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bomberman Опубликовано 20 сентября, 2017 · Жалоба Вот Вы приводите какие то результаты тестов, выходит уже некую стадию тестирования проэкт прошёл, и тут он для рекламмы, и бесплатного теста (не берём в рассчёт Ваши обещяния лицензий тестерам). Какова же стоимость Вашего решения? Как будет лицензироваться? За что придётся платить возможным клиентам? Какие существенные отличия от готовых бесплатных решений (ну кроме dpdk based, это разумеется даёт своё приимущество в скорости, хатя попадились решения и на её основе открытые.)? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kisa Опубликовано 20 сентября, 2017 (изменено) · Жалоба 4 часа назад, bomberman сказал: Вот Вы приводите какие то результаты тестов, выходит уже некую стадию тестирования проэкт прошёл, и тут он для рекламмы, и бесплатного теста (не берём в рассчёт Ваши обещяния лицензий тестерам). Какова же стоимость Вашего решения? Как будет лицензироваться? За что придётся платить возможным клиентам? Какие существенные отличия от готовых бесплатных решений (ну кроме dpdk based, это разумеется даёт своё приимущество в скорости, хатя попадились решения и на её основе открытые.)? Стоимость будет ниже аналогичных решений, возможно ниже в разы. >> Как будет лицензироваться? >> За что придётся платить возможным клиентам? Над деталями лицензирования думать рано. >> Какие существенные отличия от готовых бесплатных решений скорость Открытых работающих решений (dpdk или подобных, не ядерных) я не знаю. Если знаете, приведите ссылки. Всем будет очень интересно посмотреть. Изменено 20 сентября, 2017 пользователем kisa Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oleg_n Опубликовано 20 сентября, 2017 · Жалоба Я правильно понимаю, что проект должен иметь часть функционала netfilter(такую как NAT, conntrack, например), полный функционал iproute2 и функционал tc? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kisa Опубликовано 20 сентября, 2017 · Жалоба 3 минуты назад, oleg_n сказал: Я правильно понимаю, что проект должен иметь часть функционала netfilter(такую как NAT, conntrack, например), полный функционал iproute2 и функционал tc? NAT есть, он основан на NetBSD NPF - это аналог netfilter в части conntrack. полного функционала iproute, конечно же нет, но есть все самые базовые и нужные в первую очередь вещи. из tc есть только shaping. P.S. задачи копировать linux нет и не будет. Сейчас есть задача сделать BRAS с самыми базовыми вещами и производительностью, аналогичной железным решениям. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oleg_n Опубликовано 20 сентября, 2017 · Жалоба 1 минуту назад, kisa сказал: NAT есть, он основан на NetBSD NPF - это аналог netfilter в части conntrack. полного функционала iproute, конечно же нет, но есть все самые базовые и нужные в первую очередь вещи. из tc есть только shaping. P.S. задачи копировать linux нет и не будет. Сейчас есть задача сделать BRAS с самыми базовыми вещами и производительностью, аналогичной железным решениям. Я не про это. Я про то, не пугает ли Вас сколько функционала надо будет отлаживать и оптимизировать, который уже годами и тысячами людей отлажен в netfilter/iproute2/tc? У меня глаз дёргается от одной мысли. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kisa Опубликовано 20 сентября, 2017 · Жалоба Нет, не пугает. т.к. я уже сказал, что не собираюсь делать универсальный сетевой стэк на все случаи жизни, как это сделано в linux. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
TheUser Опубликовано 20 сентября, 2017 · Жалоба kisa , а почему бы не сделать готовый ISO-образ дистрибутива с вашим продуктом? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oleg_n Опубликовано 20 сентября, 2017 · Жалоба 18 минут назад, kisa сказал: Нет, не пугает. Это хорошо :-). Похоже, просто, я старею :-). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kisa Опубликовано 20 сентября, 2017 (изменено) · Жалоба Цитата а почему бы не сделать готовый ISO-образ дистрибутива с вашим продуктом? я собираюсь именно так и сделать , установка слишком сложная. Изменено 20 сентября, 2017 пользователем kisa Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
TheUser Опубликовано 20 сентября, 2017 · Жалоба 1 минуту назад, kisa сказал: я собираюсь именно так и сделать , установка слишком сложная. Ну, раз Вы только собираетесь, может быть сразу посмотрите в сторону deb-based дистрибутивов? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kisa Опубликовано 20 сентября, 2017 · Жалоба Только что, TheUser сказал: Ну, раз Вы только собираетесь, может быть сразу посмотрите в сторону deb-based дистрибутивов? задача - упростить установку, и мне очень хочется сделать это с минимальными затратами. т.к. сейчас все обкатано на gentoo, то, скорей всего, это и останется gentoo. у NPF очень много зависимостей, заного изучать процесс сборки мне не хочется. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bomberman Опубликовано 20 сентября, 2017 · Жалоба 3 часа назад, kisa сказал: Если знаете, приведите ссылки. Да. пожалуй ошибся. Там не dpdk. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DeadMeat Опубликовано 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 ядре (всех ядер). Если есть вопросы - спрашивайте. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
QWE Опубликовано 21 сентября, 2018 (изменено) · Жалоба 7 часов назад, DeadMeat сказал: внутри quagga? Скорость коммутации это заслуга dpdk Изменено 21 сентября, 2018 пользователем QWE Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DeadMeat Опубликовано 21 сентября, 2018 · Жалоба 6 hours ago, QWE said: внутри quagga? Если точнее - frr. 6 hours ago, QWE said: Скорость коммутации это заслуга dpdk Да, но в отличие от, например, packet-journey, где full-view в приложение загружается ~1.5 минуты(на том же железе) - тут (по крайней мере на мой глаз) практически мгновенно (замеров не делал). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
QWE Опубликовано 21 сентября, 2018 (изменено) · Жалоба я юзаю bird, FV грузиться гораздо быстрее чем 1,5 минуты. но точно не замерял. логирование загрузки роутов включите, узнаете за сколько точно грузиться от отгружаемой стороны также зависит скорость приема роутов. ipv6 BGP? NETFLOW V4 V6 ? или что есть для экспорта flow-s ? у Вас единственный бордер на этой штуке? к меня два бордера, как для таких случаев подходит то что вы тестируете? Изменено 21 сентября, 2018 пользователем QWE Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...