Перейти к содержимому
Калькуляторы

BRAS soft для Linux (шейпер, файрволл, CG-NAT) Еще один софт для нарезки скорости клиентам

так а что там с IP-unnumbered QinQ и дхцп ? какие то релизные даты есть ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

дописали, уже тестируем, исправляем. Дату релиза еще не намечали, но первую альфу хотим уже через пару-тройку недель выпустить.

Сам IP-unnumbered уже работает, но ARP/DHCP пока что еще не стабильны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Новый багфикс-релиз нашего софта (15.2.5). На этот раз исправлений много :

 


  •  
  • Исправлена маска при добавлении IP адресов в LIST_ADD (для IPv4)
  • Улучшен перформанс обработки добавления/удаления адресов в ACL (IPv4, IPv6, Hostlist)
  • добавлена возможность уничтожить только один ACL (был только flush, который сам ACL не удалял)
  • исправлен баг с выводом uptime
  • исправлен неверный byte-order в ACL (IPv4)
  • оптимизировано и исправлено отрицание match-правил в некоторых правилах
  • исправлен dump временных записей в ACL (IPv4)

 

качать как всегда тут : http://www.uplink-spe.com/downloads/

uplink-spe_15.2.5_centos7-3.10.0-229.1.2.el7.x86_64.tar.gz

uplink-spe_15.2.5_ubuntu1504-3.19.0-15-generic.tar.gz

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть ли возможность nat 1-в-1 по ответу радиуса? С добавлением роутов в блекхол, чтобы бёрд/квага могла их анонсить? (По аналогии с lISG)

 

Есть ли возможность (профилями, присылаемыми радиусом?) сделать два типа редиректа по ответу радиуса:

1) "абонент не найден", и редиректить на страницу для ввода логина и пароля и последующей обработки скриптами

2) стандартную страничку "нет денег"

?

 

Есть ли возможность терминации Q-in-Q-in-Q?

Очень странная хотелка, да :) Но очень сильно облегчила бы жизнь: каждому порту свитча можно было бы присваивать ВСЕГДА vlan id 1-24 или 1-48, заворачивать во vlan-на-свитч, а уже его заворачивать во vlan-на-район/город. Ну а на брасе - разворачивать в обратном порядке, и слать в радиус три vlan id

 

Есть ли защита релея от dhcp-флуда?

 

Есть ли CoA?

 

Есть ли/планируется ли поддержка временных интервалов и, в зависимости от них, скоростей для тарифов/профилей?

 

У вас все тесты синтетические "часок погонять трафик на столе", или тестируете хоть на какой-нибуть мало-мальски нагруженной реальной сети?

 

Когда альфа планируется? :)

 

------

 

Сейчас в хвост и в гриву пользуем lISG, но потихоньку думаем об альтернативе.

lISG великолепно показал себя железобетонной простотой и стабильностью, но на будущее - думаем о внедрении qinq и ipv6, которых в нём не предвидится ;(

 

При сопоставимой с lisg стабильности на какой-нибуть более развитый софт после тестирования было бы совсем не жалко потратиться.

Изменено пользователем Wingman

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть ли возможность nat 1-в-1 по ответу радиуса? С добавлением роутов в блекхол, чтобы бёрд/квага могла их анонсить? (По аналогии с lISG)

Nat 1-в-1 - можно. просто на клиента выдавайте пул портов в 2^16

С маршрутами - нет, не делали такое. Можно как костыль мониторить список текущих сессий и обновлять соответственно маршруты.

Если реально нужная фича - можно и плугин какой написать

 

 

Есть ли возможность (профилями, присылаемыми радиусом?) сделать два типа редиректа по ответу радиуса:

1) "абонент не найден", и редиректить на страницу для ввода логина и пароля и последующей обработки скриптами

2) стандартную страничку "нет денег"

?

 

Конечно! Радиус должен кидать на разные профили, а там уже TPROXY по вкусу :)

 

