Номер PON интерфейса + номер ONU достается из option82 следующим образом.
Код: Выделить всё
binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 5, 2)) = "11";
На пальцах это выглядит следующим образом:
1. Сервер вытаскивает из option.circuit-id 2 байта со смещением 5 байт, то есть 01 01
2. Каждый из байтов переводится из хекса в десятичную систему, в результате чего на выходе имеет 1 1
3. Производится конвертация числовых значений в строкb и их конкатенация, т. е. получаем 11
Как это перенести в DHCP UTM5?
Порт - Бинарные(BE) - понимает два байта "01 01" соответственно как 257 в десятичной системе.
Например "02 01" (2ой пон, 1ая ону) это 513, что вообще не лезет в поле "Порт", превышая максимальное значение.
В Little Endian то же самое, только задом наперед.
Что-то мне подсказывает, что необходимо использовать строковый тип, но как он работает?
Я пробовал укзаывать абоненту номер порта как 0101, 11, 101. Без толку.
Где и как используется тип Строка в принципе? Каким образом происходит конвертирование?
В конфиге dhcp увеличивал уровень дебага, никаких доп. сведений не получил.
P.S. Вероятно кто-то использует в работе коммутаторы в кластере. Как различаете, с какого модуля пришел запрос?
У меня пока кроме идентификации по номеру VLAN, который повесить на каждый PON интерфейс, а потом собрать все в кучу на агрегации при помощи ip unnumbered или supervlan, идей никаких.