Данный способ диагностики применим в случае появления проблем с получением IP адресов по протоколу DHCP клиентами, находящимися за ONT, либо DHCP клиентами, запущенными на ONT. В этом случае, если на OLT включен DHCP relay агент, для анализа можно воспользоваться функцией перехвата пакетов DHCP, проходящих через OLT. Таким образом, при включении расширенного логирования по модулю OLT dhcp-ra в логе можно будет увидеть как пакеты DHCP, поступающие от ONT, так и ответные пакеты от DHCP сервера, установленного на сети. Данная информация будет включать заголовки данных пакетов, типы запросов и прочее.
В дефолтной конфигурации на чип OLT назначен профиль dhcp-ra с именем dhcp-ra-00. По умолчанию функционал профиля отключен и OLT не осуществляет перехват и анализ заголовков транзитных DHCP пакетов. Обычно данный профиль включается с целью добавления дополнительной информации об отправляемом в сеть DHCP запросе, например о номере pon-порта откуда поступил запрос , путем добавления опции 82. Подробнее настройка данного функционала рассмотрена в статье [LTP-X] Настройка DHCP Relay Agent / Option 82. В данной статье рассмотрим включение данного функционала без добавления специальных меток, а только включение перехвата для анализа.
В случае, если на OLT уже настроен профиль dhcp-ra, можно приступать сразу к выполнению пункта 2. Ниже приведена настройка начиная с активации профиля dhcp-ra.
Перейдите в режим конфигурирования, далее в режим настройки дефолтного dhcp-ra профиля. Активируйте профиль DHCP-RA, который назначен на OLT чип по умолчанию, примените и сохраните настройки.
LTP-4X# configure terminal LTP-4X(config)# profile dhcp-ra dhcp-ra-00 LTP-4X(config-dhcp-ra)("dhcp-ra-00")# enable LTP-4X(config-dhcp-ra)("dhcp-ra-00")# do commit LTP-4X(config-dhcp-ra)("dhcp-ra-00")# do save LTP-4X(config-dhcp-ra)("dhcp-ra-00")# exit
На MA4000 для подтверждения выполненных в конфигурации изменений будет использоваться команда confirm.
Все пользовательские DHCP сессии, которые будут установлены после активации профиля, будут доступны для мониторинга.LTP-4X(config)# do show interface gpon-port 0 dhcp sessions DHCP sessions (1): ## Serial ONT Service IP MAC Vid GEM Life time 1 454C545873000140 0/7 0 192.168.101.162 E0:D9:E3:85:A4:DA 1101 516 172
Далее необходимо настроить уровень логирования для модуля dhcp-ra и модулей, отвечающих за запись отладочных сообщений в локальный лог-файл.
Для LTP-X данная конфигурация будет выглядеть так.LTP-4X(config)# logging module pmchal-dhcpra loglevel debug LTP-4X(config)# logging system loglevel debug LTP-4X(config)# logging file loglevel debug LTP-4X(config)# do commit LTP-4X(config)# do save
Для MA4000 настройка будет иметь некоторые отличия. Настройка будет выполняться по отдельным слотам. А конфигурация параметров уровня вывода в файл осуществляется в настройках logging filter. При этом для каждого слота будет использоваться свой logging filter. Например, для слота 0 настройка будет выглядеть следующим образом:
ma4000(config)# logging filter slot0 ma4000(pp4x-config-log-filter-slot0)# facility any debug ma4000(pp4x-config-log-filter-slot0)# exit ma4000(config)# slot 0 logging system loglevel debug ma4000(config)# slot 0 logging module pmchal-dhcpra loglevel debug ma4000(config)# do commit ma4000(config)# do confirm
Если необходимо настроить отправку отладочных логов на удаленный syslog-сервер, расположенный в сети, необходимо дополнительно выполнить.
На LTP-X:LTP-4X(config)# logging remote 1.1.1.1 LTP-4X(config)# do commit LTP-4X(config)# do save
На MA4000:
ma4000(config)# logging host 1.1.1.1 port 514 transport udp debug ma4000(config)# do commit ma4000(config)# do confirm
В данных примерах адрес удаленного syslog сервера указан 1.1.1.1. Необходимо заменить на актуальное значение.
Для того чтобы вернуть исходные настройки логирования по завершению анализа, выполните:
На LTP-X:LTP-4X(config)# logging module pmchal-dhcpra loglevel notice LTP-4X(config)# logging system loglevel notice LTP-4X(config)# logging file loglevel notice LTP-4X(config)# do commit LTP-4X(config)# do save
На MA4000:
ma4000(config)# logging filter slot0 ma4000(pp4x-config-log-filter-slot0)# facility any info ma4000(pp4x-config-log-filter-slot0)# exit ma4000(config)# slot 0 logging system loglevel notice ma4000(config)# slot 0 logging module pmchal-dhcpra loglevel notice ma4000(config)# do commit ma4000(config)# do confirm
После выполнения данных настроек, лог будет объемным. В логе будет присутствовать информация о каждом DHCP пакете, который будет проходить через OLT. Наличие большого количества сообщения может вызывать излишнюю нагрузку на CPU OLT. Поэтому по завершению анализа рекомендуется вернуть настройки логирования в исходное состояние как описано в п.4.
Локально лог можно посмотреть следующими командами:
Для LTP-X:
LTP-4X# show log ltp LTP-4X# show log buffer
Для MA4000:
ma4000# show log slot0
Ниже приведен пример debug лога, полученного на LTP-4X. Отладочные сообщения имеют префикс pmchal: debug: [DHCPRA].
Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] RX(594): p->s c=0,p=516: ff ff ff ff ff ff e0 d9 e3 85 a4 da 81 00 00 0b 08 00 45 00 02 40 00 00 00 00 40 11 78 ae ... Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] DHCP packet = 1454 = 1500 - 46 Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] RX(594): p->s c=0,p=516: dhcp=Discover(1), flags=unicast, xid=0x429cf0e6. Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] TRTB: add: id=0: chan=0, port=516, client=e0:d9:e3:85:a4:da, xid=0x429cf0e6, creator=Discover(1), start=947729615433, reply=(nil), size=1 Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,044d), vlanOuter=(1,8100,044d), vlanInner=(0,0000,0000) Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] TX(349): p->s c=0,p=516: ff ff ff ff ff ff e0 d9 e3 85 a4 da 81 00 04 4d 08 00 45 00 01 4b 00 00 00 00 40 11 79 a3 ... Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] RX(360): s->p c=0,p=0: e0 d9 e3 85 a4 da 48 5b 39 02 55 84 81 00 04 4d 08 00 45 00 01 56 00 00 00 00 80 11 ed a1 ... Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] DHCP packet = 1454 = 1500 - 46 Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] RX(360): s->p c=0,p=0: dhcp=Offer(2), flags=unicast, xid=0x429cf0e6. Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,044d), vlanOuter=(1,8100,044d), vlanInner=(0,0000,0000) Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] TX(361): s->p c=0,p=516: e0 d9 e3 85 a4 da 48 5b 39 02 55 84 81 00 e0 0b 08 00 45 00 01 57 00 00 00 00 80 11 ed a0 ... Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] RX(594): p->s c=0,p=516: ff ff ff ff ff ff e0 d9 e3 85 a4 da 81 00 00 0b 08 00 45 00 02 40 00 00 00 00 40 11 78 ae ... Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] DHCP packet = 1454 = 1500 - 46 Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] RX(594): p->s c=0,p=516: dhcp=Request(3), flags=unicast, xid=0x429cf0e6. Jan 13 09:13:36 LTP-4X pmchal: debug: [DHCPRA] TRTB: add: Transaction already exist: index=0: chan=0, port=516, client=e0:d9:e3:85:a4:da, xid=0x429cf0e6, creator=Discover(1), start=947729615433, reply=(nil), update it
Например, разберем первое сообщение из этого лога - DHCP Discover от клиента. Информация по нему включает следующие строки.
Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] RX(594): p->s c=0,p=516: ff ff ff ff ff ff e0 d9 e3 85 a4 da 81 00 00 0b 08 00 45 00 02 40 00 00 00 00 40 11 78 ae ... Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] DHCP packet = 1454 = 1500 - 46 Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] RX(594): p->s c=0,p=516: dhcp=Discover(1), flags=unicast, xid=0x429cf0e6. Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] TRTB: add: id=0: chan=0, port=516, client=e0:d9:e3:85:a4:da, xid=0x429cf0e6, creator=Discover(1), start=947729615433, reply=(nil), size=1 Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,044d), vlanOuter=(1,8100,044d), vlanInner=(0,0000,0000) Jan 13 09:13:35 LTP-4X pmchal: debug: [DHCPRA] TX(349): p->s c=0,p=516: ff ff ff ff ff ff e0 d9 e3 85 a4 da 81 00 04 4d 08 00 45 00 01 4b 00 00 00 00 40 11 79 a3 ...
Здесь мы можем видеть следующее (построчно):
- Запрос поступил (RX - запрос получен чипом) с pon-порта 0, с GEM-порта 516 (c=0,p=516) ID ONT здесь указан не будет. Далее видны L2 заголовки фрейма: ff ff ff ff ff ff - destination MAC, e0 d9 e3 85 a4 da - source MAC, и.т.д.
- Информацию о длине пакета.
- Информацию о типе полученного сообщения DHCP (Discover), флагах, и id устанавливаемой сессии.
- Информация о добавлении записи в таблицу DHCP snooping.
- Информация о тегах VLAN для данного фрейма - количество тегов (msgVlanTagsNum=1), и информация о TPID и VLAN ID (TPID 0x8100, VLAN ID 0x044d = 1101 в десятичной системе).
- Запрос отправлен с чипа (TX) и далее L2 заголовки фрейма.
При возникновении трудностей в запуске отладки или расшифровке полученных отладочных сообщений, сформируйте заявку на техническую поддержку.