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

TheRouter - software router and bras (dpdk based)

В PPPoE планируется поддержка "intermediate agent"?

Хотелось бы видеть в Radius запросах ADSL-Agent-Circuit-Id, ADSL-Agent-Remote-Id.

 

Share this post


Link to post
Share on other sites
6 минут назад, ~pavel~ сказал:

В PPPoE планируется поддержка "intermediate agent"?

Хотелось бы видеть в Radius запросах ADSL-Agent-Circuit-Id, ADSL-Agent-Remote-Id.

 

Оно есть.

ATTRIBUTE therouter_remote_id  11 string
ATTRIBUTE therouter_circuit_id 12 string

Share this post


Link to post
Share on other sites

Доброго времени.

 

Скажите пожалуйста, а можно ли сделать одно суммарное  ограничение скорости для нескольких Ip адресов. Например для двух ip 3.3.3.5 и 3.3.5.5 скорость канала в 50М, если один качает 45М то  второму остается 5М.

 

Спасибо. 

 

 

Share this post


Link to post
Share on other sites
5 часов назад, haooss сказал:

Доброго времени.

 

Скажите пожалуйста, а можно ли сделать одно суммарное  ограничение скорости для нескольких Ip адресов. Например для двух ip 3.3.3.5 и 3.3.5.5 скорость канала в 50М, если один качает 45М то  второму остается 5М.

 

Спасибо. 

 

 

Сейчас такой фичи нет. HQoS планируется к концу 3 квартала.

Share this post


Link to post
Share on other sites

Добавил поддержку PPTP ALG в NPF NAT.
git clone -b pptp_alg https://github.com/alexk99/npf

 

Версия TheRouter совместимая c pptp веткой NPF
http://therouter.net/downloads/the_router.6cores.dpdk.17.11.1.pppoe.pppoe_a0.84.tar.gz
http://therouter.net/downloads/the_router.6cores.dpdk.17.11.1.pppoe.intel_westmere.pppoe_a0.84.tar.gz
http://therouter.net/downloads/the_router.6cores.dpdk.17.11.1.pppoe.intel_nehalem.pppoe_a0.84.tar.gz

 

пример, конфига NPF

 

map v3 netmap 10.111.0.0/29

alg "icmp"
alg "pptp"

group default {
  block stateful final on v3 proto 47 all
  pass stateful final on v3 all
}

 

P.S. pppoe в названии версии therouter не означает, что поддерживается только pppoe bras. все ipoe фичи тоже доступны
 
 

Edited by kisa

Share this post


Link to post
Share on other sites

Здравствуйте.

 

Подскажите куда смотреть. При старте the_router в лог пишет:

....

ROUTER: Loading the runtime part of configuration file '/etc/router_nat.conf'...
ROUTER: /etc/router_nat.conf:53:37: npf load failed: 22 near '"/etc/npf_nat_test.conf"'
ROUTER: router configuration loaded with errors: num failed commands 1

 

/etc/npf_nat_test.conf выглядит так:

 

map uplink netmap 10.0.100.0/29
group default {
   pass stateful final on uplink all
   pass final on downlink all
}

 

При этом the_router стартует и трафик маршрутизируется, но не НАТится.

 

с npf не связывался, прошу подсказать что не так.

Share this post


Link to post
Share on other sites

bonding  (LACP) в  the_router есть ? 

 

нужно сделать   две трубы  =  два по 10ГБит/с  интерфейса , чтобы  порядка 15ГБит/с транзитом в одну сторону пропустить

5,5 -7 млн пакетов /сек  простого L3 роутинга какая железка осилит?

+ нужны две BGP сессии по IPv4 и IPv6 протоколу

 

http://therouter.net/  

 

IPv6 (test phase)    -  насколько это готово?

Edited by QWE

Share this post


Link to post
Share on other sites

...

Edited by kisa

Share this post


Link to post
Share on other sites
6 часов назад, QWE сказал:

bonding  (LACP) в  the_router есть ? 

 

нужно сделать   две трубы  =  два по 10ГБит/с  интерфейса , чтобы  порядка 15ГБит/с транзитом в одну сторону пропустить

