Я хочу захватить пакеты, которые являются или Обнаружением PPPoE или Пакетом Сеанса.

Поддерживает ли tcpdump объединение протоколов с или? Кажется, что справочная страница так говорит, но она не работает на Raspbian Wheezy с tcpdump 4.6.2 и libpcap 1.6.2.

Затем я открываю две сессии tcpdump (в разных окнах консоли, на одном хосте):

pi@raspberrypi205 $ sudo tcpdump -i eth1 -vvvv pppoed or pppoes
pi@raspberrypi205 $ sudo tcpdump -i eth1 -vvvv pppoes or pppoed

Затем я отправляю пакет с Scapy 2.2.0:

macIf1 = "00:24:9b:1b:51:be"; macIf2 = "00:24:9b:1b:50:23"; macBroadcast = "ff:ff:ff:ff:ff:ff"
pppoe_discovery = Ether(src=macIf1, dst=macBroadcast)/PPPoED(code=0xa7,sessionid=0x1122)/Raw(load='\x01\x04\x00\x00\x00\x00')
sendp(pppoe_discovery, iface="eth1")

Примечательно, что первая команда tcpdump перехватывает пакет, а вторая - нет. Я делаю что-то неправильно? Разве невозможно выполнить две команды tcpdump одновременно?

pi@raspberrypi205 $ sudo tcpdump -i eth1 -vvvv pppoed or pppoes
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
12:17:50.174774 PPPoE PADT [ses 0x1122] [AC-Cookie][|pppoe]

pi@raspberrypi205 $ sudo tcpdump -i eth1 -vvvv pppoes or pppoed
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes

1 ответ1

1

Документация объясняет это:

Обратите внимание, что первое ключевое слово pppoes, встречающееся в выражении, изменяет смещения декодирования для оставшейся части выражения, предполагая, что пакет является сеансовым пакетом PPPoE.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .