PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Iptables und NAT



Breezer
03.02.02, 19:17
Hallo Forum , habe mal eíne Frage zu Nat :
Ist ein 1:1 Mapping , oder n:m NAT ? also kein Masquerading ( das geht ja laut Howto ) mit SNAT oder DNAT über iptables realisierbar?
läßt sich ein Pool von verfügbaren externen aus dem Internet erreichbaren IP adressen angeben??? , wenn ja wäre ich dankbar für eure Hinweise

Gruß

p.s. suche noch gute Literaturquelle zum ifconfig tool speziell zum Thema virtuelle ip's wie das geht nehme an über Sockets oder? , nutze SuSE 7.3 kernel 2.4.10

Temp
03.02.02, 21:56
Das hab ich jetzt nicht kapiert?????????
Was willst du machen?
Erklärs doch mal nem dummen ;)

naleau
04.02.02, 13:33
Breezer,
willst Du per Load Balancing mehrere IP-Adressen von Deinem LAN aus im Internet ansprechen? Oder willst Du in Deinem LAN Load Balancing für Anfragen aus dem Internet bereitstellen? Ersteres geht mit iptables meines Wissens gar nicht. Ich würde auch nicht so recht verstehen, welchen Sinn das haben soll. Letzteres geht, aber nur für den selben Dienst. Sieh mal nach unter
http://www.fruehbrodt.org/artikel/netfilter.html
Kannst Du mal bißchen genauer schreiben, was Du eigentlich möchtest?
Vielleicht hilft Dir ja auch der Artikel weiter.
Viele Grüße
Naleau

Breezer
04.02.02, 14:55
Also erst mal danke für die Antworten ,
folgendes würde ich gerne über iptables realisieren

Beispiel :

5 öffentlich fest eingetragene IP Adressen werden einer Menge x privaten adressen zugeortnet

dabei wäre Möglich:
eine feste IP zu einer festen Privaten Ip
beispielsweise 170.xxx.yyy.zzz = 10.10.10.10
dies nennt man glaube ich 1:1 Nat

oder ein Bereich wird ge NAT tet

Beisp. 170.100.100.0 (wären bei einer Netzmaske 255.255.255.0 ja 255 externe IP adr. der angegebene Adressraum ist rein fiktiv)
auf eine Menge von privaten Adressen z.B. 10.10.0.0 netzmaske 255.255.0.0
wären ja 255x255 private Hosts
Diese ca. 65.000 Hosts müssten über 255 fest vergebene IP'*s erreichbar sein
dies nennt sich glaube ich n:m Nat

läßt sich sowas mit iptables realisieren,? und lassen sich die aktuellen gemappten IP's die im Beispiel 2 beschrieben sind dann anschauen also die "belegten" externen ip's?

suche noch Literaturquellen zu virtuellen ip's via ifconfig sockets ect.

thx,Breezer

naleau
04.02.02, 15:53
Breezer,
wie ich schon sagte, prinzipiell geht das mit iptables, allerdings nur, wenn Du auf den 5 virtuellen Adressen den gleichen Dienst (Mail, HTTP, FTP oder was immer) anbieten willst. Dann kannst Du mit dem Eintrag
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-source 192.168.x.x-192.168.x.x
(oder welche IP-Adressen Du auch immer privat vergeben hast), die Anfragen nach dem Round-Robin-System gleichmäßig verteilen. Die hereinkommenden Anfragen werden also der Reihe nach verteilt UNABHÄNGIG von der tatsächlichen Serverleistung. Wenn also gerade ein Rechner "dran" ist, der schon fast an der Grenze seiner Leistungsfähigkeit arbeitet, bekommt er die Anfrage trotzdem noch "draufgepackt". Nur wenn er gar nicht mehr erreichbar ist, wird der nächste genommen. Du kannst in diesem Falle auch die Reihenfolge nicht bestimmen. Wie Du dann erkennen kannst, welche Adresse gerade "belastet" ist und welche "schläft", weiß ich auch nicht, das kannst Du ohnehin nicht mehr mit iptables machen. Wenn Du ein Load-Balancing anstrebst, mußt Du ohnehin eine spezielle Software verwenden, weil das mit iptables nicht mehr geht (ist ja auch nicht dessen Hauptaufgabe). Was Du dafür allerdings brauchst und wo Du es herbekommst, weiß ich auch nicht. Vielleicht mal unter www.google.de nach VIP oder Load-Balancing oder Load-Sharing oder so suchen. Manchmal kommt man auf diese Weise recht schnell und einfach zum gewünschten Ergebnis. Ich hoffe, daß ich Deine Frage so einigermaßen beantworten konnte.
Viele Grüße und viel Erfolg
Naleau

Breezer
04.02.02, 16:01
danke für die INFO

TheDodger
05.02.02, 11:10
Mal eine Frage fast zum selben Thema ...

Wie kann ich es anstellen, das ich solche PREROUTINGs logge?

Wenn ich eine Logging-Chain erstelle


$IPTABLES --new-chain LOGNAT
$IPTABLES --append LOGDBH --jump LOG --log-prefix "FW L [NAT] : "
$IPTABLES --jump DNAT --to 192.168.34.30
$IPTABLES RETURN


und dahinein springen will



$IPTABLES --append PREROUTING --table nat --in-interface $INT_INTERFACE --source 192.168.32.30 --out-interface $DBH_INTERFACE --destination 194.99.89.76 --jump LOGNAT


bekomme ich (logischerweise) Fehler beim erstellen der logging-chain angezeigt ...

Folgendes Problem habe ich hier:

