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

Получаем DHCP-запрос с opt82, формируем по нему имя пользователя, получаем от Radius-сервера параметры пользовательского интерфейса, которые направляем на вход собственного скрипта, который выделяет пользователю VLAN, поднимает интерфейс, добавляет ip route bla-bla-bla, прописывает по SNMP QinQ-трансляцию и VLAN на коммутаторе доступа.

 

Я конечно много костылей повидал, но чтобы BRAS конфигурил коммутатор доступа при получении IP-адреса это что-то новенькое, думаю, что такая схема займёт первое место в конкурсе "кто круче сделает через ж...". Ну ведь реально изврат какой-то, а траблшутинг вообще весёлый у этого будет

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


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

Можно сделать вызовы пользовательских pre- и post- auth скриптов, а в них исполнять любые желания. Почему бы и нет.

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

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


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

Вопрос. Сейчас у нас трафик на pppoe-bras'ах ограничивается стандартно-красиво, иерархическим классовым шейпером, исход на физическом eth0, вход - mirred на ifb. Можно ли в схеме vlan-per-user шейпить без псевдо-девайсов? Т.е. всех клиентов вида eth.1, eth1.2, eth1.xx шейпить прямо на eth1 указав 4 байта смещения u32 фильтрам?

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


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

Можно ли в схеме vlan-per-user шейпить без псевдо-девайсов?

 

Скриптами if-up/if-down можно всё что угодно, на "встроенном шейпере" можно шейпить downstream на ethX.Y.Z и полисить апстрим без ifb

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


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

s.lobanov

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

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


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

Я конечно много костылей повидал, но чтобы BRAS конфигурил коммутатор доступа при получении IP-адреса это что-то новенькое, думаю, что такая схема займёт первое место в конкурсе "кто круче сделает через ж...". Ну ведь реально изврат какой-то, а траблшутинг вообще весёлый у этого будет

Это как вариант. Вызов скриптов позволит исполнить самые смелые желания :)

s.lobanov Вы когда-нибудь пытались подружить Vlan-per-user с UTM5? :) Вот там КОСТЫЛИ :)

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


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

Т.е. смысла в такой авторизации нет, придется ставить заглушку выдающую true.
можно noauth опцию добавить, чтобы заглушки не городить

Noauth нельзя, аккаунтинг не работает.

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

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


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

[ipoe]

Нашел баг. Релей для vlan-per-user режима(shared=0, mode=L2) зачем-то всегда отдает клиенту маску /32, независимо от того, что реально дает сервер.

Ответ сервера релею:

    10.200.0.2.67 > 10.200.0.100.67:
         Client-IP 194.12.94.21
         Your-IP 194.12.94.21
         Gateway-IP 10.200.0.100
         Client-Ethernet-Address 00:1a:4b:3b:85:d6
         Vendor-rfc1048 Extensions
           Magic Cookie 0x63825363
           DHCP-Message Option 53, length 1: ACK
           Server-ID Option 54, length 4: 10.200.0.2
           Lease-Time Option 51, length 4: 60
           Subnet-Mask Option 1, length 4: 255.255.255.0
           Default-Gateway Option 3, length 4: 194.12.94.21
           Domain-Name-Server Option 6, length 8: 91.203.164.1,91.203.164.18
           Router-Discovery Option 31, length 1: N
           Vendor-Option Option 43, length 13: 1.4.0.0.0.2.2.4.0.0.0.0.255
           Netbios-Node Option 46, length 1: h-node
           Agent-Information Option 82, length 23:
             Circuit-ID SubOption 1, length 9: eth1.2021
             Remote-ID SubOption 2, length 10: accel-pppd
           END Option 255, length 0

Ответ релея клиенту:

    10.200.0.100.67 > 194.12.94.21.68:
         Client-IP 194.12.94.21
         Your-IP 194.12.94.21
         Client-Ethernet-Address 00:1a:4b:3b:85:d6
         Vendor-rfc1048 Extensions
           Magic Cookie 0x63825363
           DHCP-Message Option 53, length 1: ACK
           Server-ID Option 54, length 4: 10.200.0.100
           Lease-Time Option 51, length 4: 60
           Subnet-Mask Option 1, length 4: 255.255.255.255
           Default-Gateway Option 3, length 4: 194.12.94.21
           Domain-Name-Server Option 6, length 8: 91.203.164.1,91.203.164.18
           Router-Discovery Option 31, length 1: N
           Vendor-Option Option 43, length 13: 1.4.0.0.0.2.2.4.0.0.0.0.255
           Netbios-Node Option 46, length 1: h-node
           Agent-Information Option 82, length 23:
             Circuit-ID SubOption 1, length 9: eth1.2021
             Remote-ID SubOption 2, length 10: accel-pppd
           END Option 255, length 0

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


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