Есть ли возможность терминации Q-in-Q-in-Q?

Очень странная хотелка, да :) Но очень сильно облегчила бы жизнь: каждому порту свитча можно было бы присваивать ВСЕГДА vlan id 1-24 или 1-48, заворачивать во vlan-на-свитч, а уже его заворачивать во vlan-на-район/город. Ну а на брасе - разворачивать в обратном порядке, и слать в радиус три vlan id

 

Ой... На 100% сейчас не скажу, но можно попробовать поднять QinQ на VLAN интерфейсе. Системе должно быть пофигу, а мы не требуем чтобы интерфейс был физическим.

Перед выпуском тестовой версии попробуем, посмотрим как будет работать :)

 

Есть ли защита релея от dhcp-флуда?

Да. А так же ARP процесса тоже. Делаем на уровне саб-интерфейса.

Можно выставить дефалтовый pps на DHCP и/или ARP пакеты, который будет выдаваться на все новые сабы + можно изменить/отключить на живом сабе.

 

Есть ли CoA?

Да. фактически radius-proxy делает session update <ip> ....

 

Есть ли/планируется ли поддержка временных интервалов и, в зависимости от них, скоростей для тарифов/профилей?

Уже есть в 15.2 : match time from <hh:mm> to <hh:mm> on [Mon,Tue,Wed,...]

 

У вас все тесты синтетические "часок погонять трафик на столе", или тестируете хоть на какой-нибуть мало-мальски нагруженной реальной сети?

И так и так. Пока в разработке - тестируем синтетически. Потом на зеркалированой копии трафика живых клиентов. Потом в live :)

 

Когда альфа планируется? :)

 

Вот-вот будет. Допиливаем DHCP - много процессинга пакетов, который нужно сделать аккуратно и не отправлять систему в панику.

