Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Данный способ диагностики применим в случае появления проблем с установлением 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.

  1. Перейдите в режим конфигурирования, далее в режим настройки дефолтного pppoe-ia профиля.  Активируйте профиль PPPOE-IA, который назначен на OLT чип по умолчанию, примените и сохраните настройки.

    Без форматирования
    LTP-8X# configure terminal
    LTP-8X(config)# profile pppoe-ia pppoe-ia-00

При наличии проблем у клиентов с PPPoE, на OLT можно настроить логгирование уровня Debug по агенту PPPoE-IA для анализа и поиска причин.

PPPoE Intermediate Agent применяется для предоставления BRAS дополнительных данных о полученном PADI-запросе. К таким данным можно отнести информацию о терминале, на котором запущен PPPoE Intermediate Agent, а также информацию об ONT, с которого получен PADI-запрос. Модификация PADI пакетов производится путем перехвата и последующей обработки на CPU терминала.

 1. В первую очередь, нужно включить обработку PPPoE трафика командой enable:

...

  1. 
    LTP-8X(config-pppoe-ia)("pppoe-ia-00")# 

...

  1. 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 сессии, которые будут установлены после активации профиля, будут доступны для мониторинга.

Из дефолта, обработка PPPoE трафика выключена.

После применения настроек, можно мониторить активные PPPoE-сессии на gpon-port'ах:

панель

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

...

  1. Без форматирования
    LTP-8X# 

...

  1. 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


  2. Далее необходимо настроить уровень логирования для модуля 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


  3. Если необходимо настроить отправку отладочных логов на удаленный 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. Необходимо заменить на актуальное значение.

  4. Для того чтобы вернуть исходные настройки логирования по завершению анализа, выполните:
    На 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-фрейм.

Без форматирования
            

3. После выполнения настроек логгирования, можно вести анализ PPPoE трафика по лог файлам (buffer, ltp, ltp.1...).

Напомним структуру 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  |              |
             +--   +----------+----------+--------+------------+----------+--------------+----------+---------------

Теперь, рассмотрим перехваченные пакеты PADI (PPPoE Active Discovery Initiation) и PADR (PPPoE Active Discovery Request) в логах. Их посылает pppoe-клиент, которым является WAN на ONT. Либо устройство за ONT, если ONT настроена в режиме Bridge.

--

Далее рассмотрим пример 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

панель

Aug 26 13:09:31 LTP-8X pmchal: debug: [PPPOEIA]
Aug 26 13:09:31 LTP-8X addvstag: wrong frame format - can not find EndOfList tag, len=36
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: rx(60): c=0,p=490 p->s PADI ff ff ff ff ff ff ec b1 e0 23 4b e6 81 00 00 0a 88 63 11 09 00 00 00 0f 01 01 00 00 01 03 ...
Aug 26 13:09:31 LTP-8X addvstag: cid+rid='^A'
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] addvstag: wrong frame format - can not find EndOfList tag, len=39
Aug 26 13:09:31 LTP-8X 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] addvstag: cid+rid='^A'
Aug 26 13:09:31 LTP-8X 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] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,044c), vlanOuter=(1,8100,0005), vlanInner=(1,8100,000a)
Aug 26 13:09:31 LTP-8X pmchal: debug: [PPPOEIA] VLTAG: model 1
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 Aug 26 13:09:31 LTP-8X pmchal: debug: [PPPOEIA]
Aug 26 13:09:31 Nov 19 15:21:25 LTP-8X 4X pmchal: debug: [PPPOEIA] RX: rx(6860): c=02,p=490 3681 p->s PADR 48 5b 39 02 55 84 ec b1 e0 23 4b e6 81 00 00 0a 98 de d0 06 7f 60 e0 d9 e3 5a c2 c8 81 00 02 58 88 63 11 19 00 00 00 2c 24 01 01 00 00 05 45 4c 01 03 ...
Aug 26 13:09:31 Nov 19 15:21:25 LTP-8X 4X pmchal: debug: [PPPOEIA] SESTB: addses: id=0: chan=02, port=4903681, client=ece0:b1d9:e0e3:235a:4bc2:e6c8, server=4898:5bde:39d0:0206:557f:8460, sess=0000, start=17246525711732004485, hostUniq=00 07 ec b1 e0 23 4b e6 00
Aug 26 13:09:31 LTP-8X 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=68
Aug 26 13:09:31 LTP-8X 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] addvstag: cid+rid='^A'
Aug 26 13:09:31 LTP-8X 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] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,044c), vlanOuter=(1,8100,0005), vlanInner=(1,8100,000a)
Aug 26 13:09:31 LTP-8X 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] VLTAG: model 1
Aug 26 13:09:31 LTP-8X
Nov 19 15:21:25 LTP-4X pmchal: debug: [PPPOEIA] RX: txrx(88): 48 5b 39 02 55 84 ec b1 e0 23 4b e6 81 00 00 05 81 00 01 ea 88 63 11 19 00 00 00 3c 01 01 ...