5,5 -7 млн пакетов /сек  простого L3 роутинга какая железка осилит?

+ нужны две BGP сессии по IPv4 и IPv6 протоколу

 

http://therouter.net/  

 

IPv6 (test phase)    -  насколько это готово?

LACP поддерживается
https://github.com/alexk99/the_router/blob/master/link_bonding.md

 

i7-5820K CPU @ 3.30GHz с картой Intel XL710 40GbE может 23 Mpps.
Какая именно железка нужна для 7Mpps не знаю. Можно только примерно прикинуть, что попроще.

 

Вот тесты производительности раутинга:
https://github.com/alexk99/the_router/blob/master/routing_perf_tests.md
http://therouter.net/images/tests/routing_tests/27_01_2018/router_test_21.01.2018_routing_test1_wo_borders.html

 

IPv6 border в продакшене у небольшого швейцарского датацентра, т.е. у меня отзывов по ipv6 все еще очень мало.

Share this post


Link to post
Share on other sites

В одном регионе установил сервер, подтянул около 2к абонентов, получилось следующее:

Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz

 

К сожалению, на этом тестирование закончилось, в связи с моим увольнением из конторы. Дальше проект не стали использовать,

поставили "циску", почему - не могу сказать, хотя по всем показателям, все было просто великолепно.

 

 

По поводу сложностей с интеграцией:

Схема подключения абонентов - Q-in-Q, от головного устройства GEPON тянется Outer-VLAN, в котором находятся абоненты.

Биллинг использовался LanBilling, в связи с этим, возникли некоторые трудности.

 

RADIUS-агент биллинга гибок, но не настолько, чтобы переварить кастомные запросы the_router, пришлось написать некую "прослойку", между 

брасом и биллингом, которая делала следующее:

 

1) Брас получает пакет (любой) с парой SVLAN:CVLAN

2) Принимаем от браса RADIUS-запрос, вытаскиваем из него пару SVLAN:CVLAN, преобразуем их в понятный LanBilling формат

3) Биллинг разбирает радиус-запрос и отдает Accept/Reject + IP подсеть, привязанную к абоненту

4) Мой транслятор отправляет эти данные в понятном брасу формате и у него создается интерфейс с установленными параметрами IP/Скорость

 
vlan	    subsc ip	 interface ip         mode	port	ingress_car	egress_car	rx_pkts	tx_pkts	rx_bytes	tx_bytes  rx_rate       tx_rate
59.101	    none 	     100.68.0.17/28         1	1	    102 mbit/s	102 mbit/s	0	          0	       0	       0   10 Mbps     2.4 Mbps


5) Далее, абонент присылает DHCP Request, он попадает на рилей, к нему дописывается (Спасибо автору!) opt82 в зависимости от настроек. В моем случае, всё те же SVLAN/CVLAN, ибо BDCOM в этом плане очень туп.

6) Брас рилеит это все дело опять же в мой сервис, который делает (шо, опять? :))) )  RADIUS-запрос к биллингу, запрашивая параметры DHCP, получает их и выдает из полученной подсети IP-Адрес абоненту, отвечая обратно

 

Все работает :)

 

Да, можно было бы, конечно, использовать какие-то сторонние DHCP, как-то изголяться с радиусом, но мне проще было написать свои RADIS/DHCP сервера, благо, они встроены в сервис, который так или иначе на брасе запускается,

так как еще и SNMP ловит.

 

Что понравилось: работает, просто работает. Автор весьма дружелюбен, отвечает, какие-то нужные штуки реализовал без вопросов.

Что не понравилось: на тот момент (июнь-июль 2019) отсутствовал (не знаю, как сейчас) какой-либо аналог tcpdump. Рекомендовалось поставить порт-мирроринг, но это было в моем случае очень не удобно. 

                                Консольная утилита оставляет желать лучшего. Хотел переписать, но стало уже не нужно. Вернусь к использованию - разберемся.

 

Что совсем не понравилось - закрытый код. Хотя, тут можно понять - денег хочется всем. Когда я пришел и сказал начальству "А дайте мне 50к" - "А зачем?"  - "Ну.. XXX допишут.." - "Е***ся чтоли??!"

