Ingo Tschutter wrote:
Vor kurzem habe ich für eine Gruppe von Freunden einen Linux-DSL-Router aufgesetz. NAT und IP-Masquerading funzen wunderbar, die Clients kommen ohne Probleme ins Netz. Jedoch klappt das auch nur, wenn die Verbindungen von den Clients initiiert werden. Ein Problem ist aufgetreten, als einer der User auf einmal WoW startete. Bis zu einem gewissen Punkt klappte das ja alles, jedoch als der WoW-Server begann, selber TCP/UDP-Verbindungen zum Client aufzubauen, scheiterte natürlich alles, weil der Router nicht weiss, wo die Pakete im LAN hin sollen. Eine Kurze Übersicht, was ich gemacht habe:
IP-Forwardink aktivieren und IP-Tables für Masquerading setzen:
echo "1" > /proc/sys/net/ipv4/ip_forward iptables -F iptables -t nat -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -t nat -A POSTROUTING -o dsl0 -j MASQUERADE
Fazit: Alle Verbindungen zum Internet von den Client aus funzen !!!
und nun kommt warscheinlich mein Denkfehler: Der WoW-Gamer hat die IP 192.168.2.99
iptables -t nat -A PREROUTING -i dsl1 -p tcp --dport 3724 -j DNAT --to 192.168.2.99
Das gleiche geschieht natürlich auch mit all den anderen notwendigen Ports (TCP und UDP). Aber es klappt nicht. Die Pakete kommen nicht zum Client.
Wo liegt mein Denkfehler ?
AFAIK kann das nicht gehen. Der externe Server schickt einen Verbindungsrequest an die ihm bekannte IP-Adresse (dein Router) mit einem bestimmten Port. Da der Request von aussen kommt und keine Antwort auf eine gestellte Anfrage ist, hat er KEINE Chance, aufgrund seiner Natting-Tabellen zu ermitteln, wo der Request wirklich hin soll. Einzige mir bekannt Chance für Verbindungen von aussen: Du musst dem Router mitteilen, das er Requests an ServerIP:PortX immer an ClientIP:PortY weiterleiten soll. Das wird das aber von aussen initiierte Anfragen an PortX IMMER an den gleichen Client leiten; andere werden NIE diese Anfragen erhalten. Falls die Applikation es zulässt, das sie die clients auf verschiedenen Ports anspricht, könntest Du so vorgehen. Ansonsten sehe ich schwarz. Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org