Не выходит передать radius аттребут

Технические вопросы по UTM 5.0
Rico-X
Сообщения: 164
Зарегистрирован: Вт окт 25, 2011 12:04

Не выходит передать radius аттребут

Сообщение Rico-X »

Ситуация следующая, необходимо брасу передать аттребут вида:

Код: Выделить всё

ERX-Service-Activate:1 = "svc-pppoe-policer-10m"
Как видно аттребут тегирован, как я только не пытался передать его в таком виде не выходит, подскажите кто знает как правильно прописать, если делать руками через radclient все работает:
активировать

Код: Выделить всё

echo "User-Name='tester', ERX-Service-Activate:1=svc-pppoe-policer-10m" | radclient -x IP coa PASSWORD
деактивировать

Код: Выделить всё

echo "User-Name='tester', ERX-Service-Deactivate=svc-pppoe-policer-10m" | radclient -x IP coa PASSWORD
Подскажите в какую сторону копать и как подружить с радиусом UTMки?

Rico-X
Сообщения: 164
Зарегистрирован: Вт окт 25, 2011 12:04

Сообщение Rico-X »

Решил вопрос костылем через rfw и клиентом freeradius, т.к. UTM5 на данный момент не умеет работать по RFC 2868

Создал скрипт.

Код: Выделить всё

#!/bin/bash
if [[ -z "$1" || -z "$2" ]]
then
  echo "Usage&#58; $0 <Session ID> <NAS-IP>"
  exit 1
fi

/bin/echo "Acct-Session-Id='$1', ERX-Service-Activate&#58;1=svc-pppoe-policer-10m" | /usr/bin/radclient -x $2 coa PASSWORD
Соответственно добавляем локальный брандмауер и для него создаем правило фаирвола, срабатывающее на открытие сессии тех групп или тарифов, которые необходимо шейпить, в правило вставляем путь к скрипту и SESSION_ID NAS_IP. Кому надо скрипт расширит на обработку разных шейперов для разных групп.

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

netup_user
Сообщения: 19
Зарегистрирован: Вт ноя 18, 2014 19:10

Сообщение netup_user »

Ну вы наверное уже в курсе, что не получалось у вас потому, что UTM5 не поддерживает тэгированные атрибуты.
И поэтому либо так как показано, либо прикрутить freeradius proxy.

Rico-X
Сообщения: 164
Зарегистрирован: Вт окт 25, 2011 12:04

Сообщение Rico-X »

netup_user писал(а):Ну вы наверное уже в курсе, что не получалось у вас потому, что UTM5 не поддерживает тэгированные атрибуты.
И поэтому либо так как показано, либо прикрутить freeradius proxy.
Ну я как-бы сослался на RFC 2868, который и есть тегированные аттребуты, по-этому пока такой костыль, год+ аптайма - полет нормальный, завести в режиме прокси я freeradius пытался, но работал "через раз" может у меня руки из задницы, но стабильной работы добиться не удалось, часть клиентов сидели без шейперов в случайном порядке, а вот на костыле, как говорится, ни единого разрыва.

pingz
Сообщения: 12
Зарегистрирован: Вт июн 17, 2014 06:29

Сообщение pingz »

Добрый день Rico-X
Вы у себя реализовали с динамических шейпером или на каждый тариф статический шейпер навешивали?


Могли бы скинуть конфиг шейпера?

Rico-X
Сообщения: 164
Зарегистрирован: Вт окт 25, 2011 12:04

Сообщение Rico-X »

pingz писал(а):Добрый день Rico-X
Вы у себя реализовали с динамических шейпером или на каждый тариф статический шейпер навешивали?


Могли бы скинуть конфиг шейпера?
У меня статические, но под динамику переделать не очень сложно.

Чтоб всю простыню шейперов сюда не выливать - выложу на 10М

Код: Выделить всё

    svc-pppoe-policer-10m &#123;
        interfaces &#123;
            pp0 &#123;
                unit "$junos-interface-unit" &#123;
                    family inet &#123;
                        filter &#123;
                            input policer-10m;
                            output policer-10m;
                        &#125;
                    &#125;
                &#125;
            &#125;
        &#125;
    &#125;

