... {tip}{*}Время выполнения инструкции*: 60-120 минут{tip} {toc} h2. Организация тестовой станции Windows В Windows создать bat файл с содержимым: {code} :label1 ping \-n 60 127.0.0.1 ipconfig /release * ipconfig /renew goto label1 {code} {note} Многие коммутаторы умеют кешировать lease. Поэтому при отладке их нужно перезагружать. {note} h2. Отладка получения IP адреса # Просмотрите трафик на сетевом интерфейсе настроенном на приём DHCP запросов: {code} tcpdump -pnnei eth0 port 67 or port 68 {code} В примере показан запрос *Request* от релэя 198.51.100.10 на адрес биллинга 198.51.100.20; {code} 14:00:57.468749 In aa:bb:cc:dd:ee:ff ethertype IPv4 (0x0800), length 383: 198.51.100.10.67 > 198.51.100.20.67: BOOTP/DHCP, Request from 48:8f:5a:f2:f1:a1, length 339 {code} Если в выводе нет запросов *Request*, значит они не доходят до интерфейса биллинга. Проверьте настройки вашей сети. # Просмотрите запрос адреса в логе DHCP сервера: #* Удалите данные по выданным адресам, чтобы они были взяты из конфигурационного файла: {code} rm -f /app/collector/var/lib/dhcpd/* {code} #* Перезапустите DHCP сервер: {code} chroot /app/collector/ service dhcpd restart {code} #* Проследите за логом DHCP сервера: {code} tail -f /app/collector/var/log/messages {code} # Варианты записей лога: #* Запрос пришел из широковещательного сегмента через eth0. Такая ситуация верна, если биллинг находится в одном широковещательном сегменте с абонентами. {code} Aug 3 14:25:59 dhcpd: DHCPDISCOVER from aa:bb:cc:dd:ee:ff via eth0: network ISC: no free leases {code} #* Запрос пришел с IP адреса коммутатора. Такая ситуация верна, если вы настроили релэй на коммутаторе. {code} Aug 3 14:25:59 dhcpd: DHCPDISCOVER from aa:bb:cc:dd:ee:ff via 198.51.100.10: network ISC: no free leases {code} # Проверьте, что *Offer* доходит до абонента. То есть абонент получает выданный адрес. ## Посмотрите лог DHCP сервера: {code} /app/collector/var/log/messages | fgrep -i dhcpd {code}
|
... ### С биллинга недоступен адрес RELAY агента. В данном примере это 192.168.0.35 Проверить можно командой: {code} ping 192.168.0.35 -c 4 PING 192.168.0.35 (192.168.0.35) 56(84) bytes of data. --- 192.168.0.35 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 13007ms {code} ### Если адрес RELAY агента доступен, значит проблема в сети дальше. Необходимо проследить путь пакета от биллинга до абонента по всем промежуточным хостам вплоть до абонента. {note} При настройке обратите внимание, чтоб пул адресов из которого вы отдаете адреса по dhcp не был зарезервирован для ручной раздачи. {note} h2. Отладка opt82 # Для исключения сетевых проблем проведите [отладку получения IP адреса|Отладка DHCP#Отладка получения IP адреса]; # Проверьте, что отключена опция [OPT 82. Создавать статические mac привязки вместо vlan+port|DHCP#Настройка Option 82]; # Настройте на коммутаторе релей и 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} # Проверьте, что клиентская станция получает адрес. {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 (TestPC) 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 (TestPC) via 198.51.100.10 {code}
|