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

Хочу пользователей, включенных через D-Link DES-3200 и через OLT BDCOM P3310B, пускать через один и тот же BRAS accel-ipoe, но одних в одном влане, а других -- в своём. Но Agent-Remote-Id и Agent-Circuit-Id у них разные (различна как длина, так и структура), а, значит, способ формирования username у них разный.

Так вот вопрос -- как быть с указанием пути к скрипту LUA для формирования username?

Можно ли указать для каждого влана отдельный LUA-скрипт?

Share this post


Link to post
Share on other sites

Я бы не отказался от примера скрипта LUA для BDCOM.

 

Agent-Remote-Id = "MAC_OLT" (6 bytes)

 

Agent-Circuit-Id = "vlan-id|epon-port|virtual-port" (2 bytes + 2 bytes + 1 byte)

 

username = "MAC_OLT|vlan-id|virtual-port"

Edited by byteplayer

Share this post


Link to post
Share on other sites

1. можно указывать свою lua функцию на каждом интерфейсе

2. у объекта пакета (аргумент lua функции) имеется функция ifname()

Share this post


Link to post
Share on other sites

roysbike,

С ip unnumbered вполне можете выдавать /16.

62 адреса на 10к человек? Чего-то у Вас не так.

62-белых, и /23 сеть разбита для nat

Share this post


Link to post
Share on other sites

1. можно указывать свою lua функцию на каждом интерфейсе

2. у объекта пакета (аргумент lua функции) имеется функция ifname()

 

Мне нужно иметь две функции -- dlinkdes3200 и bdcomp3310b.

Я так понял, что аксель с помощью луа может сформировать username, например так:

для dlinkdes3200:

username="c8d3a39b27d20002" (MAC свича и порт номер 2)

для bdcomp3310b:

username="fcfaf7c50d02057f01" (MAC OLT, влан 1407, порт номер 1)

 

Примечание: 1. В OLT порт 1 -- это уже не физический порт, а "виртуальный порт", который соответствует LLID.

2. Номер влан играет роль, так как в моей схеме он по-сути обозначает уникальный номер физического порта -- vlan-per-epon_port.

 

Тогда биллингу надо при первом включении абонента записывать эти данные в нужное поле, когда абонент из гостевого пула попадает на страницу регистрации. А всем неидентифицированным выдавать ай-пи из гостевого пула. Зарегистрировать себя абонент может, если знает логин и пароль к личному кабинету. Я правильно понимаю?

Edited by byteplayer

Share this post


Link to post
Share on other sites

Давно не просматривал форум. Всплывал вопрос по l3 который интересен мне.

тут выше уже обсуждалось, но я так и не понял до конца как оно должно работать

клиенты находятся за каким-то маршрутизатором, который релеит дхцп запросы ?

Именно так

в режиме L2 accel при старте сессии добавляет до клиента маршрут на интерфейс с которого пришел дхцп запрос

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

В случае L3 маршрутизируется в в соответствии с таблицей маршрутизации.

Edited by brodayga

Share this post


Link to post
Share on other sites

Xeb, вопрос по IPoE , accel работает в режиме L2, клиенту отдаю /30 сеть, на брасе создается vlan с маской /32, возмонжо это как то исправить, чтобы маска была таже что у клиента. Или так задуманно?

Share this post


Link to post
Share on other sites

xeb

Обновился до коммита 30397cca6a4472f3087d1071ecc43438e39f705f.

В списке show sessions висят сессии с state finish. Так и должно быть?

При этом на сервере расплодились zombie-процессы:

 

 

#ps aux | grep Z

root 11241 0.0 0.0 0 0 ? Z 11:12 0:00 [ip-up] <defunct>

root 11272 0.0 0.0 0 0 ? Z 11:12 0:00 [ip-up] <defunct>

 

#pstree -p -s 11241

init(1)───accel-pppd(3069)───ip-up(11241)

 

#ps aux | grep Z | wc -l

231

 

 

Share this post


Link to post
Share on other sites

Пока нет автоматических тестов, стабилизировать что-то тяжело.

 

Есть базовая концепция как это реализовать - создание 2ух netns и в них запускать сервер и клиент поверх слинкованной пары виртуальных ethernet-интерфейсов (linux veth peer), я проверял это работает и главное не требует виртуалок для запуска тестов, т.е. можно сделать человеческий make test

 

Но тут тянутся зависимости в виде радиуса, dhcp/pppoe/l2tp/pptp клиента, побочных утилит. В разных дистрибутивах это всё отличается

 

