A documentação explica isso:
Note that the first pppoes keyword encountered in expression changes the decoding offsets for the remainder of expression on the assumption that the packet is a PPPoE session packet.
Eu quero capturar pacotes que são um pacote PPPoE Discovery ou Session.
O tcpdump suporta a combinação de protocolos com ou? A manpage parece dizer isso, mas parece que não funciona em Raspbian Wheezy com tcpdump 4.6.2 e libpcap 1.6.2.
Então eu estou abrindo duas sessões do tcpdump (em diferentes janelas do console, mesmo host):
pi@raspberrypi205 $ sudo tcpdump -i eth1 -vvvv pppoed or pppoes
pi@raspberrypi205 $ sudo tcpdump -i eth1 -vvvv pppoes or pppoed
Então estou enviando um pacote com o 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")
Notavelmente, o primeiro comando tcpdump captura o pacote e o segundo não. Estou fazendo algo errado? Não é possível executar dois comandos tcpdump ao mesmo tempo?
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
A documentação explica isso:
Note that the first pppoes keyword encountered in expression changes the decoding offsets for the remainder of expression on the assumption that the packet is a PPPoE session packet.
Tags tcpdump