Wie verwende ich iptables oder IFB, um eingehenden Datenverkehr nach Gerät zu markieren?

Wie verwende ich iptables oder IFB, um eingehenden Datenverkehr nach Gerät zu markieren?

Ich versuche, mit iptables eingehende Pakete basierend auf dem Gerät zu markieren, auf dem diese Pakete angekommen sind (und nicht basierend auf ihrer ursprünglichen IP-Adresse oder dem Port usw.), habe aber keine Möglichkeit gefunden, dies zum Laufen zu bringen.

Insbesondere kann ich einen Filter einrichten, der jedes eingehende Paket zählt (und das funktioniert einwandfrei):

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

Ein Filter zum Abfangen ausschließlicher Pakete von eth2 scheint jedoch nie ausgelöst zu werden (obwohl der gesamte Datenverkehr genau von dort kommt):

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

Aus Online-Anleitungen usw. geht hervor, dass dieses Verhalten eine logische Konsequenz der Funktionsweise von iptables sein könnte: und dass die Leute versucht haben, IMQ zu verwenden (bevor IMQ abgeschafft wurde), um dies zu umgehen: und dann stattdessen IFB verwendet haben. Aber da scheint die Dokumentationsspur völlig ins Stocken zu geraten.

Meine Frage ist also folgende: Wenn die Verwendung von IFB der richtige Weg ist, dieses Problem zu umgehen, wie sähe dann die entsprechende IFB-Methode zum Markieren des eingehenden Datenverkehrs nach Gerät aus?

Alternative, gibt es eine Möglichkeit, den über eine bestimmte Schnittstelle eingehenden Datenverkehr als einen von mehreren unterschiedlichen Bereichen zu klassifizieren? z. B. eth0 --> realm_10, eth1 --> realm_11 usw. Dieser Ansatz scheint auch zu funktionieren, aber ich habe (wiederum) auch hierfür noch keine praktische Dokumentation gefunden.

verwandte Informationen