Назад | Перейти на главную страницу

pfSense: Возможно ли захватить фактический порт WAN?

У маршрутизатора pfSense возникли проблемы с подключением к Интернету. Мой модем и мой интернет-провайдер подтверждают, что у меня есть синхронизация, но в то же время pfSense иногда просто не подключается (используя PPPoE).

я хочу попытаться отладить проблему, посмотрев PPPoE соединение пытается нарастить, которое обычно имеет форму:

1. PADI

pfSense транслирует пакет PPPoE Active Discovery Initiation (PADI) моему интернет-провайдеру:

DESTINATION_ADDR: ff:ff:ff:ff:ff:ff     ;broadcast mac address
SOURCE_ADDR:      00:01:02:3d:71:85     ;pfSense WAN adapter mac address
ETHER_TYPE:       8863                  ;PPPoE Discovery stage
PAYLOAD:          11090000
                  1                     ;Version always 0x1
                   1                    ;Type always 0x1
                    09                  ;Code: 0x09 = PADI
                      0000              ;Session ID: 0x0000

2. ПАДО

Затем интернет-провайдер отвечает пакетом PPPoE Active Discovery Offer (PADO):

DESTINATION_ADDR: 00:01:02:3d:71:85     ;pfSense WAN adapter mac address
SOURCE_ADDR:      00:90:1a:a0:a1:f4     ;ISP's PPPoE server mac address
ETHER_TYPE:       8863                  ;PPPoE Discovery stage
PAYLOAD:          11070000
                  1                     ;Version always 0x1
                   1                    ;Type always 0x1
                    07                  ;Code: 0x07 = PADO
                      0000              ;Session ID: 0x0000

3. ПАДР

Затем pfSense запрашивает запуск сеанса PPPoE с парнем, который ответил на его трансляцию, отправив им пакет PPPoE Active Discovery Request (PADR):

DESTINATION_ADDR: 00:90:1a:a0:a1:f4   ;ISP's PPPoE server mac address
SOURCE_ADDR:      00:01:02:3d:71:85   ;pfSense WAN adapter mac address
ETHER_TYPE:       8863                ;PPPoE Discovery stage
PAYLOAD:          11190000
                  1                   ;Version always 0x1
                   1                  ;Type always 0x1
                    19                ;Code: 0x19 = PADR
                      0000            ;Session ID: 0x0000

4. ПОДКЛАДКИ

Затем мой интернет-провайдер отвечает идентификатором сеанса в пакете подтверждения сеанса активного обнаружения PPPoE (PADS):

DESTINATION_ADDR: 00:01:02:3d:71:85   ;pfSense WAN adapter mac address
SOURCE_ADDR:      00:90:1a:a0:a1:f4   ;ISP's PPPoE server mac address
ETHER_TYPE:       8863                ;PPPoE Discovery stage
PAYLOAD:          11651234
                  1                   ;Version always 0x1
                   1                  ;Type always 0x1
                    65                ;Code: 0x65 = PADS
                      1234            ;Session ID: 0x1234

... и так далее.

я хочу следить за PPPoE создание сеанса. Я хочу увидеть если когда pfSense транслирует PADI пакет инициации. Я хочу увидеть если мой провайдер не отвечая PADO. я хочу захватить пакеты на WAN интерфейс.

Те из вас, кто проницателен, поймут проблему. я хочу захватывать пакеты на актуальный Интерфейс WAN компьютера, а не интерфейс PPPoE "WAN", который еще не работает. Это еще не работает, потому что соединение PPPoE еще не установлено.

я хочу перехватывать пакеты по проводу, а не пакеты, исходящие из виртуального соединения PPPoE.

Можно ли перехватывать пакеты через порт WAN с помощью PPPoE в качестве метода подключения к Интернету с помощью pfSense?

Чтобы расширить ответ Криса, я использовал следующую команду:

