Procesamiento de paquetes de unidifusión DHCP en Linux

Procesamiento de paquetes de unidifusión DHCP en Linux

Estoy intentando capturar y procesar (en una aplicación de análisis de terceros) paquetes DHCP de la sesión de ERSPAN, pero no puedo hacerlo. Hay una interfaz PHY que recibe tráfico ERSPAN y una interfaz tipo erspan para obtener paquetes desencapsulados (enlace IP agrega inspan tipo erspan seq key 10 local 10.171.165.65 erspan_ver 1)

Estoy usando nftables para unir y manejar la regla más sencilla:

table netdev inspan {
  chain catch {
    type filter hook ingress device "inspan" priority filter ; policy accept;
    iifname "inspan" udp dport 67 counter meta nftrace set 1 accept
  }
}

muestra SÓLO paquetes de transmisión (ip daddr 255.255.255.255):

# nft monitor trace

trace id 6fd1132b inet filter input packet: iif "inspan" ether saddr 00:1a:64:33:8d:fa ether daddr ff:ff:ff:ff:ff:ff ip saddr 0.0.0.0 ip daddr 255.255.255.255 ip dscp cs0 ip ecn not-ect ip ttl 128 ip id 20986 ip protocol udp ip length 328 udp sport 68 udp dport 67 udp length 308 @th,64,96 0x1010600d5d272d200000000
trace id 6fd1132b inet filter input rule iifname "inspan" udp dport 67 counter packets 0 bytes 0 meta nftrace set 1 accept (verdict accept)

mientras que TODOS los paquetes de unidifusión (que están presentes en el tráfico ERSPAN encapsulado en PHY) faltan en este seguimiento como si se consumieran (y descartaran) en algún lugar entre PHY e inspan.

Tenga en cuenta que TODO LO DEMÁS aparece en el inspan (cuando se busca usando tcpdump): cualquier otro TCP, UDP, etc., EXCEPTO DHCP uincast y no depende de la configuración promisca de todas las interfaces de la cadena.

El sistema parece estar limpio. Este es Ubuntu 22.04, pero sin ningún servidor DHCP, ni clientes DHCP, netplan, ifupdown y otras cosas relacionadas con DHCP; systemd-networkd está completamente deshabilitado (para fines de prueba, estoy configurando la red manualmente).

¿Alguna idea de dónde se perdieron los paquetes DHCP de unidifusión? Para mí, parece que algo en el kernel captura estos paquetes y los descarta, ya que no están destinados a este host.

Gracias.

información relacionada