firewall &#123;
    family inet &#123;
        filter policer-10m &#123;
            interface-specific;
            term 1 &#123;
                from &#123;
                    destination-address &#123;
                        УУУ.ХХХ.6.38/32;
                        УУУ.ХХХ.6.6/32;
                    &#125;
                    source-prefix-list &#123;
                        NoMoneyHosts;
                    &#125;
                    protocol &#91; tcp udp &#93;;
                    destination-port &#91; 80 53 &#93;;
                &#125;
                then accept;
            &#125;
            term 2 &#123;
                from &#123;
                    source-prefix-list &#123;
                        NoMoneyHosts;
                    &#125;
                    protocol &#91; tcp udp &#93;;
                    destination-port &#91; 80 53 &#93;;
                &#125;
                then &#123;
                    routing-instance neg_dep;
                &#125;
            &#125;
            term 3 &#123;
                from &#123;
                    source-prefix-list &#123;
                        NoMoneyHosts;
                    &#125;
                &#125;
                then &#123;
                    discard;
                &#125;
            &#125;
            term default &#123;
                then policer 10m;
            &#125;
        &#125;

    policer 10m &#123;
        if-exceeding &#123;
            bandwidth-limit 10m;
            burst-size-limit 640k;
        &#125;
        then discard;
    &#125;
Можно и динамические сделать там прост ов скрипт добавить предварительное снятие текущего и навешивание нового, короче пилите костыль на rfw.

pingz
Сообщения: 12
Зарегистрирован: Вт июн 17, 2014 06:29

Сообщение pingz »

Т.е. у вас на каждый тариф создано такое правило?

Вы CGNAT используете или внешний?

Спасибо за кусочек конфига буду дальше постигать джунос.

Rico-X
Сообщения: 164
Зарегистрирован: Вт окт 25, 2011 12:04

Сообщение Rico-X »

pingz писал(а):Т.е. у вас на каждый тариф создано такое правило?

Вы CGNAT используете или внешний?

Спасибо за кусочек конфига буду дальше постигать джунос.
Ну есть много тарифов с одной скоростью, так что шейперов не так уж и много, а так да для каждой скорости свое правило. Если у вас более 10 возможных скоростей для пользователя, расскажите зачем?
NAT не используем вообще по ряду причин, пользователи получают белый динамический IP.
У джунос отличная официальная дока с кучей примеров.

pingz
Сообщения: 12
Зарегистрирован: Вт июн 17, 2014 06:29

Сообщение pingz »

У джунос отличная официальная дока с кучей примеров.
Но вся на англиканском и и ее реально много.

Вы реализовали создав под каждый полисер свой динамический профайл и динамически вешаете на на основной профаил правило верно?

Rico-X
Сообщения: 164
Зарегистрирован: Вт окт 25, 2011 12:04

Сообщение Rico-X »

pingz писал(а):
У джунос отличная официальная дока с кучей примеров.
Но вся на англиканском и и ее реально много.

Вы реализовали создав под каждый полисер свой динамический профайл и динамически вешаете на на основной профаил правило верно?
Нет, не так, есть динамические профили, а уже на них вешаются полисеры, пример профиля PPPoE:

Код: Выделить всё

dynamic-profiles &#123;
    ppp-profile &#123;
        interfaces &#123;
            pp0 &#123;
                unit "$junos-interface-unit" &#123;
                    ppp-options &#123;
                        chap;
                        pap;
                    &#125;
                    pppoe-options &#123;
                        underlying-interface "$junos-underlying-interface";
                        server;
                    &#125;
                    keepalives interval 60;
                    family inet &#123;
                        unnumbered-address lo0.0;
                    &#125;
                &#125;
            &#125;
        &#125;
    &#125;
    Auto-VLAN-Demux &#123;
        interfaces &#123;
            demux0 &#123;
                unit "$junos-interface-unit" &#123;
                    vlan-id "$junos-vlan-id";
                    demux-options &#123;
                        underlying-interface "$junos-interface-ifd-name";
                    &#125;
                    family pppoe &#123;
                        duplicate-protection;
                        dynamic-profile ppp-profile;
                    &#125;
                &#125;
            &#125;
        &#125;
    &#125;