>tcpdump -i xl0 -e 'not (pppoes and ip)'

куда

-i [interface]

указывает мой WAN-интерфейс, который для меня xl0

-e 

включить исходный и целевой MAC-адреса, чтобы я мог видеть, кто и какие пакеты отправляет

'not (pppoes and ip)'

является выражение это говорит, что я хочу исключить ip пакеты внутри PPPoE Sпакет ession.

Примечание: tcpdump имеет параметры для отслеживания только пакетов «обнаружения» PPPoE (PADI, PADO, PADR, PADS):

>tcpdump -i xl0 -e pppoed

Это покажет просто пакеты обнаружения PPPoE. Я предпочел другой синтаксис, потому что после того, как сеанс PPPoE установлен, я смогу увидеть аутентификацию по логину / паролю у своего провайдера, а также информацию об IP / DNS / маршруте / MTU.


Это привело меня к выводу, что pfSense отправляет Завершение активного обнаружения PPPoE (PADT) пакет неожиданно. Поэтому у меня ссылка не работает - случайным образом зависает pfSense.

Тег PADT указывает на конец сеанса, и никому не разрешено больше отправлять пакеты в этом сеансе. Из RFC2516 - Метод передачи PPP через Ethernet (PPPoE):

5.5 Пакет PPPoE Active Discovery Terminate (PADT)

Этот пакет может быть отправлен в любое время после установления сеанса на
указывают, что сеанс PPPoE был завершен. Он может быть отправлен
либо Хост, либо концентратор доступа. DESTINATION_ADDR
поле является одноадресным адресом Ethernet, поле CODE установлено в 0xa7, а SESSION_ID ДОЛЖЕН быть установлен, чтобы указать, какой сеанс должен быть завершен. Никаких тегов не требуется.

Когда PADT получен, дальнейшая отправка PPP-трафика запрещена.
используя этот сеанс. Даже обычные пакеты завершения PPP НЕ ДОЛЖНЫ быть
отправлено после отправки или получения PADT. Одноранговому узлу PPP СЛЕДУЕТ использовать
Сам протокол PPP для прерывания сеанса PPPoE, но PADT МОЖЕТ использоваться, когда PPP не может использоваться.

Мой следующий вопрос, конечно же, будет

Почему pfSense зависает случайно?


Ответ заключается в том, что переключатель банкомата в концентраторе Bell Canada неисправен. Карта произвольно сбрасывалась, теряя всю память о моем сеансе PPPoE.

Между тем, мой маршрутизатор не знает, что его сеанс PPPoE больше не действителен, и продолжает пытаться общаться через тот же самый Идентификатор сессии. Концентратор, не распознав этот сеанс, игнорирует все исходящие от меня пакеты.

pfSense, обнаружив отсутствие трафика в течение 10 секунд, начинает отправлять Эхо-запросы LCPс интервалом в 10 секунд в удаленную сеть. После 40 секунд отсутствия ответов pfSense завершает сеанс PPPoE и запускает новый:

PADI

Концентратор, увидев широковещательный запрос на начало сеанса, отвечает; и вскоре после этого устанавливается новый сеанс PPPoE.

Текущий (неисправный) MAC коммутатора ATM:

00:90:1a:a0:a1:f4 Решения Unisphere (было: Redstone Communications)

Новый MAC-адрес ATM-коммутатора:

будет установлен 06.08.2010

Да, вы должны сделать это через SSH, а не через экран «Диагностика графического интерфейса»> «Захват пакетов», поскольку он будет записываться через интерфейс PPPoE ng0. Просто используйте tcpdump как обычно на реальном интерфейсе Ethernet, используемом для соединения PPPoE. Отправьте его в файл и перенесите на машину с помощью Wireshark для упрощения анализа. Что-то вроде:

tcpdump -i em0 -s 0 -w /tmp/pppoe.pcap

захватить все на em0 в файл /tmp/pppoe.pcap