Problema
Encontré el mismo problema hoy, donde los paquetes marcianos inundaron los registros de mi núcleo. Todos los paquetes marcianos son de la misma dirección IP pública de eth0
a la misma dirección IP pública de eth0
(se eliminan las IP reales y el encabezado).
IPv4: martian source x.x.x.x from x.x.x.x, on dev eth0
ll header: 00000000: aa bb cc dd ee ff gg hh ii jj kk ll 08 00
Después de un poco de investigación, me di cuenta de que la razón está oculta en los ll header
paquetes marcianos.
Teoría
Suponiendo esto en una conexión Ethernet, en ll header
realidad muestra la parte inicial de una trama Ethernet Tipo II, que contiene la dirección MAC de destino, la dirección MAC de origen y una ID indica el tipo de la parte restante del paquete.
Como puede ver, los primeros 6 bytes son la dirección MAC de destino, los siguientes 6 bytes son la dirección MAC de origen y un código en los últimos 2 bytes. Los códigos comunes son:
08 00
: Paquetes IP
86 dd
: Paquete IPv6
08 06
: Paquete ARP
Explicación
De vuelta a mi ejemplo.
IPv4: martian source x.x.x.x from x.x.x.x, on dev eth0
ll header: 00000000: aa bb cc dd ee ff gg hh ii jj kk ll 08 00
Esto nos dice
- se recibió un paquete con la MISMA dirección IP de origen y destino.
- Fue enviado por
GG:HH:II:JJ:KK:LL
, que es una dirección MAC que no sé.
- Su destino es
AA:BB:CC:DD:EE:FF
, que es mi propia dirección MAC.
- Era un paquete IP (
08 00
).
Si un paquete tiene las mismas direcciones IP de origen y destino, debe ser enviado por la misma interfaz de red, ¡pero los MAC de origen y destino son diferentes! ¿Cómo puede ser posible?
Por lo tanto, está claro que el paquete proviene de Marte, ya sea que hay algunos problemas de enrutamiento, una máquina dentro de la red está configurada o alguien está tratando de falsificar las direcciones IP / MAC. El siguiente paso es verificar la dirección MAC de origen en cuestión.