[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: NAT ?



Am Donnerstag, den 14.11.2013, 20:53 +0100 schrieb Magnus Wagner:
> Am 13.11.2013 08:05, schrieb tbgn:
> > Seit wann können Rechner Annahmen treffen?
> 
> UDP geht nicht durch NAT ohne Annahmen zu treffen. Das nennt man dann 
> Heuristik.
> Welche Tatsache soll denn für eine eindeutige Zuordnung von UDP-Paketen 
> an Rechenr hinter einem NAT-Gateway greifen?

Die Tatsache Quell-IP, Quell-Port, Ziel-Port und ein vorher ausgehendes
Paket an genau diese IP und Port vom hiesigen Port.
Zusammen mit der Deadline (IMHO 30sec, kann über Kernelparameter
eingestellt werden) sind das 4 Kriterien die alle passen müssen.
Die Ziel-IP muß sowieso stimmen, sonst wäre das Paket nicht am Router
aufgeschlagen.

> > Ein Server beantwortet ganz einfach Anfragen an die anfordernde IP zu 
> > dem gewünschten Port. Ob das geNATet ist oder ein Rechner fix die 
> > Antwort so erhalten will, kann der Server schlicht nicht unterscheiden 
> > und ist auch irrelevant. Der Ablauf an sich ist doch recht trivial: 
> > Ich sende via Port 80 einen Site-Aufruf z.B. Google an meinen Gateway 
> > (Router) da die Adresse nicht zu meinem Netz gehört. Der Router ruft 
> > via DNS nun IP 8.8.8.8 und verlangt die Rückantwort auf seine externe 
> > IP und einer dynamisch erzeugte Port-Nummer, die den Aufrufende im 
> > inneren Netz für diese eine Anfrage identifiziert(nur einmal gültig).
> 
> Das funktioniert doch schon mal nur wenn dein NAT-gateway auch ein 
> DNS-Relay ist. Mach die DNS-Abfrage doch mal von dem Rechner hinter dem 
> NAT direkt gegen den nächsten DNS-Server. Die von die benannte 
> "dynamische Port-Nummer" ist dein Problem. Von der weiss der DNS-Server 
> nix und das NAT-Device auch nicht.

Doch, das NAT-Device eben schon den genau diese Portnummer legt es in
der Übersetzungstabelle ab.
Wenn du eine DNS-Anfrage machst von 192.168.1.5:1234 auf 8.8.8.8:53,
geht das durch das NAT-Device.
Das NAT-Device schreibt in die Tabelle:
Q-IP: 8.8.8.8 / Q-Port: 53 / Unique-Z-Port /
Z-IP: 192.168.1.5 / Z-Port: 1234 / <Zeit>
Ersetzt dann die interne IP mit seiner externen und sendet das Paket ab.
Kommt nun ein Paket innerhalb der Deadline und stimmt Quell-IP,
Quell-Port und Ziel-Port überein, wird die externe IP durch die Ziel-IP
ersetzt und intern weitergeleitet.
Sollten zufällig 2 oder mehr Rechner im internen Netz Anfragen mit dem
selben Quell-Port senden, wird auch dieses angepasst (Unique-Z-Port)
damit die Antworten eindeutig zuordenbar sind.

> > Erfolgt die Antwort an dieses Port, ersetzt er nun die IP mit der 
> > Zieladresse des Clients im inneren Netz.
> 
> 
> Viel Spass bei z.B. aktivem FTP, ESP etc und allem was über UDP läuft...

Ich vermute Marino ist klar, daß aktives FTP damit nicht funktioniert,
da hierbei die Daten-Verbindung vom Server zum Client eröffnet wird.
Da das NAT-Device keine Ahnung hat (kein Eintrag in der Tabelle), daß
hinter ihm ein Rechner auf eine bestimmte Verbindung wartet, wird diese
abgelehnt. Das betrifft alle Protokolle bei denen eine Verbindung vom
Server zum Client aufgebaut wird.
Warum du allerdings UDP erwähnst ist mir schleierhaft. Das hat nichts
mit der Verbindungsrichtung zutun.

> Was macht dein NAT-Gateway denn wenn er zwei UDP-Pakete an einen Port 
> bekommt? Beide verwerfen? Beide durchlassen oder nur eines. Wenn nur 
> eines, welches?

Wie oben geschrieben ist das Port (welches meinst du überhaupt?) nur ein
Kriterium. Da in deiner Angabe die IP-Adresse und das andere Port fehlt,
kann ich (und auch jedes NAT-Device) dir nicht sagen was passiert.

-- 
mfG Sascha

~~~
Dem Verzweifelnden verzeiht man alles, dem Verarmten gibt man 
jeden Erwerb zu.
		-- Goethe, Maximen und Reflektionen, Nr. 659


Reply to: