Данный способ диагностики применим в случае появления проблем с установлением PPPoE сессий клиентами, находящимися за ONT, либо клиентами, запущенными на ONT. В этом случае, если на OLT включен PPPoE Intermediate agent, для анализа можно воспользоваться функцией перехвата фреймов PPPoE, проходящих через OLT. Таким образом, при включении расширенного логирования по модулю OLT pppoe-ia, в логе можно будет увидеть как фреймы PPPoE, поступающие от ONT, так и ответные фреймы от BRAS, установленного на сети. Данная информация будет включать заголовки данных пакетов, типы запросов и прочее.
В дефолтной конфигурации на чип OLT назначен профиль pppoe-ia с именем pppoe-ia-00. По умолчанию функционал профиля отключен и OLT не осуществляет перехват и анализ заголовков транзитных PPPoE пакетов. Обычно данный профиль включается с целью добавления дополнительной информации об отправляемом в сеть клиентском PPPoE запросе, например о номере pon-порта откуда поступил запрос , путем добавления к фрейму специального PPPoE Vendor Specific tag. В данной статье рассмотрим включение данного функционала без добавления специальных меток, а только включение перехвата для анализа.
В случае, если на OLT уже настроен профиль pppoe-ia, можно приступать сразу к выполнению пункта 2. Ниже приведена настройка начиная с активации профиля pppoe-ia.
Перейдите в режим конфигурирования, далее в режим настройки дефолтного pppoe-ia профиля. Активируйте профиль PPPOE-IA, который назначен на OLT чип по умолчанию, примените и сохраните настройки.
LTP-8X# configure terminal LTP-8X(config)# profile pppoe-ia pppoe-ia-00 LTP-8X(config-pppoe-ia)("pppoe-ia-00")# enable LTP-8X(config-pppoe-ia)("pppoe-ia-00")# do commit LTP-8X(config-pppoe-ia)("pppoe-ia-00")# do save LTP-8X(config-pppoe-ia)("pppoe-ia-00")# exitНа MA4000 для подтверждения выполненных в конфигурации изменений будет использоваться команда confirm.
Все клиентские PPPoE сессии, которые будут установлены после активации профиля, будут доступны для мониторинга.LTP-8X# show interface gpon-port 0 pppoe sessions PPPoE sessions (1): ## Serial GPON-port Ont ID Port Client MAC Session ID Duration Unblock 1 ELTX91000020 0 6 490 EC:B1:E0:23:4B:E6 0x0019 0:03:18 0:00:00
Далее необходимо настроить уровень логирования для модуля pppoeia и модулей, отвечающих за запись отладочных сообщений в локальный лог-файл.
Для LTP-X данная конфигурация будет выглядеть так.LTP-4X(config)# logging module pmchal-pppoeia 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-pppoeia 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-pppoeia 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-pppoeia loglevel notice ma4000(config)# do commit ma4000(config)# do confirm
После выполнения данных настроек, лог будет объемным. В логе будет присутствовать информация о каждом управляющем PPPoE пакете, который будет проходить через OLT. Наличие большого количества сообщения может вызывать излишнюю нагрузку на CPU OLT. Поэтому по завершению анализа рекомендуется вернуть настройки логирования в исходное состояние как описано в п.4.
Локально лог можно посмотреть следующими командами:
Для LTP-X:
LTP-4X# show log ltp LTP-4X# show log buffer
Для MA4000:
ma4000# show log slot0
Для понимания отладки обратите внимание на то, из каких заголовков состоит PPPoE-фрейм.
+-----------+-----------+-------------+--------------------+-----------
| DMAC | SMAC | Type/Length | Payload Data | FCS |
| 6 bytes | 6 bytes | 2 bytes | Variable length | 4 bytes |
+-----------+-----------+-------------+--------------------+-----------
| |
| |
| |
| |
| |
+----------+----------+--------+------------+----------+---------------
| Ver | Type | Code | Session ID | Length | Payload Data1|
| 4 bits | 4 bits | 1 byte | 2 bytes | 2 bytes | |
+----------+----------+--------+------------+----------+---------------
Далее рассмотрим пример debug лога, полученного на LTP-4X. Отладочные сообщения имеют префикс pmchal: debug: [PPPOEIA]. Здесь мы можем видеть в логах процедуру установления сессии клиентом и, соответственно, фреймы PADI, PADO, PADR, PADS.
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: rx(60): c=2,p=3681 p->s PADI ff ff ff ff ff ff e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 09 00 00 00 0c 01 03 00 04 00 6b ...
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] addvstag: wrong frame format - can not find EndOfList tag, len=36
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] addvstag: cid+rid='^A'
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,0258), vlanOuter=(1,8100,0258), vlanInner=(0,0000,0000)
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: tx(68): ff ff ff ff ff ff e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 09 00 00 00 1c 01 03 00 04 00 6b ...
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA]
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: rx(75): c=2,p=000 s->p PADO e0 d9 e3 5a c2 c8 98 de d0 06 7f 60 81 00 02 58 88 63 11 07 00 00 00 33 01 02 00 0b 6b 6f ...
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA]
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: rx(60): c=2,p=3681 p->s PADR 98 de d0 06 7f 60 e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 19 00 00 00 24 01 01 00 00 01 03 ...
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] SESTB: addses: id=0: chan=2, port=3681, client=e0:d9:e3:5a:c2:c8, server=98:de:d0:06:7f:60, sess=0000, start=1732004485, hostUniq=00 04 00 6b 20 38
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] addvstag: wrong frame format - can not find EndOfList tag, len=60
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] addvstag: cid+rid='^A'
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,0258), vlanOuter=(1,8100,0258), vlanInner=(0,0000,0000)
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: tx(76): 98 de d0 06 7f 60 e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 19 00 00 00 34 01 01 00 00 01 03 ...
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA]
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: rx(64): c=2,p=000 s->p PADS e0 d9 e3 5a c2 c8 98 de d0 06 7f 60 81 00 02 58 88 63 11 65 00 01 00 0c 01 01 00 00 01 03 ...
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] SESTB: start: id=0: chan=2, port=3681, client=e0:d9:e3:5a:c2:c8, server=98:de:d0:06:7f:60, sess=0001, start=1732004485, hostUniq=00 00
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] ONTTB: addses: c=2,p=3681 sessNum=1
Например, разберем первое сообщение из этого лога - PADI от клиента. Информация по нему включает следующие строки.
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: rx(60): c=2,p=3681 p->s PADI ff ff ff ff ff ff e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 09 00 00 00 0c 01 03 00 04 00 6b ...
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] addvstag: wrong frame format - can not find EndOfList tag, len=36
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] addvstag: cid+rid='^A'
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,0258), vlanOuter=(1,8100,0258), vlanInner=(0,0000,0000)
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: tx(68): ff ff ff ff ff ff e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 09 00 00 00 1c 01 03 00 04 00 6b ...
Здесь мы можем видеть следующее (построчно):
- Запрос поступил (RX - запрос получен чипом) с pon-порта 2, с GEM-порта 3681 (c=2,p=3681) ID ONT здесь указан не будет. Далее виден тип сообщения PADI и L2 заголовки фрейма: ff ff ff ff ff ff - destination MAC, e0 d9 e3 5a c2 c8 - source MAC, и.т.д.
- Информацию о длине пакета. при наличии ошибки wrong frame format - can not find EndOfList tag, её можно проигнорировать.
- Информацию о добавленных PPPOE-IA агентом тегах к фрейму. В данном примере они не добавляются.
- Информацию о количестве меток VLAN, TPID, и идентификаторах VLAN в HEX.
- Информацию о том, что фрейм отправлен с чипа и заголовки фрейма после возможной модификации чипом в HEX.
Ниже приведен пример Termination Request (PADT), вызванного клиентом.
Nov 19 15:21:23 KOZM-KULAKOVO-GPON1 pmchal: debug: [PPPOEIA] RX: rx(60): c=2,p=3681 p->s PADT 1c af f7 0e 1c 17 e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 a7 00 0c 00 0c 01 03 00 04 00 6b ...
Nov 19 15:21:23 KOZM-KULAKOVO-GPON1 pmchal: debug: [PPPOEIA] SESTB: delses: NOTE: Session does not exist: chan=2, port=3681, client=e0:d9:e3:5a:c2:c8, server=1c:af:f7:0e:1c:17, sess=000c, start=0, hostUniq=00 00
Nov 19 15:21:23 KOZM-KULAKOVO-GPON1 pmchal: debug: [PPPOEIA] addvstag: wrong frame format - can not find EndOfList tag, len=36
Nov 19 15:21:23 KOZM-KULAKOVO-GPON1 pmchal: debug: [PPPOEIA] addvstag: cid+rid='^A'
Nov 19 15:21:23 KOZM-KULAKOVO-GPON1 pmchal: debug: [PPPOEIA] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,0258), vlanOuter=(1,8100,0258), vlanInner=(0,0000,0000)
Nov 19 15:21:23 KOZM-KULAKOVO-GPON1 pmchal: debug: [PPPOEIA] RX: tx(68): 1c af f7 0e 1c 17 e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 a7 00 0c 00 1c 01 03 00 04 00 6b ...