Wenn ich ein (z.B.) Ping an eth2 absetzte, was an IP 194.99.x.x gehen soll, dann soll die IP des Senders (192.168.32.x) auf 192.168.34.x geändert werden und das ganze soll dann an das Interface eth1 geleitet gehen.
Andersherum soll das dann natürlich auch funktionieren ... :mad:

naleau
05.02.02, 14:34
Hi Dodger,
ich verstehe Dein Problem nicht so ganz. Was hat das loggen damit zu tun, daß das Routing nicht klappt? *kopfkratz*
Übrigens, wenn ich richtig durch iptables durchgestiegen bin, kannst Du die Chain PREROUTING nur mit SNAT benutzen (kommt mir irgendwie auch logisch vor). Dann müßtest Du für die output Option aber eine neue Chain schreiben diesmal mit DNAT. Naja, so habe ich das jedenfalls verstanden. Bin aber auch noch fleißig beim Probieren.
Weiß nicht, ob ich Dir helfen konnte. Schreib doch mal, ob es geklappt hat!
Grüßchen
Naleau

TheDodger
05.02.02, 16:29
Hmm, das loggen wäre fein gewesen, da würde ich wenigstens sehen, ob die POST|PREROUTINGs ausgeführt werden ...

Also, ich habe das jetzt so gelöst:

eth2 ist ein internes LAN ... IP - Segment 192.168.32.x
eth1 ist ein eingeschr. ext. LAN ... IP - Sepment 192.168.34.x

wenn ein Benutzer aus dem int. LAN eine IP 194.99.88.x anpingt, soll die Source IP (192.168.32.15 ) durch eine 192.168.34.3 ersetzt werden.

aka POSTROUTING --source 192.168.32.15 ---jump DNAT 192.168.34.3

Das funktioniert auch ... soweit.
Allerdings noch nicht der Rückweg ...
Also die Antwort muß dann von IP x.x.34.3 - eth1 auf x.x.32.15 - eth2 geroutet werden.

Dafür wäre doch dann PREROUTING zuständig, oder?

aka PREROUTING --source 192.168.34.3 --jump SNAT 192.168.32.15


Oder liege ich da falsch

naleau
05.02.02, 16:57
Dodger,
so leid es mir tut. Private IP-Adressen heißen deshalb privat, weil sie unter GAR KEINEN Umständen Pakete ins Internet verschicken können sollen. Das heißt, daß jeder im Internet erreichbare Rechner Pakete mit einer Absenderadresse 192.168.x.x UNWEIGERLICH in den Müll befördert. Du kannst Dir ausdenken, was Du möchtest - Du wirst unter Garantie NIEMALS von einer 194.x.x.x Adresse aus dem Internet was an Deine private Adresse 192.168.x.x geschickt bekommen. Das heißt, daß die Konstellation, die Dir vorschwebt, nicht realisierbar ist. Es kann wohl sein, daß Dein Netz ganz brav die Pakete rausschickt, aber das war's dann auch. Du mußt Deine IP-Adressen 192.168.x.x auf jeden Fall maskieren. Das ist echt ein Kapitel für sich und gar nicht so einfach, wie es auf den ersten Blick scheint. Kläre aber vor diesem Hintergrund erstmal genau ab, wie Du Dein Netz zum Laufen bringen willst.
Ich helfe auch gern weiter (so weit ich halt kann ;)), aber pauschal kann ich Dir zunächst nichts weiter sagen als s.o.
Laß die Ohren nicht hängen! Irgendeine Lösung wird es für Dein Problem schon noch geben!
Grüßchen Naleau (selbst mit rauchendem Schädel ob eines ähnlichen Problems)

TheDodger
06.02.02, 04:05
Original geschrieben von naleau
Dodger,
so leid es mir tut. Private IP-Adressen heißen deshalb privat, weil sie unter GAR KEINEN Umständen Pakete ins Internet verschicken können sollen.


...
Ich weiß ... nur diese Packete gehen definitiv nicht in's Internet, sondern über einen BinTec-Router via Wählleitung an einen anderen Server.
Keine Ahnung, wieso die das so machen, ist ein Kunde von uns ...


Das heißt, daß die Konstellation, die Dir vorschwebt, nicht realisierbar ist. Es kann wohl sein, daß Dein Netz ganz brav die Pakete rausschickt, aber das war's dann auch.

Die Packete werden vom 'gegenerichen' Server auch brav beantwortet.
Allerdings nicht mehr zu der Ursprungsadresse umgesetzt.


Du mußt Deine IP-Adressen 192.168.x.x auf jeden Fall maskieren. Das ist echt ein Kapitel für sich und gar nicht so einfach, wie es auf den ersten Blick scheint. Kläre aber vor diesem Hintergrund erstmal genau ab, wie Du Dein Netz zum Laufen bringen willst.

MASQ wollte ich da nun nicht einsetzen ... naja ... man kann nicht alles haben :)
Was da läuft ist ein simples Datenbankprotokoll mit einem entfernten Firmenserver, wo nur 3 IP's freigegeben sind. Deswegen dieses NAT.
Erreichbar ist dieses Interface nur über die Wählleitung und geht definitiv nicht in's Internet, deswegen setzen wir schon eine 3. Netzwerkkarte ein.


Ich helfe auch gern weiter (so weit ich halt kann ;)), aber pauschal kann ich Dir zunächst nichts weiter sagen als s.o.
Laß die Ohren nicht hängen! Irgendeine Lösung wird es für Dein Problem schon noch geben!
Grüßchen Naleau (selbst mit rauchendem Schädel ob eines ähnlichen Problems)
Mal sehen, was der heutige Tag so bringt ...