По всей видимости, именно поэтому и поставили в итоге циску, там ничего дописывать не надо ))) Очень сложно спорить с начальством, дать денег "каким-то разработчикам" или "купить железку" - тут однозначно железка как-то более ощутима физически.

С другой стороны, начальство у всех разное и я, к примеру, не пожалел бы денег даже на это (если бы были), если бы не одно - если автор "перегорит", все деньги, которые были потрачены до этого пойдут в никуда, так как продолжить некому, и в случае 

каких-то проблем, прийдется тратить в сто раз большие деньги на переход на другое решение.

 

Как-то так )

 

В остальном проект отличный, рабочий. 

 

 

 

 

Снимок экрана от 2019-08-25 19-38-50.png

Снимок экрана от 2019-08-25 19-40-07.png

Share this post


Link to post
Share on other sites
3 часа назад, TSM сказал:

В одном регионе установил сервер, подтянул около 2к абонентов, получилось следующее:

Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz

 

 

на 2000 абонентов и 2 гигабита трафика, оно просто  for fun что ли?

 

Там и на самой обычной реализации linux ядра нагрузка едва ли бы до 5-10% дотянула.

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

 

такими оптимизациями начинают морочиться когда 50 тысяч абонентов не  влезает.....

 

Share this post


Link to post
Share on other sites
Спасибо за отзыв.
 
Из новых фич:
 
Допилен ipoe влан на группу абонентов.
 
Radius accounting для ipoe.
 
Сейчас работаю над HQoS с использованием nDPI в качестве классификатора трафика для  приоритезации трафика внутри абонентских полос.
 
Новые сборки уже коммерческие.
Цены в личке.

Share this post


Link to post
Share on other sites
15 hours ago, LostSoul said:

на 2000 абонентов и 2 гигабита трафика, оно просто  for fun что ли?

 

Там и на самой обычной реализации linux ядра нагрузка едва ли бы до 5-10% дотянула.

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

 

такими оптимизациями начинают морочиться когда 50 тысяч абонентов не  влезает.....

 

Совершенно верно, for fun :) Задача была "вот тебе сервер - сделай с него брас". Можно было по-старинке, скриптиками...

 

Хотелось сделать решение, которое можно было бы ставить в городе для терминации трафика. Как Вы понимаете,  ставить сразу на всех абонентов - как-то такая себе идея. А вот регион с 2-5 тысячами абонентов самое то, чтобы обкатать.

Тут главным было скорее именно то, что это брас, а не "набор скриптов". Хотелось плотной интеграции с биллингом.

 

Но, как я уже сказал - дальше 2К абонентов не выросло, хотя планировалось. 

Share this post


Link to post
Share on other sites

Не заметил решения по IPoE : L2 и авторизация по opt82. Планируется ли оно ?

Share this post


Link to post
Share on other sites
В 26.09.2019 в 05:33, baronzzz сказал:

Не заметил решения по IPoE : L2 и авторизация по opt82. Планируется ли оно ?

есть две IPoE схемы: влан на абонента, влан на группу абонентов. TheRouter всегда работает по L3 cхеме,

т.е. всегда выступает в качестве маршрутизатора. Работа в режиме прозрачного L2 моста не планируется.

dhcp relay поддерживает вставку opt82 в запросы. что такое авторизация по opt82? авторизация происходит с помощью radius протокола, в запросах на авторизацию вся информация об абоненте (влан, мак и т.д) есть. Сессии инициируются по неклассифицированным пакетам (т.е. по любым неизвестным пакетам). Инициация сессий по dhcp пакетам есть в планах.

 

Share this post


Link to post
Share on other sites

@kisa 

Тут имеется в виду авторизация L2 или L3, т.е. в одном влане БРАС и клиент, или кто-то вланы терминирует до БРАСа. Понятно что сам БРАС работает в Л3 режиме.

Share this post


Link to post
Share on other sites
8 минут назад, kayot сказал:

Тут имеется в виду авторизация L2 или L3, т.е. в одном влане БРАС и клиент, или кто-то вланы терминирует до БРАСа.

поддерживаются оба варианта

 

11 минут назад, kayot сказал:

