
Ich habe zwei Computer. Auf einem läuft ein Server, auf dem anderen eine Anwendung, die mit diesem Server kommuniziert. Diese Computer sind an verschiedenen Standorten im Einsatz. Manchmal können diese Computer direkt miteinander verkabelt werden, manchmal sind sie nur über eine drahtlose Verbindung verbunden, die ich nicht kontrolliere. Als zusätzliche Anforderung muss der Server auch über DHCP auf das Internet zugreifen können, wenn eine Verbindung verfügbar ist. Das Ziel besteht darin, diese Computer in einem Büro aufzustellen und sie dann an einem Standort einzusetzen, an dem praktisch keine Konfiguration vor Ort erforderlich ist.
Was kann ich tun, um sicherzustellen, dass der Computer, auf dem die Anwendung läuft, den Server immer (oder in so vielen Fällen wie möglich) finden und mit ihm kommunizieren kann (HTTP über Port 80)?
Ich denke daran, den Server mit mehreren IPs einzurichten. Auf einer kann er über DHCP auf das Internet zugreifen. Die andere wird auf eine statische IP eingestellt. Die Anwendungscomputer werden so konfiguriert, dass sie diese statische IP-Adresse im Voraus kennen und Anfragen an sie stellen können. In den Tutorials, die zeigen, wie das geht, muss ich jedoch mein Gateway und meine Subnetzmaske eingeben. Und ändern sich diese nicht je nach Netzwerk, dem ich beitrete?
Bitte entschuldigen Sie, wenn ich etwas ganz Offensichtliches übersehe oder andere Faktoren außer Acht lasse. Ich weiß so gut wie nichts über Networking.
Wenn es ein Hardwareteil gibt, das helfen kann, ist das in Ordnung.
Dies ist Vista und XP.
Antwort1
Der Versuch, zu erraten, welche statische IP-Adresse nicht kollidiert, ist ein Problem. Wie derobert vorgeschlagen hat, ist Multicast-DNS + DNS-SD eine gute Lösung. Der einzige Stack für Windows istApples BonjourImplementierung, die Ihnen mit einigen weiteren Konfigurationen die Möglichkeit gibt, Ihren Dienst auch im lokalen Netzwerk zu registrieren und aufzulösen, ein Loch in die Firewall zu schlagen (wenn der Router NAT-PMP oder uPnP unterstützt) und eine DNS-Zone mit den entsprechenden DNS-SD-Einträgen zu aktualisieren.
Sie müssen wahrscheinlich einige Skripte erstellen, um Bonjour an die Konfiguration Ihrer Anwendung anzubinden. Ohne Ihre Anwendung zu kennen, ist es jedoch schwer zu sagen, was gut passen würde. Das Befehlszeilenprogramm dns-sd.exe, das mit einem einfachen Batch- oder WSH-Skript automatisiert wird, könnte die Aufgabe jedoch erledigen, ebenso wie die verschiedenen Bindungen für Python, Perl oder Ruby für weniger triviale Konfigurationen.
Antwort2
Dies wird normalerweise dadurch gelöst, dass eines der bereits verfügbaren Service Discovery-Protokolle verwendet wird. Siehe beispielsweiseWikipedia-Artikel zu Zeroconf. Multicast DNS + DNS-SD scheint derzeit die beliebte und weithin unterstützte Methode zu sein, obwohl es noch andere gibt (und die meisten davon werden im Wiki erwähnt).
Beispielsweise gibt es einen Mod-DNSSD für Apache2, mit dem Apache Avahi verwenden kann, um sich über Multicast-DNS anzukündigen.
Antwort3
Da es so aussieht, als ob sie sich fast immer im selben Netzwerk befinden, könnten Sie nicht einfach WINS auf dem „Server“-Computer ausführen und die Verbindung per NetBIOS-Namen herstellen?
Auf diese Weise müssen Sie sich überhaupt keine Gedanken über die IP-Adresse machen.
Jetzt, wo ich darüber nachdenke, brauchen Sie wahrscheinlich nicht einmal WINS, NetBIOS sollte damit klarkommen.