[ipoe]

Еще один баг(или фича?)

В настройках есть

lease-time - время лизы которое мы отдаем клиенту

max-lease-time - таймаут после которого виртуальная сессия закрывается.

Так вот, если второе значение больше(а это логично) и работающий клиент кратковременно отключается, на время больше чем lease-time(теряем IP), но меньше чем max-lease-time(сессия не успела завершиться) - получить IP клиент больше не может, релей полный цикл запроса адреса(discover) от авторизированного клиента не пропускает.

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


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

kayot

А с pppoe без мультилогина фактически тоже самое получаем, это эффект "зависшей" сессии. Просто ставьте lease time поменьше(сравнимый с интервалом между lcp keep-alive)

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


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

s.lobanov

Не совсем. При нормальном завершении pppoe-сессии записи в радиусе обновляются мгновенно, можно включать/выключать хоть 10 раз в секунду. При ненормальном(выдернут кабель) - сессия умрет через lcp timeout, обычно это единицы или десятки секунд.

Для ipoe же время лизы значительно больше(5-10 минут, а иногда и час-сутки), можно получить 'висяк' надооолго.

По дефолту в accel стоит lease-time=600s, max-lease-time=3600s, если по какой-то причине лиза не была продлена в течении 10 минут(банально ПК ушел в спящий режим), можно остаться без сети на час.

Получается Max-lease-time не имеет смысла, нужно ставить ее равной выдаваемой dhcp-сервером лизе.

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

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


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

Для ipoe же время лизы значительно больше(5-10 минут, а иногда и час-сутки), можно получить 'висяк' надооолго.

 

Кто это решил? Есть какие-то rfc или другие рекомендации на эту тему? Ставьте lease-time и max-lease-time маленькие, будет так же как в pppoe

 

lease-time=600s, max-lease-time=3600s, если по какой-то причине лиза не была продлена в течении 10 минут(банально ПК ушел в спящий режим), можно остаться без сети на час.

 

вот это похоже на баг, ЕМНИП, если 2 dhcp-request'а(выступающих в роли keep-alive) не приходит, то надо освобождать лизу

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


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

[ipoe]

Нашел баг. Релей для vlan-per-user режима(shared=0, mode=L2) зачем-то всегда отдает клиенту маску /32, независимо от того, что реально дает сервер.

Протестировал во всех возможных вариантах - релей запоминает netmask и lease-time по первому пакету при старте сессии, дальнейшие изменениях со стороны dhcp-сервера релей игнорирует и продолжает отдавать старые опции.

ip, gw, dns на лету меняются, mask и lease - только при рестарте сессии.

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


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

ЕМНИП, если 2 dhcp-request'а(выступающих в роли keep-alive) не приходит, то надо освобождать лизу

Нет. Если от клиента не было новостей на протяжении max-lease-time - клиент считается дохлым, лиза освобождается.

А вот пока лиза жива - на все запросы от клиента (discover/request) - отвечать ип выделенной лизы.

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


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

ЕМНИП, если 2 dhcp-request'а(выступающих в роли keep-alive) не приходит, то надо освобождать лизу

Нет. Если от клиента не было новостей на протяжении max-lease-time - клиент считается дохлым, лиза освобождается.

А вот пока лиза жива - на все запросы от клиента (discover/request) - отвечать ип выделенной лизы.

Так и есть, уже поправлено. Автор очень оперативно устраняет найденные баги!

 

На данный момент модуль выглядит вполне рабочим, осталось разобраться с шейпером(биллинг и так умеет управлять linux-NASами и генерирует красивые конфиги для htb/tc), возможно встроенный не будем использовать.

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


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

Доброго времени суток. Подскажите, пожалуйста, что необхоимо прописать в iptables чтоб можно было подключаться к машине с accel-ppp (под ubuntu) к PPTP и L2TP? В windows при коннекте сразу выбивает 807 ошибку (при pptp), а при коннекте по l2tp такое чувство, что модуль l2tp_ppp вообще не подгружается (после примерно 20 секунд попытки соединения выбивает 809 ошибку). Заранее спасибо за ответы на нубские вопросы.

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


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

Доброго времени суток. Подскажите, пожалуйста, что необхоимо прописать в iptables чтоб можно было подключаться к машине с accel-ppp (под ubuntu) к PPTP и L2TP? В windows при коннекте сразу выбивает 807 ошибку (при pptp), а при коннекте по l2tp такое чувство, что модуль l2tp_ppp вообще не подгружается (после примерно 20 секунд попытки соединения выбивает 809 ошибку). Заранее спасибо за ответы на нубские вопросы.