Dst.mac - ff ff ff ff ff ff (48 5b 39 02 55 84) 
Src.mac - ec b1 e0 23 4b e6

Отправленный пакет PADI, инициирует начало установления PPPoE-сессии. В ответ на полученный PADI, сервер должен отправить PADO (PPPoE Active Discovery Offer). На него в ответ клиент посылает PADR. И затем, цикл установленния PPPoE-сесии завершается отправкой сервером пакета PADS (PPPoE Active Discovery Session-confirmation).
Если, в ответ на PADI(PADR) сообщение от PPPoE-сервера не приходит PADO(PADS), то следует разбираться с сетью выше OLT. 

Разрывы сессии

Если происходят разрывы PPPoE-сессии, и при этом ONT не отключается, то следует смотреть пакеты PADT ((PPPoE) Active Discovery Termination).

Этот пакет обрывает соединение с POP. Он может быть послан либо со стороны пользователя, либо со стороны сервера.

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

панель

Aug 26 13:09:20 LTP-8X pmchal: debug: [PPPOEIA]
Aug 26 13:09:20 LTP-8X pmchal: debug: [PPPOEIA] RX: rx(68): c=0,p=000 s->p PADT ec b1 e0 23 4b e6 48 5b 39 02 55 84 81 00 00 05 81 00 01 ea 88 63 11 a7 00 2c 00 11 02 03 ...
Aug 26 13:09:20 LTP-8X 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] SESTB: delses: NOTE: Session does not exist: chan=0, port=0, client=ec:b1:e0:23:4b:e6, server=48:5b:39:02:55:84, sess=002c, start=0, hostUniq=00 00

В примере выше, инициатором разрыва сессии, выступает сервер, так как Dst.mac= ec b1 e0 23 4b e6 мак клиента, а Src.mac=48 5b 39 02 55 84 мак сервера.

В примере ниже, инициатором разрыва сессии, выступает клиент, так как первым идёт мак сервера, Dst.mac=48 5b 39 02 55 84, a Src.mac=ec b1 e0 23 4b e6 мак клиента.

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 ...

Здесь мы можем видеть следующее (построчно):

  1. Запрос поступил (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, и.т.д.
  2. Информацию о длине пакета. при наличии ошибки wrong frame format - can not find EndOfList tag, её можно проигнорировать.
  3. Информацию о добавленных PPPOE-IA агентом тегах к фрейму. В данном примере они не добавляются.
  4. Информацию о количестве меток VLAN, TPID, и идентификаторах VLAN в HEX.
  5. Информацию о том, что фрейм отправлен с чипа и заголовки фрейма после возможной модификации чипом в HEX.

Ниже приведен пример Termination Request (PADT), вызванного клиентом.

LTP-8X# configure terminal LTP-8X(config)# logging system loglevel notice LTP-8X(config)# logging file loglevel notice LTP-8X(config)# logging module pmchal-pppoeia loglevel notice LTP-8X(config)# do commit LTP-8X(config)# do save

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 ...

панель

Nov 19 15:21:23 KOZM-KULAKOVO-GPON1

панель

Aug 26 12:44:12 LTP-8X pmchal: debug: [PPPOEIA]
Aug 26 12:44:12 LTP-8X pmchal: debug: [PPPOEIA] RX: rx(60): c=0,p=490 p->s PADT 48 5b 39 02 55 84 ec b1 e0 23 4b e6 81 00 00 0a 88 63 11 a7 00 2b 00 00 00 00 05 00 08 00 ...
Aug 26 12:44:12 LTP-8X pmchal: debug: [PPPOEIA] SESTB: delses: NOTE: Session does not exist: chan=0, port=490, client=ec:b1:e0:23:4b:e6, server=48:5b:39:02:55:84, sess=002b, start=0, hostUniq=00 00
Aug 26 12:44:12 LTP-8X pmchal: debug: [PPPOEIA] addvstag: wrong frame format - can not find EndOfList tag, len=24
Aug 26 12:44:12 LTP-8X pmchal: debug: [PPPOEIA] addvstag: cid+rid='^A'
Aug 26 12:44:12 LTP-8X 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] VLTAG: msgVlanTagsNum=1, vlanOuterOrig=(1,8100,044c), vlanOuter=(1,8100,0005), vlanInner=(1,8100,000a)
Aug 26 12:44:12 LTP-8X pmchal: debug: [PPPOEIA] VLTAG: model 1
Aug 26 12:44:12 LTP-8X pmchal: debug: [PPPOEIA] RX: tx(72): 48 5b 39 02 55 84 ec b1 e0 23 4b e6 81 00 00 05 81 00 01 ea 88 63 11 a7 00 2b 00 10 01 05 ...

Примечание

После анализа проблем с PPPoE, верните прежний уровень логгирования system, file, pmchal-pppoeia.

Без форматирования