Понятно что сам БРАС работает в Л3 режиме.

есть такие, которые работают как прозрачный l2 мост.

Share this post


Link to post
Share on other sites

Добавлена инициация сессий по dhcp пакетам. Добавлен режим arp security, в котором для каждого l2 connected subscriber создается статическая arp запись. Режимы инициации l2 suscr теперь контролируются через конфиг. Ttl сабскрайберов можно задавать через radius.

Share this post


Link to post
Share on other sites

Скажите пожалуйста

есть ли поддержка unambered vlan для VIF ? если да, то будет ли роутер отвечать на arp reply  своим mac на все arp who-has ?

Есть ли source-check для VIF во избежании подмены ip адресов ?

Eсть ли шейпер для VIF ?

 

 

 

 

Edited by dios

Share this post


Link to post
Share on other sites
10 часов назад, dios сказал:

Скажите пожалуйста

есть ли поддержка unambered vlan для VIF ?

ip unnumbered есть.

 

vif могут создаваться полностью динамически, как только принят неклассифицированный

пакет (любой), с последующей авторизацией создания нового vif через radius.

это режим IPOE "vlan per subscriber". и это уже не VIF объекты, а subscriber.

 

а есть режим IPOE влан на группу абонентов.

тогда нужные VIF создаются статически командами cli, например, вот так:

 

vif add name subsp0 port 0 type qinq range svid 2000 2100 cvid 2500 2800 flags l2_subs

т.е. описывается диапазон вланов, для которых надо создать интерфейсы на которых буду l2 connected сабы.

 

затем абонентские сессии (самы сабы) на этих VIF уже будут создаваться и авторизовываться динамически с помощью radius. в этом случае инициация создания сабскрайбера возможна по входящим/исходящим неклассифицированным пакетам любого типа, либо по dhcp ack в случае применения dhcp relay.

 

Цитата

 

 

если да, то будет ли роутер отвечать на arp reply  своим mac на все arp who-has ?

proxy arp есть

 

Цитата

Есть ли source-check для VIF во избежании подмены ip адресов ?

если речь а Reverse Path Filtering как в том же линукс.

то пока нет. но сделать не трудно.

 

Цитата

Eсть ли шейпер для VIF ?

шейпер для subscriberов есть. шейпер для vif тоже есть.

 

Edited by kisa

Share this post


Link to post
Share on other sites

есть howto по IPOE, где все моменты, упомянутые выше, описаны с полными конфигами, схемами и т.п.,

за исключением range vif и других range команд, которые были добавлены совсем недавно.

https://github.com/alexk99/the_router/blob/master/bras/bras_howto_eng.md

 

и есть howto по PPPoE

https://github.com/alexk99/the_router/blob/master/bras/pppoe_bras_howto_eng.md

Share this post


Link to post
Share on other sites
В 26.09.2019 в 06:33, baronzzz сказал:

Не заметил решения по IPoE : L2 и авторизация по opt82. Планируется ли оно ?

IPOE функция инициации L2 сабов по dhcp доделана. поддержка option82 для dhcp relay есть.

Share this post


Link to post
Share on other sites

Proxy arp немного не то. Он подойдет если вся подсеть терминируется на одном роутере. А если подсеть размазана по нескольким роутерам это уже не подходит. 

На циске  например, если указать unnambered в vlan, то она на любой arp who-has из этого vlan отвечает хосту своим маком, тем самым заставляя хост отправить на себя пакет, а далее она уже отроутит по таблице маршрутов. 

Share this post


Link to post
Share on other sites

вот вы ровно точно и описали алгоритм работы proxy arp.

 

и если подсеть терминируется на разных раутерах, то proxy arp одного

из них получив запрос, затем убедившись, что у него есть маршрут до ip 

адреса из запроса (это может быть соседний интерфейс к соседнему раутеру, а может быть просто другой интерфейс,

к другому сабу, как в случае когда подсеть используется unnumbered другими vlan per subscriber),

и этот маршрут не ведет обратно в интерфейс откуда получен запрос, ответит на него своим мак.

затем получив трафик на этот мак перенаправит его в другой интерфейс согласно таблице маршрутизации.

 

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