Nougat hat geschrieben:Und wenn man ein Proxyserver benutzen würde ?
Der würde nichts nützen, da ein Proxy sogar noch eine größere Hürde darstellt, als alles andere. Von der Wirkung her (nämlich, daß die Clients nicht von außen erreicht werden können), stellt der Proxy das gleiche Problem dar, wie ein NAT Router.
Grundsätzlich gilt: Ein NAT-Client (also ein Client hinter einem NAT-Router - sprich alle Geräte, die via GPRS und UMTS verbunden sind) kann jeden anderen Rechner im öffentlichen Netz erreichen, aber nicht umgekehrt.
Daraus kann man folgendes ableiten:
P2P Programme (wie ICQ, Netmeeting, AIM usw.) können zwar die Verbindung zu anderen (P2P-)Teilnehmer initiieren, aber Rechner im öffentlichen Netz können den "genatteten" Client nicht initial ansprechen. Hat der genattete Client eine Verbindung initiiert, so kann natürlich über diese P2P-Verbindung eine Zwei-Wege Kommunikation stattfinden. Sprich: Beide Rechner können Daten hin- und herschicken. Wichtig ist hierbei nur, wer die Verbindung aufbaut bzw. daß nur der Client hinter dem NAT-Router die Verbindung aufbauen kann.
Anders sähe dies aus, wenn ein Relais im öffentlichen Netz benutzt wird, aber diese Möglichkeit (eigener Server im Netz) dürften wohl die meisten Privatanwender nicht haben.
Bitte bei dieser ganzen Thematik beachten, daß ich von P2P gesprochen habe, was heißt, daß immer zwei Clients direkt miteinander "reden".
Machbar ist allerdings eine direkte Kommunikation, sofern sie nicht Peer-2-Peer ist, sondern serverbasiert (was dem Stichwort "Relaisstation" gleichkommt). Baut der genattete Client eine Verbindung zum Server auf und der Server vermittelt die Verbindung, so kann auch der genattete Client (via Server) direkt vom öffentlichen Netz aus angesprochen werden.
Exakt die gleiche Problematik, daß bestimmte (eigentlichen alle P2P-Dienste) nicht funktionieren, hat man allerdings auch beim DSL zuhause. Hat man sich einen DSL-Router installiert, so macht auch dieser NAT. Dann muß man dem NAT-Router sagen, welche Pakete zu welchen internen Client geleitet werden sollen (Stichwort: Port-Forwarding).
Zum besseren Verständnis, eine kleine Darstellung der NAT Problematik:
- Code: Alles auswählen
+---+ 192.168.0.x
|Cl1| ====\
+---+ |
|
+---+ \ +-------+
|Cl2| =====}===========| NAT | ===== {Internet}
+---+ / +-------+
| 192.168.0.254 80.90.100.110
+---+ |
|Cl3| ====/
+---+
wobei gilt:
ClN = Client (internes Netz)
NAT = NAT-Router
Die Clients haben interne, im öffentlichen Netz nicht routbare, IP-Adressen (192.168.0.1/2/3). Der NAT-Router hat im internen Netz eine interne (nicht routbare) IP-Adresse (192.168.0.254) und _eine_ öffentliche IP-Adresse.
Schlägt nun am NAT-Router ein Paket vom öffentlichen Netz auf, so hat dieses Paket als Zieladresse die (öffentliche) IP-Adresse des NAT-Routers. Sofern der NAT-Router dieses Paket nicht einer bestehenden TCP/UDP-Verbindung zuordnen kann, weiß der NAT-Router nicht, zu welchem Client dieses Paket geschickt werden soll und verwirft es (sofern nicht ein Port-Forwarding am NAT-Router eingestellt ist).
Baut einer der Clients allerdings eine Verbindung nach außen her, so "merkt" sich der NAT-Router diese Verbindung und kann somit Antwortpakete, die von außen kommen, an den richtigen internen Client weiterleiten. Versucht jedoch ein anderer Rechner im öffentlichen Netz eine Verbindung aufzubauen, so bildet der NAT-Router eine Hürde.