Просмотр Исходного

{tip}{*}Время выполнения инструкции*: 20-30 минут{tip}

{toc}

h2. Организация постоянных пакетов с запросом адреса

В Windows создать bat файл с содержимым:
{code}
:label1
ping \-n 60 127.0.0.1
ipconfig /release *
ipconfig /renew
goto label1
{code}
{note}
Многие коммутаторы умеют кешировать lease. Поэтому при отладке их нужно перезагружать.
{note}

h2. Отладка

# Настройте на коммутаторе релей и OPT82;
# В учётной записи абонента укажите MAC.
{note}
Не ставьте галочку opt82. Эту опцию поставим после того как отладим прием opt82 от коммутатора.
{note}
# Просмотрите лог dhcp сервера. В логе виден запрос на получение адреса и дальнейшая его обработка. DHCP сервер последовательно проходит по всем [типам коммутаторов|Добавление коммутаторов и их типов в биллинг] и разбирает DHCP указанными в них функциями. В конечном счёте адрес выдаётся по MAC адресу.
{code}
/app/collector/var/log/messages
{code}
Пример:
#* aa:bb:cc:dd:ee:ff - MAC адрес клиента;
#* 192.0.2.2 - адрес абонента в биллинге;
#* 198.51.100.10 - адрес релэя;
#* 198.51.100.20 - адрес биллинга.
{code:title=лог DHCP сервера}
May 19 14:01:32 TestBill dhcpd: RAW:: Lease for 192.0.2.2agent.circuit-id txt=
May 19 14:01:32 TestBill dhcpd: agent.circuit-id bin8=0 100 0 7 1
May 19 14:01:32 TestBill dhcpd: agent.remote-id txt=<E0><E8><E6>#036#005k
May 19 14:01:32 TestBill dhcpd: agent.remote-id bin8=224 232 230 30 5 107
May 19 14:01:32 TestBill dhcpd: binary-to-ascii: length of buffer 1 not a multiple of width 2!
May 19 14:01:32 TestBill dhcpd: PARS_ALTER:: Lease for 192.0.2.2 SWIP=<E6>#036#005k VLAN=7 PORT=1 PARAM=none MAC=none GPON_MODEM_PORT=none SVLAN=none
May 19 14:01:32 TestBill dhcpd: PARS_SNR2940:: Lease for 192.0.2.2 SWIP=198.51.100.10 VLAN=100 PORT= PARAM=none MAC=none GPON_MODEM_PORT=none SVLAN=none
May 19 14:01:32 TestBill dhcpd: PARS_SNR2950:: Lease for 192.0.2.2 SWIP=<E0><E8><E6>#036#005k VLAN=#001 PORT= PARAM=none MAC=none GPON_MODEM_PORT=none SVLAN=none
May 19 14:01:32 TestBill dhcpd: PARS_ELTEX_LTE2:: Lease for 192.0.2.2 SWIP=none VLAN=
May 19 14:01:32 TestBill dhcpd: PARS_Cisco2950:: Lease for 192.0.2.2 SWIP=none VLAN=7 PORT=1 PARAM=none MAC=aa:bb:cc:dd:ee:ff GPON_MODEM_PORT=none SVLAN=none
May 19 14:01:32 TestBill dhcpd: DHCPREQUEST for 192.0.2.2 (198.51.100.20) from aa:bb:cc:dd:ee:ff via 198.51.100.10
May 19 14:01:32 TestBill dhcpd: DHCPACK on 192.0.2.2 to aa:bb:cc:dd:ee:ff via 198.51.100.10
{code}
# Убедитесь, что биллинг разберает данные из opt82 DHCP запроса верно;
# Заполните поля opt82 учётной записи. Установите галочку opt82. Биллинг сгенерирует конфигурационный файл dhcpd.
{code}
/app/collector/etc/dhcp/dhcpd.conf
{code}
В конфигурационном файле будет создан class и pull для каждой учётной записи с opt82.
{code}
class "match_vlan_0_port_2_ip_198.51.100.10__opt82_param_aa:bb:cc:dd:ee:ff_gpon_modem_port_NULL_svlan_NULL_hw_serial_<null>" {
match if ((binary-to-ascii(16, 8, ":", option agent.remote-id) = "aa:bb:cc:dd:ee:ff"));
}

pool {
range 192.0.2.2;
allow members of "match_vlan_0_port_2_ip_198.51.100.10_opt82_param_aa:bb:cc:dd:ee:ff_gpon_modem_port_NULL_svlan_NULL_hw_serial_<null>";
}

{code}
# Проверьте, что клиентская станция получает адрес. Видно, что был применён тип коммутатора *Cisco2950*.
{code}
May 19 15:34:30 Avetel dhcpd: DHCPREQUEST for 192.0.2.2 (198.51.100.20) from aa:bb:cc:dd:ee:ff (Cisco2950) via 198.51.100.10
May 19 15:34:30 Avetel dhcpd: DHCPACK on 192.0.2.2 to aa:bb:cc:dd:ee:ff (Cisco2950) via 198.51.100.10
{code}