
Ich habe eine Firewall mit 3 IP-Aliasen auf 1 physischen Schnittstelle. Pakete werden zwischen diesen 3 Schnittstellen verworfen (entweder ICMP, HTTP oder irgendetwas anderes). Wir haben herausgefunden, dass diese Pakete in der FORWARD-Regel als UNGÜLTIG markiert und aufgrund dieser Regel verworfen wurden:
chain FORWARD {
policy DROP;
# connection tracking
mod state state INVALID LOG log-prefix 'INVALID FORWARD DROP: ';
mod state state INVALID DROP;
mod state state (ESTABLISHED RELATED) ACCEPT;
}
(Das heißt, wir sehen die INVALID FORWARD DROP
Protokolle in dmesg
)
Was könnte die Ursache dafür sein?
Antwort1
Verwenden Sie Macvlan im Bridge-Modus anstelle von IP-Aliasen und belassen Sie die physische Schnittstelle im Promisc-Modus.
z.B
- eno1 ist die Schnittstelle, die Sie verwenden möchten.
- Erstellen Sie dann macvlan1@eno1, macvlan2@eno1 und macvlan3@eno1.
- Behalten Sie eno1 im Promisc-Modus.
Informationen zum Erstellen einer MacVLAN-Schnittstelle finden Sie in der nachstehenden Reihenfolge.
# /sbin/ip link add link eno1 macvlan1 type macvlan mode bridge
# /sbin/ip addr add 192.168.1.1/24 dev macvlan1
# /sbin/ip link set macvlan1 address aa:bb:bb:dd:ee:ff up
Befolgen Sie den nachstehenden Befehl, um den Promisc-Modus für eno2 zu aktivieren.
# /sbin/ip link set eno1 promisc on
Antwort2
Der INVALID
Status bedeutet, dass das Paket keiner bekannten Verbindung zugeordnet ist (und auch keine neue Verbindung startet). Die einzigen Gründe, die mir einfallen, sind, dass die Verbindungsverfolgungstabelle geleert wird, die Tabelle überläuft oder die Einträge zu schnell ablaufen. Sie können die Größe der Verbindungsverfolgungstabelle mit sudo conntrack -L | wc -l
und die maximale Anzahl der Einträge mit überprüfen cat /proc/sys/net/netfilter/nf_conntrack_max
.