Cuando estamos analizando cierto tráfico de nuestra red a veces es necesario o muy útil tener información a nivel de capa de enlace de las tramas que fluyen por la red, con tcpdump podemos obtener la dirección MAC de los equipos de la red, el etiquetado 802.1q de VLAN de cada trama o el protocolo encapsulado en la trama que pertenece al nivel superior mediante la información del campo Ethertype.
El flag -e y el filtro ether de tcpdump son los que nos dan toda esa información.


tcpdump



Para capturar esa información en nuestra red podemos lanzar el comando:

openredes@vyatta:~$ sudo tcpdump -e -ni eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:00:54.413559 00:23:f8:a1:b1:b8 > 00:1b:21:86:6d:24, ethertype IPv4 (0x0800), length 159: aa.aa.aa.aa.1900 > xx.xx.xx.xx.1901: UDP, len         gth 117
11:00:54.342603 00:23:f8:a1:b1:b8 > 00:1b:21:86:6d:24, ethertype IPv4 (0x0800), length 1514: bb.bb.bb.bb.80 > xx.xx.xx.xx.49513: . 110303:1         11763(1460) ack 1032 win 65535
11:00:57.236712 00:23:f8:a1:b1:c4 > 00:1b:21:86:6d:24, ethertype 802.1Q (0x8100), length 162: vlan 12, p 0, ethertype IPv4, 192.168.4.4.888 > 192.168.3.57.41123: Flags [.], ack 4294967295, win 65535, length 0
11:15:33.273040 00:c0:ee:49:29:36 > 09:00:07:ff:ff:ff, 802.3, length 60: LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Appletalk (0x080007), pid Appletalk (0x809b): 255.0.129.6 > 0.0.6:  at-#6 25
11:15:43.513264 00:c0:ee:49:29:36 > ff:ff:ff:ff:ff:ff, ethertype IPX (0x8137), length 60: (NOV-ETHII) 00000000.00:c0:ee:49:29:36.4c6b > 00000000.ff:ff:ff:ff:ff:ff.0453: ipx-rip-req 4294967295/0.0



Con esto veremos la información, contenida a nivel de capas de enlace y de red, de todo el tráfico de nuestra red que entra por la interfaz eth0. Esto puede ser muy útil para detectar la dirección MAC de cierto equipo de la red o para ver a que VLAN pertenece.
Podemos también aplicar filtros al comando anterior para obtener información mas precisa referente al tipo de tráfico que queremos analizar:

openredes@vyatta:~$ sudo tcpdump -e -ni eth0 not udp
openredes@vyatta:~$ sudo tcpdump -e -ni eth0 not udp and not port 80
openredes@vyatta:~$ sudo tcpdump -e -ni eth0 not tcp and not ipx
openredes@vyatta:~$ sudo tcpdump -e -ni eth0 host 192.168.4.4
openredes@vyatta:~$ sudo tcpdump -e -ni eth0 | grep "xx:xx:xx:xx:xx:xx"
openredes@vyatta:~$ sudo tcpdump -e -ni eth0 ether host xx:xx:xx:xx:xx:xx

Con el comando de la primera linea desechamos el tráfico UDP.

Con el comando de la segunda linea desechamos tanto el tráfico UDP como el tráfico http (puerto 80).
Con el comando de la tercera linea desechamos el tráfico TCP y el IPX.
Con el comando de la cuarta linea veremos toda la información a nivel de capas 2 y 3 del tráfico generado por el host 192.168.4.4 que entra por la interfaz eth0, sabremos su dirección MAC, la VLAN a la que pertenece, etc.
Los comandos de las dos ultimas lineas son equivalentes ya que filtran el tráfico perteneciente a una dirección MAC concreta.

Como vemos, en cualquier caso tenemos mucha información útil y que nos puede resolver algunas dudas. Vemos la dirección MAC de origen y de destino, el
campo ethertype compuesto por dos octetos e informa del protocolo encapsulado en el payload de la trama Ethernet tal y como se especifica en el estándar Ethernet IEEE 802.3, así como otra información referente al nivel de enlace (VLAN, LLC), al nivel de red (IPs de origen y destino, puertos de origen y destino) y al nivel de transporte (protocolo TCP, UDP, ICMP, etc).

Fuente de la imagen.