pfSense: возможно ли захват трафика фактическим портом WAN?
Похоже, у маршрутизатора pfSense есть проблемы с подключением к Интернету. Мой модем и мой провайдер подтверждают, что у меня есть синхронизация, но в то же время pfSense иногда просто не подключается (используя PPPoE).
я хочу попытаться отладить проблему, наблюдая за соединением PPPoE, пытающимся получить сборку, которая обычно имеет форму:
1. ПАДИ
pfSense передает пакет инициирования активного обнаружения PPPoE (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 (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. PADR
Затем 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 Active Discovery (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 компьютера, а не на интерфейсе WAN PPPoE, который еще не подключен. Это еще не установлено, потому что соединение PPPoE еще не установлено.
я хочу захватывать пакеты по проводам, а не пакеты, выходящие из виртуального соединения PPPoE.
Можно ли перехватывать пакеты через порт WAN, используя PPPoE в качестве метода подключения к Интернету, с помощью pfSense?
2 ответа
Да, вы должны сделать это через SSH, а не через экран GUI Diagnostics>Packet capture, поскольку он будет записываться на интерфейсе PPPoE ng0. Просто tcpdump как обычно на реальном интерфейсе Ethernet, используемом для соединения PPPoE. Отправьте его в файл и перетащите на компьютер с Wireshark для более удобного анализа. Что-то вроде:
tcpdump -i em0 -s 0 -w /tmp/pppoe.pcap
захватить все на em0 в файл /tmp/pppoe.pcap
Чтобы расширить ответ Криса, фактическая команда, которую я использовал, была:
>tcpdump -i xl0 -e 'not (pppoes and ip)'
куда
-i [interface]
указывает мой WAN-интерфейс, который для меня xl0
-e
включить MAC-адреса источника и назначения, чтобы я мог видеть, кто какие пакеты отправляет кому
'not (pppoes and ip)'
это выражение, которое говорит, что я хочу исключить IP- пакеты внутри PPPoE S
Эссионный пакет.
Примечание: tcpdump имеет опции для мониторинга только пакетов "обнаружения" PPPoE (PADI, PADO, PADR, PADS):
>tcpdump -i xl0 -e pppoed
Это покажет только пакеты обнаружения PPPoE. Я предпочел другой синтаксис, потому что, как только сеанс PPPoE установлен, я могу увидеть аутентификацию по логину / паролю с моим провайдером, а также информацию по IP/DNS/route/MTU.
Это привело меня к обнаружению, что pfSense отправляет пакет PPPoE Active Discovery Terminate (PADT) неожиданно. Вот почему моя ссылка не работает - pfSense зависает в случайном порядке.
Тег PADT указывает на конец сеанса, и никому больше не разрешено отправлять пакеты в этом сеансе. Из RFC2516 - Способ передачи PPP через Ethernet (PPPoE):
5.5 Пакет прекращения активного обнаружения PPPoE (PADT)
Этот пакет может быть отправлен в любое время после установления сеанса
указать, что сеанс PPPoE был завершен. Может быть отправлен
Хост или Концентратор доступа. DESTINATION_ADDR
поле является адресом одноадресной передачи Ethernet, поле CODE установлено в 0xa7, и SESSION_ID ДОЛЖЕН быть установлен, чтобы указывать, какой сеанс должен быть завершен. Никаких тегов не требуется.При получении PADT дальнейший трафик PPP не разрешается отправлять
используя эту сессию. Даже обычные пакеты завершения PPP НЕ ДОЛЖНЫ быть
отправлено после отправки или получения PADT. Партнер по ГЧП ДОЛЖЕН использовать
Сам протокол PPP для прерывания сеанса PPPoE, но PADT МОЖЕТ использоваться, когда PPP не может быть использован.
Мой следующий вопрос, конечно, будет
Почему pfSense зависает случайно?
Ответ заключается в том, что коммутатор банкомата внутри концентратора Bell Canada неисправен. Карта случайно сбрасывается, теряя память о моем сеансе PPPoE.
Тем временем мой маршрутизатор не знает, что его сеанс PPPoE больше не является допустимым, и продолжает пытаться установить связь через тот же SessionID. Концентратор, не распознающий этот сеанс, игнорирует любые пакеты, поступающие от меня.
pfSense, после обнаружения 10 секунд отсутствия трафика, начинает отправлять эхо-запросы LCP с интервалом в 10 секунд в удаленную сеть. После 40 секунд отсутствия ответов pfSense завершает сеанс PPPoE и запускает новый:
PADI
Концентратор, увидев трансляцию с просьбой начать сеанс, отвечает; и вскоре после этого устанавливается новый сеанс PPPoE.
Текущий (неисправный) АТМ-коммутатор MAC:
00:90:1a:a0:a1:f4
Решения Unisphere (был: Redstone Communications)
Новый банкоматный коммутатор MAC:
быть установленным 8/6/2010