Очень стараемся по-скорее, но все же приоритет на надежность - все-таки это ядро.. как процесс не перезапустить :(

 

 

------

 

Сейчас в хвост и в гриву пользуем lISG, но потихоньку думаем об альтернативе.

lISG великолепно показал себя железобетонной простотой и стабильностью, но на будущее - думаем о внедрении qinq и ipv6, которых в нём не предвидится ;(

 

При сопоставимой с lisg стабильности на какой-нибуть более развитый софт после тестирования было бы совсем не жалко потратиться.

 

15.2 достаточно стабилен уже, правда в нем нет qinq :/ Для тестов он вполне близок по функционалу к следующей версии - мы старые функции не меняли, только добавляем новый функционал. Так что можно даже начать с использования 15.2 и миграцию на следующую версию, когда она себя тоже зарекомендует как стабильная. Первые альфы беты конечно не для продакшна, но релизы доведем до стабильного качества

 

Кстати, недавно получили бенчмарки на i7-4770 CPU @ 3.40GHz + Intel x520-DA2 на реальном трафике и наконец знаем где потолок на таком железе - 1.9Mpps и 14.5Gbit/s (по данным софта, а мы считаем длину пакета из заголовка IP). С учетом тэгов - чуть больше 15Gbit/s. На этом трафике кончается эффективность кэша и CPU начинает подползать с 60%. Данные собрали, красивые графики сделаем для sales позже :)

Все тесты делали с реальной конфигурацией (разные зарезки/переадресации Tproxy и тп), так что вполне можно использовать для референса. Уже знаем где можем улучшить, так что думаю это даже не предел

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть ли возможность nat 1-в-1 по ответу радиуса? С добавлением роутов в блекхол, чтобы бёрд/квага могла их анонсить? (По аналогии с lISG)

 

По маршрутам - в следующей версии маршруты будут создаваться в случае использования qinq/ip-unnumbered. Но и для обычного рутинга в 15.2 мы нашли решение (костыль? :) :

- можно настроить прием аккаунтинг-пакетов от софта на роут-сервере и обрабатывать их скриптом - добавляя/удаляя маршруты. Структура UDP-пакета не сложная и разобрать ее тем же perl-ом - в несколько строчек можно.

Единственное, что нужно учесть - когда огромный поток клиентов перепрыгивает на другой брас - может не выдержать RX-буфер и какие-то пакеты потеряются.

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

 

Как уже писал, можно доработать что-то в 15.2, чтобы создавать/удалять маршруты вместе с сессиями. Тогда надо будет знать как их лучше обновлять, чтобы еще и форвардингу не мешать. Есть какие-то предпочтения? Как у себя в сети это решаете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как уже писал, можно доработать что-то в 15.2, чтобы создавать/удалять маршруты вместе с сессиями. Тогда надо будет знать как их лучше обновлять, чтобы еще и форвардингу не мешать. Есть какие-то предпочтения? Как у себя в сети это решаете?

Всё делает lISG. При старте сессии - добавляет маршрут, при стопе - гасит

 

Кстати, а как у вас "заканчиваются" ipoe-сессии? В lisg есть настраиваемый таймаут, по окончании которого при отсутствии трафика сессия считается завершенной, плюс - настраиваемый таймаут безусловного завершения сессии - т.е., например, раз в сутки она гасится и авторизовывается заново

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, а как у вас "заканчиваются" ipoe-сессии? В lisg есть настраиваемый таймаут, по окончании которого при отсутствии трафика сессия считается завершенной, плюс - настраиваемый таймаут безусловного завершения сессии - т.е., например, раз в сутки она гасится и авторизовывается заново

 

Точно так же делаем. Есть idle_timeout и max_duration сессии и их так же можно менять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда уже релиз будет?

Очень стараемся по-скорее. Мы пока еще в глухом дебаге, как только исправим панику в паре мест - будем собирать альфу.

Для продакшна альфа не пойдет точно, но на потрогать должно быть достаточно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда уже релиз будет?

Очень стараемся по-скорее. Мы пока еще в глухом дебаге, как только исправим панику в паре мест - будем собирать альфу.

Для продакшна альфа не пойдет точно, но на потрогать должно быть достаточно

Да мы уже напробовались и фидбеков накидали в свое время ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Новый релиз очень объемный (по объему нового кода), стараемся стабильнее сделать. Надеюсь альфу/бету пройдем быстро :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Наконец-то можем поделиться первой альфой следующей версии нашего софта. Постепенно исправляем ошибки до релиза, но уже сейчас основной функционал довольно стабилен.

 

Качать тут : http://www.uplink-spe.com/downloads/alpha_builds/uplink-spe_15.8alpha1_ubuntu1504-3.19.0-15-generic.tar.gz

Документация (дорабатывается) тут : http://www.uplink-spe.com/docs/15.8/

 

Поскольку это только альфа, для продакшна еще сыровата и может паниковать.

 

Новшества :

  • Терминирование QinQ и Dot1Q + IP-Unnumbered
  • Встроенный DHCP-сервер (для статических и динамических лиз)
  • Встроенный DHCP-релей
  • Встроенный DHCP-Radius релей

Как и ранее, весь функционал в модуле ядра.

 

Сущействующий функционал не меняли, все багфиксы из 15.2 портируются в 15.8.

 

Будем рады вашим коментариям и критике!

 

 

PS.

DHCP-релей и DHCP-Radius релей в этой альфе мало тестировался и пока рассматривается как не рабочий. Поправим к следующей альфе

Изменено пользователем arni

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выпустили 2-ю альфу.

Исправили пару мелких багов и неверную инициализацию саб-интерфейса из qinqmap.

 

Так же обновили ядро до 3.19.0-25-generic

 

качать тут : http://www.uplink-spe.com/downloads/alpha_builds/uplink-spe_15.8alpha2_ubuntu1504-3.19.0-25-generic.tar.gz

 

PS. DHCP-релей еще допиливаем.

Изменено пользователем arni

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выпустили 3-ю альфу.

Поправили матчинг интерфейсов, дамп топологии, и создание сессий.

 

качать тут : http://www.uplink-spe.com/downloads/alpha_builds/

 

PS. DHCP-релей еще допиливаем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Продукт хоть развивается? А то последний альфа от 7 августа..

Изменено пользователем SyJet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, конечно :) добавляем IPv6 в QinQ/Unnumbered и исправляем DHCP-релей - выпустим еще хотя бы одну альфу и тогда доберемся до беты!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В открытом доступе теперь доступны XML-файлы для KLISH (командная оболочка для Cisco-подобной консоли).

