Depois de fazer algumas pesquisas, consegui isolar o problema e resolvê-lo. A NIC estava com algumas opções de checksum e offload ativadas, forçando o pacote a ir para o userspace, eu acho que estar encapsulado era o problema aqui.
Usando o utilitário ethtool
, podemos desativar esse offloads. Neste caso, eu usei (como root):
ethtool -K <iface> gso off && ethtool -K <iface> tso off && ethtool -K <iface> gro off
Para desativar o TSO (TCP Segmentation Offload), o GSO (Generic Segmentation Offload) e o GRO (Generic Receive Offload). Também a soma de verificação de rx e tx está desativada.
Espero que isso ajude alguém quando chegar a hora.