Пример профиля IPoE

Код: Выделить всё

    dhcp-user-profile &#123;
        interfaces &#123;
            "$junos-interface-ifd-name" &#123;
                unit "$junos-underlying-interface-unit" &#123;
                    proxy-arp;
                    family inet;
                &#125;
            &#125;
        &#125;
    &#125;
    Auto-DHCP-Demux &#123;
        interfaces &#123;
            demux0 &#123;
                unit "$junos-interface-unit" &#123;
                    demux-source inet;
                    proxy-arp;
                    vlan-id "$junos-vlan-id";
                    demux-options &#123;
                        underlying-interface "$junos-interface-ifd-name";
                    &#125;
                    family inet &#123;
                        unnumbered-address lo0.0 preferred-source-address XXX.XXX.XXX.128;
                    &#125;
                &#125;
            &#125;
        &#125;
    &#125;

На самих интерфейсах вешаются так:
PPPoE

Код: Выделить всё

   xe-1/3/0 &#123;
        description -=PPPoE=-;
        flexible-vlan-tagging;
        auto-configure &#123;
            vlan-ranges &#123;
                dynamic-profile Auto-VLAN-Demux &#123;
                    accept pppoe;
                    ranges &#123;
                        200-230;
                    &#125;
                &#125;
            &#125;
            remove-when-no-subscribers;
        &#125;
        encapsulation flexible-ethernet-services;
    &#125;
Для IPoE не выкладываю у меня там жесткий QinQ плюс куча костылей, только запутаю.

PPPoE юзер с навешанным полисером выглядит так:

Код: Выделить всё

Type&#58; PPPoE
User Name&#58; usertest
IP Address&#58; ХХХ.ХХХ.114.207
IP Netmask&#58; 255.255.248.0
Primary DNS Address&#58; ХХХ.ХХХ.6.38
Secondary DNS Address&#58; ХХХ.ХХХ.52.193
Logical System&#58; default
Routing Instance&#58; default
Interface&#58; pp0.1073863975
Interface type&#58; Dynamic
Underlying Interface&#58; demux0.1073743714
Dynamic Profile Name&#58; ppp-profile
Dynamic Profile Version&#58; 1
MAC Address&#58; 54&#58;e6&#58;fc&#58;e5&#58;61&#58;7b
Session Timeout &#40;seconds&#41;&#58; 86400
Idle Timeout &#40;seconds&#41;&#58; 600
State&#58; Active
Radius Accounting ID&#58; 2854271
Session ID&#58; 2854271
VLAN Id&#58; 204
Login Time&#58; 2016-02-08 21&#58;40&#58;12 GMT-3
Service Sessions&#58; 1
IP Address Pool&#58; POOL4

   Service Session ID&#58; 2854272
   Service Session Name&#58; svc-pppoe-policer-50m
   Service Session Version&#58; 1
   State&#58; Active
   Family&#58; inet
   IPv4 Input Filter Name&#58; policer-50m-pp0.1073863975-in
   IPv4 Output Filter Name&#58; policer-50m-pp0.1073863975-out
IPoE юзер с навешанным полисером, похоже, но есть отличия, вот пример:

Код: Выделить всё

