Добавление коммутаторов и их типов в биллинг

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (1)

просмотр истории страницы
Эта возможность была [документирована|https://kb.isc.org/docs/isc-dhcp-41-manual-pages-dhcp-eval#NUMERIC EXPRESSIONS] с выходом ISC DHCP 4.1, но её [использовали|https://github.com/alandekok/isc-dhcp-3.0/blob/master/tests/failover/dhcp-1.cf] [и раньше|https://lists.isc.org/pipermail/dhcp-workers/2009-November/000040.html].
В листинге видно, что вычет "2" происходит прибавлением отрицательного числа: к сожалению, при использовании "- 2", DHCP-сервер не запускался и считал это ошибкой конфигурации. Возможно это проблема используемой версии DHCP-сервера.

h3. binary-to-ascii обрезает нули в MAC-адресе (например, 01:00:BE:00:00:01 превратит в 1:0:be:0:0:1)

Это известная проблема, она связана с особенностью работы функции binary-to-ascii, и решение [описано в базе знаний|https://kb.isc.org/docs/aa-01039] ISC DHCP.

К сожалению, в Carbon Billing 5 такое решение пока применить не получится.

Чтобы это не стало проблемой, заводите MAC-адреса коммутаторам и абонентам в том формате, как он будет преобразован binary-to-ascii.
Например, "*01:00:BE:00:00:01*" заведите как "*1:0:be:0:0:1*"

h3. Нужно авторизовать по IP коммутатора

Коммутатор выступает релеем и передаёт запросы клиентов DHCP-серверу биллинга. Адрес коммутатора в таком случае [сохраняется в поле GIADDR|https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#Relaying] DHCP-запроса.
Получить IP коммутатора (релея) можно функцией *packet()* со сдвигом на 24 байта. Полученные данные надо преобразовать функцией binary-to-ascii в десятичную форму, разбив октеты точкой - так вы получите IP-адрес.

{code}binary-to-ascii(10, 8, ".", packet(24, 4)){code}