У маршрутизатора pfSense возникли проблемы с подключением к Интернету. Мой модем и мой интернет-провайдер подтверждают, что у меня есть синхронизация, но в то же время pfSense иногда просто не подключается (используя PPPoE).
я хочу попытаться отладить проблему, посмотрев PPPoE соединение пытается нарастить, которое обычно имеет форму:
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
Затем интернет-провайдер отвечает пакетом 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
Затем 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
Затем мой интернет-провайдер отвечает идентификатором сеанса в пакете подтверждения сеанса активного обнаружения 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