versuchshase
Anmeldungsdatum: 31. Oktober 2009
Beiträge: 377
|
Hallo, für ein Programm muß ich einen bestimmten Port freigeben. Da ich das Programm gleichzeitig auf 2 PC's nutzen will müsste der Port für beide freigegeben sein. Leider hat der Router aber nur eine IP, sodass eine Unterscheidung, für wen ein Datenpaket sein soll dann logischerweise nicht mehr funktioniert. Im Programm ist die Umstellung des Ports nicht vorgesehen, das geht also auch nicht. Die Fritz!Box bietet zwar die Verlagerung auf einen anderen Port an, wie ich dem Server die Änderung dann mitteilen soll erschließt sich mir allerdings nicht. Gibt es einen Weg die beiden Rechner wie vorgesehen zu betreiben ohne einen zweiten Internetzugang zu beantragen? Danke, versuchshase
|
Hans9876543210
Anmeldungsdatum: 2. Januar 2011
Beiträge: 3741
|
Hallo. Aus deinen bisherigen Infos geht der Netzaufbau nicht klar heraus. Wie kommst du darauf, das sich die Clients eine IP teilen? Um welche Fritzbox handelt es sich? Kannst du von den Clients jeweils mal die Ausgabe
ip a
zeigen?
|
versuchshase
(Themenstarter)
Anmeldungsdatum: 31. Oktober 2009
Beiträge: 377
|
Hallo Hans9876543210, die PC's befinden sich in ein und demselben LAN, der Internetzugang wird durch die Fritz!Box bereitgestellt. Vom Internet aus, wo sich der Server befindet "verstecken" sich alle PC's des LAN unter einer vom Provider zugewiesenen IP. Ein ganz normales Heimnetz also, wie es immer so ist. Die Aufteilung von Zugriffen aus dem Internet ist ausschließlich über die Portnummer möglich. Der Server erwartet aber Port 16000, das steht fest. Entweder muss ich also einen Weg mit zusätzlicher IP finden, das ist mit VPN nicht wirklich kompliziert, wenn eine Gegenstelle dafür da ist oder es gibt Möglichkeiten mehrere IP's zu beziehen. Wie das bei IP V6 läuft ist mir nicht ganz klar, da könnte der Server 2 IP's sehen und alles funzt. Nur wie zwinge ich ihm IP V6 auf und kann er das überhaupt? Für morgen plane ich schonmal ein paar Versuche ein, heute kann ich nur ein Laptop nutzen, damit lässt sich schwerlich herausfinden ob mehrere V6'er IP's vergeben werden.
vermeldet übrigens:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: wlp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 192.168.178.26/24 brd 192.168.178.255 scope global dynamic eth0
valid_lft 842065sec preferred_lft 842065sec
inet6 2003:5f:2f08:1000:39e0:80e6:9008:975b/64 scope global temporary dynamic
valid_lft 6840sec preferred_lft 928sec
inet6 2003:5f:2f08:1000:9353:5b01:7746:c827/64 scope global mngtmpaddr noprefixroute dynamic
valid_lft 6840sec preferred_lft 928sec
inet6 fe80::ac44:c45d:6f63:99dd/64 scope link
valid_lft forever preferred_lft forever
demnach hat selbst 1 PC mehrere IP V6, ich hoffe Du kannst damit was anfangen. Vielen Dank für Deine Antwort, versuchshase
|
Hans9876543210
Anmeldungsdatum: 2. Januar 2011
Beiträge: 3741
|
Moin. Ich habe dein Anliegen jetzt immer noch nicht verstanden. 😐 Bei einer ganz normalen Fritzbox kannst du unter Internet → Freigaben den benötigten Port (pro Gerät) freigeben. Die Fritzbox kümmert sich schon um die korrekte Adressumsetzung. versuchshase schrieb: Der Server erwartet aber Port 16000, das steht fest.
Willst du denn überhaupt aus deinem LAN einen Dienst zum Zugriff über das WAN freigeben? Normalerweise müsstest du dich zum Port 16000 verbinden können, sofern der Server auf diesen Port einen Dienst anbietet. Dafür brauchst du keine Freigabe.
|
unbuntuS12
Anmeldungsdatum: 2. Juni 2010
Beiträge: 1816
|
@Hans: Das Problem ist: Wenn ein Host sich auf Port X mit der Fritzbox verbindet, dann sie den zwar an Port Y auf einem dahinterliegenden Gerät weiterleiten, aber eben nicht an zwei dahinterliegende Geräte. Wenn man jetzt auf zwei Rechnern im LAN eine Software betreiben will, die eingehende Verbindungen erlaubt, aber diese eingehenden Verbindungen immer statisch auf Port X an der Fritzbox ankommen, egal, ob sie für das erste oder das zweite Gerät sind, dann kann man nicht mehr differenzieren. Die Antwort auf die Frage ist: Mit der Fritzbox alleine geht das nicht. Du kannst erst ab dem Punkt versuchen, den Verkehr umzuleiten, ab dem er ankommt, also ab Fritzbox. Der Port kann nicht als Unterscheidungskriterium dienen, also muss man an irgeneiner Stelle eine Deep Packet Inspection machen, um herauszufinden, an wen der Verkehr gerichtet ist. Das wiederum ist aber protokollabhängig. Für TLS gibt es da eine sehr tolle Implementierung in HAProxy. Die erlaubt es Pakete auf Grundlage der ServerNameIndication (SNI) im TLS-Client-Hello-Paket zu routen. In deinem Fall wäre also die Frage, um welches Protokoll es sich handelt. Und dann kann man nur hoffen, dass es da eine Implementierung gibt (oder man muss selbst eine schreiben). edit: IPv6 wäre natürlich die elegantere Lösung, wenn das infrage kommt. Dazu musst du einen IPv6-Präfix von deinem Anbieter bekommen haben das Programm lokal mindestens ebenfalls auf IPv6 lauschen lassen (::0) dem Server mitteilen, dass er sich mit deiner IPv6-Adresse verbinden soll oder direkt eine (Sub-)Domain auf je einen Rechner zeigen lassen und im DNS nur den AAAA-Record setzen, nicht aber den A-Record
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
versuchshase schrieb: Da ich das Programm gleichzeitig auf 2 PC's nutzen will müsste der Port für beide freigegeben sein. ... Im Programm ist die Umstellung des Ports nicht vorgesehen, das geht also auch nicht. Die Fritz!Box bietet zwar die Verlagerung auf einen anderen Port an, wie ich dem Server die Änderung dann mitteilen soll erschließt sich mir allerdings nicht.
Das geht schon mit der FritzBox. Man kann von Port x zu Port y weiterleiten. Z. B. vom Port 16001 zu LAN-IP2:Port 16000 Dem Server musst Du das nicht mitteilen, denn dieser wird immer auf seinem lauschenden Port (hier 16000) erreicht. Aus dem Internet wird als destination-Port, die 16001 verwendet.
|
unbuntuS12
Anmeldungsdatum: 2. Juni 2010
Beiträge: 1816
|
lubux schrieb: Dem Server musst Du das nicht mitteilen, denn dieser wird immer auf seinem lauschenden Port (hier 16000) erreicht. Aus dem Internet wird als destination-Port, die 16001 verwendet.
Eben. Und wenn ich den TE richtig verstehe, dann ist genau das der Punkt, den er nicht beeinflussen kann: Der entfernte Server will immer auf Port 16000 zugreifen.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
unbuntuS12 schrieb: Der entfernte Server will immer auf Port 16000 zugreifen.
Das verstehe ich nicht. Kannst Du das etwas genauer erklären? Ich dachte, auf den Server wird per Port 16000 zugegriffen, und nicht "der Server greift auf Port 16000 zu". Aber wenn es sich um eine RELATED-Verbindung handelt, dann sollte es doch klar sein zu welcher IP im (W)LAN und dort der Port 16000, die "Rückverbindung" geht?
|
versuchshase
(Themenstarter)
Anmeldungsdatum: 31. Oktober 2009
Beiträge: 377
|
Hallo, es geht darum, ein Onlinespiel zu spielen. Der Programmautor führt die Kommunikation auf UDP-Port 16000, dieser muß also freigeschaltet sein. Natürlich kann ich für A z.B. Port 16000 direkt durchreichen und für B z.B. Port 18000 an der Fritz!Box auf Port 16000 von PC B umleiten. Das Problem ist, das der Server damit klarkommen müsste, der muß ja PC B dann über Port 18000 ansprechen. Auf den Server habe ich aber keinerlei Einfluß. Eine Lösung wäre ein anderer Internetzugang, bei dem Port 16000 dann z.B. auf Port 18000 meiner Fritz!Box umgeleitet würde, dann muß der von PC B initiierte Datenverkehr aber auch entsprechend umgeleitet werden. Das einfachste ist dann ein VPN. Den Aufwand, ein VPN zu einem anderen Internetzugang aufzubauen hätte ich mir aber gerne erspart. Ein Handy als 2. Router scheidet auch aus, da die Handynetz-Provider das öffnen von Ports komplett unterbinden. Es scheint aber echt die einzige Möglichkeit zu sein. @ubuntuS12: Wie kriege ich das mit dem IPv6-Präfix denn raus, mit
erhalte ich eine Ausgabe, bei der mehrere Zeilen mit:
inet6 2003:5f:2f08:1000:
beginnen, wie oben zu sehen ist. Sollte mir das Hoffnung geben oder hat das nichts zu bedeuten? Danke für die Antworten, versuchshase
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
versuchshase schrieb: Sollte mir das Hoffnung geben oder hat das nichts zu bedeuten?
Ist der Server und der Client, IPv6-fähig? Mit z. B. (RS und RA von Router):
sudo tcpdump -v -ni <Interface> 'icmp6 and (ip6[40] == 134)'
sudo ndptool -v -i <Interface> -t rs send
kannst Du die Länge (Größe eines IPv6-Netzes ) des IPv6-Präfixes anschauen.
|
unbuntuS12
Anmeldungsdatum: 2. Juni 2010
Beiträge: 1816
|
@versuchshase: Die komplette Ausgabe, ggf. anonymisiert, würde weiterhelfen. Und ja, wenn deine Clients im lokalen Netz IPv6-Adressen haben und die Software das handeln kann, dann sollte das weiterhelfen.
|
versuchshase
(Themenstarter)
Anmeldungsdatum: 31. Oktober 2009
Beiträge: 377
|
Hallo, gerade habe ich nochmal probiert, das Programm ndptool ist bei mir aber garnicht vorhanden und tcpdump mußte per Strg+C beendet werden. Wie kann ich ndptool ggf. nachinstallieren? Hier erstmal das Ergebnis:
unser@horst:~$ sudo ndptool -v -i eth0 -t rs send
sudo: ndptool: Befehl nicht gefunden
unser@horst:~$ sudo tcpdump -v -ni eth0 'icmp6 and (ip6[40] == 134)'
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
17:07:16.914427 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 112) fe80::3a10:dff5:fe51:812e > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 112
hop limit 255, Flags [other stateful], pref medium, router lifetime 1800s, reachable time 0s, retrans time 0s
prefix info option (3), length 32 (4): 2003:5f:0f2a:8100::/64, Flags [onlink, auto], valid time 7200s, pref. time 1217s
rdnss option (25), length 24 (3): lifetime 1200s, addr: fd00::3a10:dff5:fe51:812e
mtu option (5), length 8 (1): 1492
route info option (24), length 8 (1): ::/0, pref=medium, lifetime=1800s
route info option (24), length 16 (2): 2003:5f:0f2a:8100::/56, pref=medium, lifetime=1800s
source link-address option (1), length 8 (1): 35:10:d8:51:81:2e
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel
während tcpdump lief wurde Die Spielesoftware (GameRanger unter Wine) gestartet, brach aber wie so oft ab. Da bin ich noch am tüfteln. Das sieht jetzt für mich mal nach viel IPv6 aus, eine IPv4-Adresse sehe ich jedenfalls nicht. Ist bei mit IPv6 schon erzwungen? Es macht auf jeden Fall Mut. wie das von einem zweiten Rechner aussieht kann ich erst später testen. Vielen Dank, versuchshase
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
versuchshase schrieb: Wie kann ich ndptool ggf. nachinstallieren?
Mit:
sudo apt-get install libndp-tools versuchshase schrieb: Es macht auf jeden Fall Mut.
Hast Du geprüft ob der Server und das Onlinespiel, ipv6-fähig sind?
|
versuchshase
(Themenstarter)
Anmeldungsdatum: 31. Oktober 2009
Beiträge: 377
|
Hallo, inzwischen habe ich die IIPv6-Einstellungen der Fritz!Box gefunden, daraus werde ich aber nicht ganz schlau. Es ist IPv6-Unterstützung aktiv
eingestellt, dann aber wieder bei IPv6-Anbindung
ist * native IPv4-Anbindung verwenden (empfohlen) Zunächst wird eine native IPv4-Verbindung hergestellt. Falls per DHCP ein 6RD-Server gelernt wurde, wird ein 6RD-Tunnel aufgebaut. Ansonsten wird versucht, eine native IPv6-Verbindung aufzubauen (Dual Stack).
also doch womöglich IPv4 nach außen hin?
Dann steht unter Verbindungseinstellungen * DHCPv6 Rapid Commit verwenden O Bestimmte Länge für das LAN-Präfix anfordern
mit Weitere Einstellungen O MTU manuell einstellen
kann ich garnichts anfangen. Also von daher sind IPv6-Verbindungen meinerseits wohl möglich aber IPv4 scheint Vorrang zu haben. Ob der Server IPv6 kann weiss ich nicht sicher, ich gehe aber mal davon aus, da alle aktuellen Betriebssysteme IPv6 können. Übrigens habe ich bei Bekannten mit einem O2-Internetzugang gesehen, das es auch den Fall gänzlich ohne IPv6 noch gibt. Hat man da eine Chance z.B. über irgendwelche öffentlichen Tunnel IPv6 zu bekommen. Die libndp-tools habe ich installiert, ndptool lieferte aber keinerlei Ausgabe. Danke, versuchshase
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
versuchshase schrieb: * native IPv4-Anbindung verwenden (empfohlen)
Meinst Du native IPv4-Anbindung oder native IPv6-Anbindung? Ob der Server IPv6 kann weiss ich nicht sicher, ich gehe aber mal davon aus, da alle aktuellen Betriebssysteme IPv6 können.
Naja, auch wenn das OS IPv6 kann, heißt das noch nicht, dass auch der Server udp6 (und/oder tcp6) verwendet. ... bei Bekannten mit einem O2-Internetzugang gesehen, das es auch den Fall gänzlich ohne IPv6 noch gibt. Hat man da eine Chance z.B. über irgendwelche öffentlichen Tunnel IPv6 zu bekommen.
Ja, mit z. B. einem Tunnel. ..., ndptool lieferte aber keinerlei Ausgabe.
Das ist richtig so, denn ndptool sendet hier nur eine RS an den Router und tcpdump zeigt die Anwort (RA) des Routers an.
|