Кроме того, не очень понятно на чём это писать - на C значит свести комьюнити к нуля, на bash/perl выглядет громоздко, на php - сочтут быдлокодом. python? или использовать какие-то фреймворки...

Share this post


Link to post
Share on other sites

Xeb, вопрос по IPoE , accel работает в режиме L2, клиенту отдаю /30 сеть, на брасе создается vlan с маской /32, возмонжо это как то исправить, чтобы маска была таже что у клиента. Или так задуманно?

ну все таки а почему не использовать аннамберед ? зачем городить огород с /30? люди наоборот рады что есть возможность аннамберед использовать

 

у меня схема следующая:

на лупбеке висит адрес - который является шлюзом для клиентов....

настроено автосоздание вланов но без автоконфигурации - т.е. влан на клиента создается голый без адреса

в этот голый влан аццел крутит адрес по аннамберед /32 ... клиенту отдаю маску большую ... для примера /24

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

все работает отлично.

 

а ну и запущен оспф... так как брасов всяких разных есть много ....

Share this post


Link to post
Share on other sites

1.7.4

 

Обновился до 1.7.4 (я так понимаю теперь /lib можно убить, а /lib64 теперь вместо него).

До этого стояла версия 1.7.3 на 64 битной системе.

Однако в логах ошибка так и не пропала.

В связи с чем связано попадание вот этого в лог?

Такая строка падает в лог, если пользователь указал любой несуществующий логин.

 

[2014-05-29 13:34:27]:  warn: ppp166: mschap-v2: user not found
[2014-05-29 13:34:29]:  warn: ppp167: mschap-v2: user not found
[2014-05-29 13:34:29]:  warn: ppp168: mschap-v2: user not found
[2014-05-29 13:34:30]:  warn: ppp161: mschap-v2: user not found
[2014-05-29 13:34:34]:  warn: ppp161: mschap-v2: user not found
[2014-05-29 13:34:36]:  warn: ppp166: mschap-v2: user not found
[2014-05-29 13:34:37]:  warn: ppp167: mschap-v2: user not found
[2014-05-29 13:34:37]:  warn: ppp168: mschap-v2: user not found
[2014-05-29 13:34:37]:  warn: ppp170: mschap-v2: user not found
[2014-05-29 13:34:42]:  warn: ppp161: mschap-v2: user not found
[2014-05-29 13:34:44]:  warn: ppp166: mschap-v2: user not found
[2014-05-29 13:34:44]:  warn: ppp167: mschap-v2: user not found
[2014-05-29 13:34:44]:  warn: ppp168: mschap-v2: user not found
[2014-05-29 13:34:47]:  warn: ppp161: mschap-v2: user not found
[2014-05-29 13:34:49]:  warn: ppp166: mschap-v2: user not found
[2014-05-29 13:34:51]:  warn: ppp161: mschap-v2: user not found
[2014-05-29 13:34:51]:  warn: ppp167: mschap-v2: user not found
[2014-05-29 13:34:52]:  warn: ppp168: mschap-v2: user not found
[2014-05-29 13:34:56]:  warn: ppp161: mschap-v2: user not found
[2014-05-29 13:34:56]:  warn: ppp166: mschap-v2: user not found
[2014-05-29 13:34:58]:  warn: ppp167: mschap-v2: user not found
[2014-05-29 13:34:58]:  warn: ppp168: mschap-v2: user not found
[2014-05-29 13:34:59]:  warn: ppp170: mschap-v2: user not found
[2014-05-29 13:35:03]:  warn: ppp161: mschap-v2: user not found
[2014-05-29 13:35:05]:  warn: ppp166: mschap-v2: user not found
[2014-05-29 13:35:05]:  warn: ppp167: mschap-v2: user not found
[2014-05-29 13:35:06]:  warn: ppp168: mschap-v2: user not found
[2014-05-29 13:35:06]:  warn: ppp161: mschap-v2: user not found

При этом авторизация у правильных проходит нормально и такой строки они не создают.

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

Edited by replicant

Share this post


Link to post
Share on other sites

При этом авторизация у правильных проходит нормально и такой строки они не создают.

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

У вас же наверное [ppp] verbose=1 стоит. Уберите с конфига verbose=1 или закомментируйте в accel-pppd/auth/auth_mschap_v2.c строку 459

