Jump to content

Recommended Posts

  • Replies 176
  • Created
  • Last Reply

Top Posters In This Topic

Posted

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

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

Posted

Новый багфикс-релиз нашего софта (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

  • 4 weeks later...
Posted (edited)

Есть ли возможность 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 стабильности на какой-нибуть более развитый софт после тестирования было бы совсем не жалко потратиться.

Edited by Wingman
Posted

Есть ли возможность 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 и тп), так что вполне можно использовать для референса. Уже знаем где можем улучшить, так что думаю это даже не предел

Posted

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

 

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

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

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

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

 

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

Posted

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

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

 

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

Posted

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

 

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

Posted

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

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

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

Posted

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

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

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

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

Posted

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

  • 3 weeks later...
Posted (edited)

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

 

Качать тут : 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 релей в этой альфе мало тестировался и пока рассматривается как не рабочий. Поправим к следующей альфе

Edited by arni
  • 2 weeks later...
Posted (edited)

Выпустили 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-релей еще допиливаем.

Edited by arni
  • 1 month later...
Posted

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

  • 3 weeks later...
Posted

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

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

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

Posted (edited)

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

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

 

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

 

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

 

 

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

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

Edited by Wingman
Posted (edited)

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

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

 

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

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

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

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

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

 

 

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

 

 

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

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

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

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

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

 

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

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

Edited by arni
Posted

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

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

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

Posted

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

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

Posted (edited)

Выпустили багфикс-релиз 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

Edited by arni
Posted (edited)

Не могу никак разобраться с настройкой 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?

Edited by crank

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...