iproute2 Regeln und iptables NAT… was ist der Unterschied?

8

Wir haben 2 verschiedene ISP-Verbindungen. Unser früherer "IT-Mitarbeiter" hat unsere Firewall folgendermaßen eingerichtet:

Wenn /etc/rc.localbeim Start ausgeführt wurde, tat es einen Haufen ip rule addund ip route addBefehle , um bestimmte Strecke interner Hosts bestimmte ISP - Verbindungen zu verwenden.

Am Ende von /etc/rc.localführte er dann unsere iptablesFirewall-Regeln aus, die von generiert wurden Firewall Builder. In diesen iptablesRegeln sind sowohl Richtlinien- als auch NAT-Regeln eingerichtet.

Was ich nicht verstehe, ist, warum er iproute2Regeln und Routen angegeben hat, aber auch NAT-Regeln für iptables? Warum hat er nicht einfach alles in dem einen oder anderen gemacht, anstatt beide zu benutzen? Könnte er die iproute2Regeln und Routen losgeworden sein und einfach alle diese Regeln in die iptablesNAT-Einstellungen eingefügt haben?

Jake Wilson
quelle

Antworten:

13

Zwar gibt es einige Überschneidungen in der Funktionalität zwischen den beiden Werkzeugen, aber es gibt viele Dinge, die Sie nur mit nur einem der Werkzeuge tun können. iproute2kann mit den Regeln der Netfilter-Firewall nichts anfangen. iptablesIch kann keine IP-Adressen zuweisen.

Selbst an Orten, an denen sich die Funktionalität zu überlappen scheint, überlappt sie sich nicht wirklich. Zum Beispiel können Sie Adressübersetzungen mit beiden iproute2und durchführen iptables. Die Adressübersetzung, die Sie mit iproute durchführen können, berücksichtigt jedoch keinen Status und führt absolut kein Umschreiben des Pakets durch. Es gibt verschiedene Netzwerkprotokolle wie FTP, SIP, H.323 usw., bei denen IP-Adressen im Paket enthalten sind und nicht nur in den Headern. Wenn Sie die iproute-Methode für die Adressübersetzung verwenden, werden diese Protokolltypen beschädigt. Netfilter leistet bei der Adressübersetzung weitaus bessere Arbeit.

In den meisten Fällen, in denen sich die Funktionalität überschneidet, wird sie auf unterschiedliche Weise behandelt. Es ist mit einem Modul möglich, Routing durchzuführen iptables, aber als ich das letzte Mal überprüft habe, dass das Modul auf den meisten Distributionen nicht vorhanden ist, wurde kein Netzfilter / iptablesPatch mit dem ROUTE- Ziel erstellt. Wenn dieses Ziel nicht verfügbar ist, können Sie netfilter nicht für das Routing verwenden, es sei denn, Sie sind in der Stimmung, Ihre eigenen Kernel zu kompilieren. Ihre Entscheidung, welches Tool verwendet werden soll, wird einfach getroffen, weil die Funktion in der Version der von Ihnen ausgeführten Tools nicht verfügbar ist. Selbst wenn Sie das ROUTE-Ziel haben, ist es meines Wissens nicht so effizient, Netfilter für Routing-Entscheidungen zu verwenden, wie das Routing mit den Standard-Routing-Tabellen mit iproute2Manipulationen.

Vieles davon verwendet auch das richtige Werkzeug für den richtigen Job. iproute2ist in erster Linie für die Verwaltung von Routing und Adressen auf Ihrem Computer konzipiert. iptables/ Netfilter wurde für die Firewall entwickelt.

Ich denke, dass eine Person an Orten, an denen sie eines der beiden Werkzeuge verwenden könnte, normalerweise das Werkzeug verwendet, mit dem sie am besten vertraut ist. Ich weiß, dass ich das MARK-Ziel von verwende, iptablesum einige Pakete für die eine oder andere Route zu kennzeichnen, obwohl ich dieselbe Regel mit schreiben könnte iproute2.

Zoredache
quelle