passwd = pwdb_get_passwd(&ad->ppp->ses, name);
if (!passwd) {
if (conf_ppp_verbose)
	//log_ppp_warn("mschap-v2: user not found\n");
chap_send_failure(ad, conf_msg_failure, conf_msg_failure2);
return -1;
}

 

или уровень лога инфо поставьте

 

passwd = pwdb_get_passwd(&ad->ppp->ses, name);
if (!passwd) {
if (conf_ppp_verbose)
	log_ppp_info2("mschap-v2: user not found\n");
chap_send_failure(ad, conf_msg_failure, conf_msg_failure2);
return -1;
}

 

После пересобирите

Edited by Dimka88

Share this post


Link to post
Share on other sites

Xeb, вопрос по IPoE , accel работает в режиме L2, клиенту отдаю /30 сеть, на брасе создается vlan с маской /32, возмонжо это как то исправить, чтобы маска была таже что у клиента. Или так задуманно?

ну все таки а почему не использовать аннамберед ? зачем городить огород с /30? люди наоборот рады что есть возможность аннамберед использовать

 

у меня схема следующая:

на лупбеке висит адрес - который является шлюзом для клиентов....

настроено автосоздание вланов но без автоконфигурации - т.е. влан на клиента создается голый без адреса

в этот голый влан аццел крутит адрес по аннамберед /32 ... клиенту отдаю маску большую ... для примера /24

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

все работает отлично.

 

а ну и запущен оспф... так как брасов всяких разных есть много ....

эта схема работает для одного блока IP или для нескольких?

Share this post


Link to post
Share on other sites

ichthyandr

А какая разница? Я вешаю из каждого блока 1 ip на loopback, и выдаю его как шлюз клиенту. Т.е. для клиентов с IP из разных блоков выдается разная маска и шлюз.

Share this post


Link to post
Share on other sites

Добрый день,

используем сервер Debian 6 с accel-ppp 1.7.4, в качестве авторизации - Radius от Lanbilling на соседнем сервере. Задействован встроенный в accel-ppp шейпер, работает изменение скорости по времени, скорости клиентов в мир - до 10Мбит/20Мбит (день/ночь).

Сейчас есть такая задача - разрешить клиентам обращение в сеть дружественного провайдера (подсеть с белыми ИП) на скорости 100Мбит (либо вообще без ограничений, на клиентских портах все-равно 100Мбит).

Можно ли это реализовать на стандартном функционале accel-ppp?

Edited by AccessPoint

Share this post


Link to post
Share on other sites

это значит, что на встроенном шейпере такое сделать невозможно?

 

Тут неоднократно говорилось, что на Си реализовать добавления правил для каждого по вкусу не так так просто да и не имеет смысла, используйте ip-up и ip-change скрипты для установки шейпера.

Share this post


Link to post
Share on other sites

ichthyandr

А какая разница? Я вешаю из каждого блока 1 ip на loopback, и выдаю его как шлюз клиенту. Т.е. для клиентов с IP из разных блоков выдается разная маска и шлюз.

понял, спасибо. планирую попробовать L2-connected vlan на абонента, белые ip, авторизация радиусом.

еще вопрос про л4-редирект. Хочется реализовать такую штуку:

1. нет денег - редирект на ЛК

2. сменился мак в c-vlan - редирект на страничку авторизации ( имя/пароль )

делал кто подобное?

Share this post


Link to post
Share on other sites

У нас реализована так:

1. нет денег - редирект на ЛК

Биллинг выдаёт ip из пула 172.20.0.1/24, default GW редирект на страницу ЛК

 

2. сменился мак в c-vlan - редирект на страничку авторизации ( имя/пароль )

Биллинг выдаёт ip из пула 172.31.0.1/24, default GW редирект на страничку авторизации ( имя/пароль ), если прошёл авторизацию то запись mac c-vlan в биллинге, сброс сессии и полетели.

Edited by Dimka88

Share this post


Link to post
Share on other sites

У нас реализована так:

1. нет денег - редирект на ЛК

Биллинг выдаёт ip из пула 172.20.0.1/24, default GW редирект на страницу ЛК

 

2. сменился мак в c-vlan - редирект на страничку авторизации ( имя/пароль )

Биллинг выдаёт ip из пула 172.31.0.1/24, default GW редирект на страничку авторизации ( имя/пароль ), если прошёл авторизацию то запись mac c-vlan в биллинге, сброс сессии и полетели.

понял, спасиб )

Share this post


Link to post
Share on other sites

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.