https://github.com/uplink-spe/uplink-cli

Реализовано пока еще не все, но постараемся к релизу 15.8 сделать все команды (15.2 и 15.8)!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

При конфигурации QinQ/vlan-per-user возможно ли в одном клиентском влане иметь две абонентских сессии?

Такое встречается частенько, к сожалению: например, юзер + STB, или юзер с несколькими компами, категорически не приемлящий роутеры

 

Насколько оно стабильно на данный момент? :)

 

p.s. Уже собрался было пощупать, как обнаружил (ну туплю, да), что ядро строго ограничено, да ещё и 3.13. Вроде как в последних ядрах очень заметно переработали сетевую подсистему, сделав её заметно шустрее...

 

 

И сборки под убунту и центось ;( Нет чтоб под дебиан и генту :))

Кстати, может быть, имеет смысл открыть сурцы клиента? Без модулей там врядли что-то особенно важное для конкурентов будет, зато модули зависят только от версии ядра, а бинарники можно было бы собрать на любой системе

Изменено пользователем Wingman

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

При конфигурации QinQ/vlan-per-user возможно ли в одном клиентском влане иметь две абонентских сессии?

Такое встречается частенько, к сожалению: например, юзер + STB, или юзер с несколькими компами, категорически не приемлящий роутеры

 

Насколько оно стабильно на данный момент? :)

Да, конечно можно! Работает вполне стабильно, у нас осталось только DHCP-релей доделать.

QinQ отвечает только за сетевой уровень, сессии создаются потом - так что можно хоть все сессии держать в одном QinQ влане :)

(правда, маршруты на QinQ сабинтерфесе все в одном списке, так что лучше держать их количество в разумных пределах)

Или даже объединить в одной master-сессии разные IP-адреса из разных QinQ вланов :)

 

 

p.s. Уже собрался было пощупать, как обнаружил (ну туплю, да), что ядро строго ограничено, да ещё и 3.13. Вроде как в последних ядрах очень заметно переработали сетевую подсистему, сделав её заметно шустрее...

 

 

И сборки под убунту и центось ;( Нет чтоб под дебиан и генту :))

Кстати, может быть, имеет смысл открыть сурцы клиента? Без модулей там врядли что-то особенно важное для конкурентов будет, зато модули зависят только от версии ядра, а бинарники можно было бы собрать на любой системе

Да, уже давно не выпускали новых билдов :/ можем собрать под свежее ядро или другую систему если есть интерес!

У нас чаще просят компилять под их кастомное ядро, так что особо не гоняемся за свежими апдейтами и разными дистрами) стараемся перед билдом обновиться до свежей версии из стандартных репозиториев чтобы было проще с демо-версией.

Скоро соберем образ виртуалки для демо, будет еще легче играться ;)

 

А про открытие клиента - скорее всего мы его заменим. В его рамках нам уже тесновато, так что подумываем сделать KLISH для консоли и HTTP API - и сразу открытыми их делать. Но пока что "руки не доходят посмотреть" :)

пока просто собираем бинарники под нужную ос

Изменено пользователем arni

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

:) самая нужная ОС это leaf для меня. Можно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

:) самая нужная ОС это leaf для меня. Можно?

