
CentOS 6.0
Ich studiere iptables und bin verwirrt über den Unterschied zwischen FORWARD- und OUTPUT-Ketten. In meiner Schulungsdokumentation heißt es:
Wenn Sie einer Kette etwas anhängen (-A) oder aus ihr löschen (-D), sollten Sie dies auf Netzwerkdaten anwenden, die in eine der drei folgenden Richtungen fließen:
- INPUT – Alle eingehenden Pakete werden anhand der Regeln in dieser Kette überprüft.
- OUTPUT – Alle ausgehenden Pakete werden anhand der Regeln in dieser Kette überprüft.
- WEITERLEITEN – Alle Pakete, die an einen anderen Computer gesendet werden, werden anhand der Regeln in dieser Kette überprüft.
Das verwirrt mich, weil Pakete, die an einen Host gesendet werden, meiner Meinung nach ausgehend sein WÜRDEN. Gibt es also Szenarien, in denen ein Paket an einen anderen Computer gesendet würde, aber NICHT „ausgehend“ wäre? Wie würde iptables zwischen den beiden unterscheiden?
Antwort1
OUTPUT ist für Pakete, die vom Host gesendet werden. Ihr Ziel ist normalerweise ein anderer Host, kann aber über die Loopback-Schnittstelle derselbe Host sein, sodass nicht alle Pakete, die durch OUTPUT gehen, tatsächlich ausgehend sind.
FORWARD ist für Pakete, die weder vom Host gesendet noch an den Host gerichtet werden. Das sind die Pakete, die der Host lediglich weiterleitet.
Wenn Sie sich mit Packet Mangling und NAT befassen, ist die ganze Geschichteeher komplexer.
Antwort2
Zu meinem Verständnis:
EINGABE: Ziel-IP ist auf dem Host, auch wenn dieser mehrere Ports mit mehreren Subnetzen hat
AUSGABE: Quell-IP ist vom Host, entweder Port
FORWARD: Weder Ziel-IP auf dem Host noch Quell-IP vom Host
Zum Beispiel an Router A
INPUT ist:
192.168.10.1 -> 192.168.10.199
192.168.10.1 -> 192.168.2.1
OUTPUT ist:
192.168.10.199 -> xxxx
192.168.2.1 -> xxxx
FORWARD ist:
192.168.10.1 -> 192.168.2.199
192.168.10.1 -> 192.168.8.1
192.168.10.1 -> 192.168.8.199