Type&#58; DHCP
User Name&#58; Opt82.FCFAF7C57A3E
IP Address&#58; ХХХ.ХХХ.233.238
IP Netmask&#58; 255.255.252.0
Primary DNS Address&#58; ХХХ.ХХХ.6.38
Secondary DNS Address&#58; ХХХ.ХХХ.52.193
Logical System&#58; default
Routing Instance&#58; default
Interface&#58; demux0.250
Interface type&#58; Static
Underlying Interface&#58; demux0.250
Dynamic Profile Name&#58; dhcp-user-profile
Dynamic Profile Version&#58; 1
MAC Address&#58; 90&#58;f6&#58;52&#58;bc&#58;9a&#58;77
Idle Timeout &#40;seconds&#41;&#58; 600
State&#58; Active
Radius Accounting ID&#58; 2445077
Session ID&#58; 2445077
VLAN Id&#58; 250
Agent Circuit ID&#58; len 5
00 fa 00 0a 03
Agent Remote ID&#58; len 6
fc fa f7 c5 7a 3e
Login Time&#58; 2016-01-25 17&#58;54&#58;25 GMT-3
Service Sessions&#58; 1
DHCP Options&#58; len 96
35 01 01 39 02 04 00 3d 07 01 90 f6 52 bc 9a 77 0c 0a 54 4c
2d 57 52 37 34 31 4e 44 3c 08 4d 53 46 54 20 35 2e 30 32 04
5f d7 71 61 37 0b 01 03 06 0f 21 2b 2c 2e 2f 79 f9 52 25 01
05 00 fa 00 0a 03 02 06 fc fa f7 c5 7a 3e 09 14 00 00 0c f8
0f 01 0d 4f 4c 54 5f 41 76 74 6f 64 65 6c 5f 33
IP Address Pool&#58; POOL1

   Service Session ID&#58; 2445213
   Service Session Name&#58; svc-pppoe-policer-100m
   Service Session Version&#58; 1
   State&#58; Active
   Family&#58; inet
   IPv4 Input Filter Name&#58; policer-100m-pp0.1073967263-in
   IPv4 Output Filter Name&#58; policer-100m-pp0.1073967263-out

Если что не понятно пишите, а то и так не ответ а простыня выходит.

pingz
Сообщения: 12
Зарегистрирован: Вт июн 17, 2014 06:29

Сообщение pingz »

Возможно я не правильно воспринимаю т.к. у нас терминация крутится на микротике там много допилено производителем.

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

svc-pppoe-policer-10m это же у вас динамический профаил, только понять не могу как он навешивается на demux0 вроде нет переменной $ в профайле $ или тут другая логика?

P.S. Rico-X в личку как то вам можно написать?

Rico-X
Сообщения: 164
Зарегистрирован: Вт окт 25, 2011 12:04

Сообщение Rico-X »

Да вот так и навешивается, скриптом выше.

Код: Выделить всё

/bin/echo "Acct-Session-Id='сюда ID сессии', ERX-Service-Activate&#58;1=svc-pppoe-policer-10m" | /usr/bin/radclient -x $2 coa PASSWORD
В моем примере с PPPoE
Session ID: 2854271

Все это рулится через RFW где в скрипт передаются через правила фаирвола, вот скрин для тарифа 10м
Изображение
Пишите лучше завтра в скайп rico-x-86

netup_user
Сообщения: 19
Зарегистрирован: Вт ноя 18, 2014 19:10

Сообщение netup_user »

Добрый день, вроде как в 5.3-004 release обьявлена реализация тегированных атрибутов из коробки, не пробовали?

Rico-X
Сообщения: 164
Зарегистрирован: Вт окт 25, 2011 12:04

Сообщение Rico-X »

netup_user писал(а):Добрый день, вроде как в 5.3-004 release обьявлена реализация тегированных атрибутов из коробки, не пробовали?
Пока нет документации по тегированным атрибутам и костыль работает без сбоев желание поебаться в слепую не возникает.

netup_user
Сообщения: 19
Зарегистрирован: Вт ноя 18, 2014 19:10

Сообщение netup_user »

Пока нет документации по тегированным атрибутам
Я вот всё пытаюсь добиться от кого нибудь способ использования их из коробки, но похоже из коробки их никто ещё не использует(по всей видимости потому, что из коробки их еще нельзя использовать), просто получил ответ от одного из команды utm "К остальным атрибутам тэги как-то же передают", но теперь всё больше убеждаюсь что никак не передают.

Ответить