Конечно! все что нам нужно это иметь devel-версию их ядра (kernel-devel пакет) чтобы мы могли скомпилять (если у вас кастом).

Я так понимаю с LEAF проще согласовать версию - и мы соберем под их стоковое ядро. Присылайте, сделаем!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Конечно! все что нам нужно это иметь devel-версию их ядра (kernel-devel пакет) чтобы мы могли скомпилять (если у вас кастом).

ядро - ванильное, с минимумом патчей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выпустили багфикс-релиз 15.2.6 (пока только для Ubuntu 15.10):

 

http://www.uplink-spe.com/downloads/uplink-spe_15.2.6_ubuntu1510-4.2.0-16-generic.tar.gz

 

  • поддержка ядер 4.2
  • несколько оптимизаций освобождения памяти для управляющих соединений (TCP/UDP сокеты)
  • чистка кода для большей совместимости с версией 15.8

 

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

 

UPD: добавили сборку для Centos 7 : http://www.uplink-spe.com/downloads/uplink-spe_15.2.6_centos7-3.10.0-229.20.1.el7.x86_64.tar.gz

UPD2: добавили сборку для Fedora 23 : http://www.uplink-spe.com/downloads/uplink-spe_15.2.6_fedora23-4.2.5-300.fc23.x86_64.tar.gz

Изменено пользователем arni

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не могу никак разобраться с настройкой SNAT. Похоже что-то не то делаю в профиле. Вот на этом тестирую

Система Ubuntu 15.10. Установлена последняя версия USPE.

Linux uspe 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

filename:       /lib/modules/4.2.0-16-generic/extra/ebt_USPE.ko
version:        15.2.6
description:    Xtables: USPE User service policy engine
author:         Uplink SIA <arni@uplink.lv>
license:        Proprietary
srcversion:     9C37B25DE9832D624676A69
depends:
vermagic:       4.2.0-16-generic SMP mod_unload modversions
parm:           max_profiles:Maximal Profile/Policer count (default - 128) (uint)
parm:           before_iptables:Packet hook (0 - in POST_ROUTING, 1 - in PRE_ROUTING (default)) (uint)
parm:           mgm_port:Management port to use (default - 44044) (uint)
parm:           licence_key:Licence key (charp)
parm:           customer_id:Customer ID (uint)
parm:           no_anon_stats:Don't send anonymous stats to Uplink (Default - 0) (uint)

Конфиг:

# System
# sys dump
system unmatched-action accept
# ACL
# ACL6
# Host ACL
# Profiles
profile create 1 name INET
profile add 1 action SNAT4 1
profile commit
# Policers
# policer 1 (INET)
policer create 1 name INET
policer add 1 action ACCEPT
policer commit
# Map
map add 172.16.0.0/24 1 1
# HTTP-redirects
# AAA
# Topology
topology interface l3 internet eno16777728 ip
topology interface l3 subscriber eno33554952 ip
topology vfilter 0
# NAT4
nat create 1 slot-size 2 name POOL
nat add private 1 172.16.0.0/24
nat add public 1 10.1.0.105/32
nat commit
# Done

 

 

Сессия видна

root@uspe:~# uspe-client session show all
IP              Age   Policy   IN pkts/Drop     IN bytes/Drop    OUT pkts/Drop    OUT Bytes/Drop   Flags
172.16.0.2      14      1/1          0/0              0/0              2/2            120/120     AUC---4-----
Session flags key:
-----------------------------------------------------------------
A - Approved                            U - Up, Online
C - Counters Enabled                    S - Slave
M - MAC filter present                  2 - QinQ session
4 - IPv4 based session                  6 - IPv6 based session
I - Interface based session             N - SNAT4 active
n - SNAT4 static ports present          Q - Has quota active

Здесь нет почему-то флага, что SNAT4 активирован для данной сессии.

 

Подскажите как правильно настроить работу SNAT?

Изменено пользователем crank

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.