¿Cómo utilizar iptables o IFB para marcar el tráfico entrante por dispositivo?

¿Cómo utilizar iptables o IFB para marcar el tráfico entrante por dispositivo?

Estoy intentando usar iptables para marcar los paquetes entrantes según el dispositivo al que llegaron esos paquetes (en lugar de su dirección IP o puerto de origen, etc.), pero no he encontrado una manera de hacer que esto funcione.

Específicamente, puedo configurar un filtro que cuente cada paquete entrante (y funciona bien):

iptables -F -t mangle
iptables -A PREROUTING -t mangle -j MARK --set-mark 1
iptables -nvL

Chain PREROUTING (policy ACCEPT 185 packets, 41507 bytes)
 pkts bytes target     prot opt in     out     source               destination
  185 41507 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MARK set 0x1

Sin embargo, un filtro para capturar solo paquetes de eth2 nunca parece activarse (aunque es precisamente de donde proviene todo el tráfico):

iptables -F -t mangle
iptables -A PREROUTING -t mangle -i eth2 -j MARK --set-mark 1
iptables -nvL

Chain PREROUTING (policy ACCEPT 101 packets, 19288 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MARK       all  --  eth2   *       0.0.0.0/0            0.0.0.0/0            MARK set 0x1

De los tutoriales en línea, etc., parece que este comportamiento puede ser una consecuencia lógica de la forma en que funciona iptables: y que para solucionar esto, la gente intentó usar IMQ (antes de que se eliminara IMQ): y luego pasó a usar IFB. Pero allí el rastro de la documentación pareció congelarse.

Entonces mi pregunta es la siguiente: si usar IFB es la forma correcta de solucionar este problema, ¿cómo sería la forma IFB equivalente de marcar el tráfico entrante por dispositivo?

Alternativamente, ¿existe alguna manera de clasificar el tráfico que ingresa a través de una interfaz determinada como uno de un conjunto de dominios diferentes? por ejemplo, eth0 --> kingdom_10, eth1 --> kingdom_11, etc. Parece que este enfoque también debería funcionar, pero (nuevamente) todavía no he encontrado ninguna documentación práctica para esto.

información relacionada