Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Сравнить с текущим |
просмотр истории страницы
Время выполнения инструкции: 20-30 минут |
Организация постоянных пакетов с запросом адреса
В Windows создать bat файл с содержимым:
:label1
ping \-n 60 127.0.0.1
ipconfig /release *
ipconfig /renew
goto label1
Многие коммутаторы умеют кешировать lease. Поэтому при отладке их нужно перезагружать. |
Отладка получения IP адреса
- Просмотрите трафик на сетевом интерфейсе настроенном на приём DHCP запросов:
tcpdump -pnnei eth0 port 67 or port 68
В примере показан запрос Request от релэя 198.51.100.10 на адрес биллинга 198.51.100.20;
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
Если в выводе нет запросов Request, значит они не доходят до интерфейса биллинга. Проверьте настройки вашей сети.
- Просмотрите запрос адреса в логе DHCP сервера:
- Удалите данные по выданным адресам, чтобы они были взяты из конфигурационного файла:
rm -f /app/collector/var/lib/dhcpd/*
- Перезапустите DHCP сервер:
chroot /app/collector/ service dhcpd restart
- Проследите за логом DHCP сервера:
tail -f /app/collector/var/log/messages
- Удалите данные по выданным адресам, чтобы они были взяты из конфигурационного файла:
- Варианты записей лога:
- Запрос пришел из широковещательного сегмента через eth0. Такая ситуация верна, если биллинг находится в одном широковещательном сегменте с абонентами.
Aug 3 14:25:59 dhcpd: DHCPDISCOVER from aa:bb:cc:dd:ee:ff via eth0: network ISC: no free leases
- Запрос пришел с IP адреса коммутатора. Такая ситуация верна, если вы настроили релэй на коммутаторе.
Aug 3 14:25:59 dhcpd: DHCPDISCOVER from aa:bb:cc:dd:ee:ff via 198.51.100.10: network ISC: no free leases
- Запрос пришел из широковещательного сегмента через eth0. Такая ситуация верна, если биллинг находится в одном широковещательном сегменте с абонентами.
- Проверьте, что Offer доходит до абонента. То есть абонент получает выданный адрес.
- Посмотрите лог DHCP сервера:
/app/collector/var/log/messages | fgrep -i dhcpd
- Если видим, что на запрос IP адреса DHCPDISCOVER биллинг отвечает DHCPOFFER и на этом dhcp диалог по этому абоненту заканчивается, значит DHCPOFFER до абонента от биллинга не доходит.
Jan 17 12:50:09 carbonsoft dhcpd: DHCPDISCOVER from aaa:bb:cc:dd:ee:ff via 192.168.0.35 Jan 17 12:50:09 carbonsoft dhcpd: DHCPOFFER on 10.0.4.189 toaa:bb:cc:dd:ee:ff via 192.168.0.35
Возможные причины:
С биллинга недоступен адрес RELAY агента. В данном примере это 192.168.0.35
Проверить можно командой: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
Если адрес RELAY агента доступен, значит проблема в сети дальше. Необходимо проследить путь пакета от биллинга до абонента по всем промежуточным хостам вплоть до абонента.
- Посмотрите лог DHCP сервера:
При настройке обратите внимание, чтоб пул адресов из которого вы отдаете адреса по dhcp не был зарезервирован для ручной раздачи. |
Отладка opt82
- Проверьте, что отключена опция OPT 82. Создавать статические mac привязки вместо vlan+port;
- Настройте на коммутаторе релей и OPT82;
- В учётной записи абонента укажите MAC.
Не ставьте галочку opt82. Эту опцию поставим после того как отладим прием opt82 от коммутатора. - Просмотрите лог dhcp сервера. В логе виден запрос на получение адреса и дальнейшая его обработка. DHCP сервер последовательно проходит по всем типам коммутаторов и разбирает DHCP указанными в них функциями. В конечном счёте адрес выдаётся по MAC адресу.
/app/collector/var/log/messages
Пример:
- aa:bb:cc:dd:ee:ff - MAC адрес клиента;
- 192.0.2.2 - адрес абонента в биллинге;
- 198.51.100.10 - адрес релэя;
- 198.51.100.20 - адрес биллинга.
лог 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
- Убедитесь, что биллинг разберает данные из opt82 DHCP запроса верно;
- Заполните поля opt82 учётной записи. Установите галочку opt82. Биллинг сгенерирует конфигурационный файл dhcpd.
/app/collector/etc/dhcp/dhcpd.conf
В конфигурационном файле будет создан class и pull для каждой учётной записи с opt82.
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>"; }
- Проверьте, что клиентская станция получает адрес. Видно, что был применён тип коммутатора Cisco2950.
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