BDCOM+O82+авторизация по vlan и порту
Добавлено: Ср окт 10, 2018 9:43 am
Приветствую.
В общем у нас сейчас работает схема OLT-Mikrotik(как dhcp-server, freeradius_dhcp)-Abills.
Abills версии 0.78.30
В качестве OLT стоят v-solution, которые в o82 могут отдавать только мак онушки, что нас не устраивает.
Привезли нам BDCOM P3310 AC, и сейчас я пытаюсь его для опытов добавить к существующим OLT для обкатки, с последующим переездом части абонов на него.
Хотим сделать авторизацию клиента по vlan и номеру порта.
Что сделали:
1. Настроили на BDCOM 2109 vlan, пробросили vlan до микрота, включили dhcp-snooping с o82 в формате cm-type
2. Подключили ONU на первый PON, дали на нее тегом vlan 2109, проверили, что запросы долетают до микрота, и он может выдавать ip на ону
3. Завели OLT в биллинг в качестве NAS, и настроили SNMP, в биллинге мы видим порты на BDCOM и подключенные на них ONU 4. Добавили статический пул адресов
5. Добавили тестовую учетную запись, и назначили ей в качестве NAS BDCOM, порт выбрали через интерфейс биллинга, руками прописали vlanid 2109 6. В config.pl добавили AUTH_EXPR для разбора o82 от BDCOM и включили debug
7. На DHCP-сервере микрота для vlan 2109 врубили использование RADIUS и сменили пул адресов с тестового на static-only
8. Перестартовали радиус
И вот тут у нас все пошло не так, как мы ожидали.
Запрос на биллинг пришел, но биллинг распознал абонента, как другую левую учетку, которую мы заводили для отдельных целей И в логе подключений мы получаем вот такое:
Судя по том, что я вижу, биллинг правильно получает все необходимые параметры из o82.
Мак: 84:79:73:d9:61:f2
VLAN: 2109
PORT: 0703
VLAN и PORT соответствуют тому, что вбито в учетке bdcom_test, мак соответствует маку bdcom, который заведен как OLT_3 (id=4).
Собственно в radius прилетают вот такие пары.
Лог radius -X по этой onu по ссылке: https://pastebin.com/4QsQTchF (дабы не постить простыню)
Подскажите, где я мог накосячить, и как это поправить.
В общем у нас сейчас работает схема OLT-Mikrotik(как dhcp-server, freeradius_dhcp)-Abills.
Abills версии 0.78.30
В качестве OLT стоят v-solution, которые в o82 могут отдавать только мак онушки, что нас не устраивает.
Привезли нам BDCOM P3310 AC, и сейчас я пытаюсь его для опытов добавить к существующим OLT для обкатки, с последующим переездом части абонов на него.
Хотим сделать авторизацию клиента по vlan и номеру порта.
Что сделали:
1. Настроили на BDCOM 2109 vlan, пробросили vlan до микрота, включили dhcp-snooping с o82 в формате cm-type
2. Подключили ONU на первый PON, дали на нее тегом vlan 2109, проверили, что запросы долетают до микрота, и он может выдавать ip на ону
3. Завели OLT в биллинг в качестве NAS, и настроили SNMP, в биллинге мы видим порты на BDCOM и подключенные на них ONU 4. Добавили статический пул адресов
5. Добавили тестовую учетную запись, и назначили ей в качестве NAS BDCOM, порт выбрали через интерфейс биллинга, руками прописали vlanid 2109 6. В config.pl добавили AUTH_EXPR для разбора o82 от BDCOM и включили debug
Код: Выделить всё
$AUTH{mikrotik_dhcp}='Mac_auth2';
$conf{UNKNOWN_IP_LOG}=1;
$conf{AUTH_EXPR_DEBUG}=4;
$conf{AUTH_PARAMS}=1;
$conf{DHCP_O82_BDCOM_TYPE}='cm-type';
# v-solution отправляет mac ONU в Agent-Circuit-Id
$conf{AUTH_EXPR}= 'Agent-Circuit-Id:0x([0-9a-f]{12}):USER_MAC';
# bdcom
$conf{AUTH_EXPR}.=';Agent-Circuit-Id:0x([0-9a-f]{4})00([0-9a-f]{4}):VLAN,PORT_DEC;Agent-Remote-Id:0x([0-9a-f]{12}):NAS_MAC';
8. Перестартовали радиус
И вот тут у нас все пошло не так, как мы ожидали.
Запрос на биллинг пришел, но биллинг распознал абонента, как другую левую учетку, которую мы заводили для отдельных целей И в логе подключений мы получаем вот такое:
Код: Выделить всё
2018-10-10 12:10:24 LOG_INFO AUTH int.... NAS_MAC: 84:79:73:d9:61:f2 PORT: 0703 VLAN: 2109 MAC: 80:14:A8:93:0C:D5 CID: 1:80:14:a8:93:c:d5 GT: 0.02787 OLT_3/Mikrotik_1/NAS Server
Мак: 84:79:73:d9:61:f2
VLAN: 2109
PORT: 0703
VLAN и PORT соответствуют тому, что вбито в учетке bdcom_test, мак соответствует маку bdcom, который заведен как OLT_3 (id=4).
Собственно в radius прилетают вот такие пары.
Код: Выделить всё
(3201) perl: $RAD_REQUEST{'Agent-Remote-Id'} = &request:Agent-Remote-Id -> '0x847973d961f2'
(3201) perl: $RAD_REQUEST{'Agent-Circuit-Id'} = &request:Agent-Circuit-Id -> '0x083d000703'
Подскажите, где я мог накосячить, и как это поправить.