Для начала вообще убить все что там в iptables прописано, т.е. на время избавиться от бреда в виде ufw, если он есть.

 

iptables -F

iptables -X

iptables -P INPUT ACCEPT

 

Если iptables настраивали бы сами, то вопрос бы не возникал.

 

А потом уже смотреть работает ли на машине установленный accel-ppp (слушает ли порт) и не дергаться с l2tp пока не заработает pptp. Данный совет предполагает, что вы понимаете что делать с accel-ppp и понимаете как нужно настроить конфиг и запустить сервис и т.п.

 

Логи с level 4 или 5 надо включить и смотреть туда для отладки.

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

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


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

replicant

подскажите, пожалуйста, а как вообще проверить, запущен ли демон pptp?

Настраивал как тут http://abills.net.ua/wiki/doku.php/abills:docs:linux:accel_pptp:ru

разве что закомментил строчки, отвечающие за pppoe, radius и shaper.

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


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

replicant

подскажите, пожалуйста, а как вообще проверить, запущен ли демон pptp?

Настраивал как тут http://abills.net.ua/wiki/doku.php/abills:docs:linux:accel_pptp:ru

разве что закомментил строчки, отвечающие за pppoe, radius и shaper.

 

Ну хотя бы по netstat -nap | grep :1723

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


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

replicant

нет, не слушает порт. А вот 1701 UDP слушает :( Правда я для проверки поставил xl2tpd, а потом снёс его (проверял порт до того, как снести). Как запустить accel-ppp?

P.S. прошу прошения за столь простые и глупые вопросы, просто с линуксом абсолютно не дружен, но желания делать это всё на Windows никакого нет: понимаю, что под linux всё будет не только быстрее, но и безглючно.

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


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

Как запустить accel-ppp?

Логи курить... Думать, что не нравится акселю... Править то, что не нравится, и стартовать снова. Благое дело - под *никсами все достаточно многословное, если что-то не нравится - громко и внятно матерится; тихо умирающего софта - единицы (единственое, что встречал такое - postgresql начал загадочно и тихо загибаться в процессе настройки кластера).

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


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

Как запустить accel-ppp?

Читать документацию (в данном случае любую по этой теме) и искать в сети примеры настроек / описания и т.п. Здесь едва ли будут это Вам объяснять. А вот когда запускать его научитесь, тогда приходите с более конкретными вопросами, когда что-то не заработает так как надо.

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


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

replicant NiTr0

доброго Вам времени суток. Accel-ppp заработал (добавил скрипт инициации, прописал в автозагрузку, бутнулся - вуаля; правда до этого прописал нужные правила в iptables). Сейчас аутентификация по chap-sercets, хочу добавить шейпер и авторизацию по radius (собарила сразу с ними, но "до выяснения" закомментил нужные строки). В связи с этим возник ряд вопросов:

1) куда вообще вписывать пары логин-пароль?

2) скорости перед словом integer как рассчитать? допутим нужны числа для 50 Мбит и 100 Мбит

3) я так понял, в версии 1.7.3 раздел [tbf] должен буть полностью закомментирован; а что от этого меняется (что добавить/удалить) в разделах shaper и radius?

Заранее большое спасибо за ответы на вновь нубские вопросы :)

P.S. большое спасибо, что дали удочку, а не рыбу - хоть немного вник ;)

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


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

1) куда вообще вписывать пары логин-пароль?
в /etc/ppp/chap-secrets, формат:

логин * пароль [*/выделенный_ип] [скорость]

 

2) скорости перед словом integer как рассчитать? допутим нужны числа для 50 Мбит и 100 Мбит
скорости указываются в килобитах:

user1 * password1 * 51200

user2 * password2 * 102400

 

3) я так понял, в версии 1.7.3 раздел [tbf] должен буть полностью закомментирован; а что от этого меняется (что добавить/удалить) в разделах shaper и radius?
tbf можно совсем выпилить из конфига, конфига по умолчанию в части shaper вполне достаточно для ознакомления

по умолчанию на ппп интерфейсы навешивается qdisc tbf и police фильтр в ingress

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

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


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

xeb

спасибо за ответ. В примерее, по которому я настраивал accel-ppp (http://abills.net.ua/wiki/doku.php/abills:docs:linux:accel_pptp:ru), зачем-то скорости указывались и в разеделе Shaper. Мне тоже там указать их? Если да, то каким образом указать 2 скорости? Более того, в указанном примере были закомментирован раздел chap-sercets - мне его раскомментировать?

Заранее спасибо за ответы на очередные нубческие вопросы 029-confusion.jpg

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


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

Join the conversation

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

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

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

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

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

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

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