Im Windows-System befindet sich diese Datei unter C:\WINDOWS\system32\drivers\etc\hosts
. Mit dieser Datei können wir einem Hostnamen eine bestimmte IP-Adresse zuweisen.
Das Problem ist nun, ob ich mehrere IP-Adressen auf einen Hostnamen setzen kann. Kann ich zum Beispiel so etwas machen:
192.168.244.128 gateway.net
192.168.226.129 gateway.net
Und erwarten Sie, dass der Browser beide auflösen kann, welche funktionieren und somit auf diese zeigen wird?
Wenn nicht, gibt es eine andere Möglichkeit, das von mir gewünschte Verhalten zu erreichen?
Hinweis: Ich setze diese App in meinem eigenen lokalen Netzwerk ein, sodass kein Internet erforderlich ist.
Ja, Sie können dies tun. Ich habe damit Round-Robin-DNS-Szenarien getestet, ohne die Hosts tatsächlich in einem DNS eingeben zu müssen.
Wenn eine Anwendung gethostbyname aufruft, wird die vollständige Liste der IP-Adressen zurückgegeben (möglicherweise in zufälliger Reihenfolge - je nach Bibliothek / Betriebssystem).
quelle
Ich denke, Sie gehen das falsch an. Lassen Sie mich wissen, wenn ich hier die falschen Annahmen mache.
Szenario:
Was Sie versuchen, ist Round-Robin-DNS (auch bekannt als "Poor Mans Load Balancing"), aber Sie versuchen dies vom Client aus. Dies scheint nicht den gewünschten Effekt zu haben (zumindest auf meiner Windows XP-Box), auch wenn ich den DNS-Cache leere. Windows löst nur die erste IP in der Datei auf. Dennoch ist Round-Robin-DNS nicht fehlertolerant, sodass Sie nicht das erreichen, was Sie wollen.
Vorgeschlagene Lösung:
Hardware Load Balancer: Einige Markennamen sind Alteon, Big-IP, Barracuda. Im Grunde bedeutet dies, dass Ihre Benutzer nur eine einzige IP-Adresse zum Herstellen einer Verbindung benötigen und die Anforderungen an die Webserver weiterleiten. Wenn einer der Server nicht mehr verfügbar ist, wird kein Datenverkehr mehr an ihn weitergeleitet. Dies ist die teure Option.
Netzwerklastenausgleichsdienste: Hierbei handelt es sich um eine Microsoft-Technologie, die auf Windows-Servern verfügbar ist und Ihnen eine einzelne Cluster-IP-Adresse gibt. Es erzielt dasselbe Ergebnis wie ein Hardware-Load-Balancer, jedoch auf andere Weise. Alles was Sie tun müssen, ist es zu konfigurieren .
quelle
Von http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main
IPv4-Beispiel
In diesem Beispiel verfügt hostA über 2 IP-Adressen und 3 Aliase. Der Alias hostB gibt die erste Adresse an und die Aliase hostC und host-C geben die zweite Adresse an. LSF verwendet den offiziellen Hostnamen hostA, um zu identifizieren, dass beide IP-Adressen demselben Host gehören.
quelle
Mein Vorschlag ist, einen internen DNS-Server mit DNS-Round-Robin und TTL = 0 zu verwenden. Wenn Sie den DNS-Eintrag aktualisieren (auch mit automatischem IP-Überprüfungssystem), wenn ein IP / Server ausfällt, können Sie über ein Hochverfügbarkeitssystem verfügen.
quelle
Ich habe dies in einem Heimnetzwerk durchgeführt, in dem ich den kabelgebundenen und kabellosen Netzwerkschnittstellen eines Laptops statische IP-Adressen zuordnete und in der Hostdatei eines anderen Computers einen einzelnen Hostnamen auf beide IP-Adressen zeige. Es scheint gut zu funktionieren.
quelle
Basierend auf diesem Beispiel habe ich das folgende HostA 10.18.yx 192.168.zx erstellt
Wobei hostA der Hostname eines Servers ist, den ich sowohl vom internen Netzwerk (192.168.yx) als auch vom VPN (10.8.zx) aus erreichen möchte.
Es funktioniert also gut und ich kann Samba mit Hostnamen über VNP zum Laufen bringen, so dass es in beiden Fällen in Ordnung ist, meine verbundenen Laufwerke in Windows zu haben (LAN- oder VPN-Verbindung).
Freundliche Grüße.
quelle
@ Plamen Dimitrov Du benötigst ein Gerät, um mit dieser Art von Balance umzugehen, möglicherweise einen Schalter, der BGP vor deiner FW handhaben kann - oder benutze deine FW, wenn es in der Lage ist. Wenn Ihr Ciscos BGP beherrscht, versuchen Sie dies zu implementieren. Auf diese Weise können Sie beide IP-Adressen Ihrer ISPs in den Cisco / or-Switch einspeisen lassen, und die Zielserver verfügen über gültige IP-Adressen von öffentlichen 24-Bit-IP-Adressen (UNTERSCHIEDLICH VON DEN 2 IP-Adressen der ISPs). Zu diesem Zeitpunkt (Sie verwenden 3 verschiedene öffentliche IP-Blöcke, der für Ihre Server MUSS 24 BIT sein) muss jeder Ihrer ISPs über diese Lösung Bescheid wissen und er muss bereit sein, die zu unterstützen BGP-Lösung zwischen ihnen, was die meisten tun werden. Wenn Ihr FQDN aufgelöst wird, wird er in Ihren 24-Bit-IP-Block aufgelöst, selbst wenn 1 ISP-Leitung ausfällt. Das Ziel ist, Ihre 24-Bit-Adressen sind immer verfügbar, da Ihre Internetdienstanbieter zugestimmt haben, diese 24-Bit-Adresse über ihre Leitungen weiterzuleiten. Dies funktioniert auch für VPN, da für VPN nur die 24-Bit-Adressen verwendet werden und nicht die IP-Adressen des Internetdienstanbieters, den Sie an Ihren Cisco / oder Switch angeschlossen haben. An diesem Punkt müssen Sie sich vor BGP FLAPPING in Acht nehmen, bei dem sich die DNS-Adressen im Internet so stark ändern, dass die DNS-Server die IP-Adressen automatisch entfernen, wenn Ihre Leitungen sehr hoch und runter gehen DAS FÜHRT ZU IHREM 24 BIT IP-BLOCK. Das ist ein DOS-Angriff auf BGP-Lösungen. An diesem Punkt müssen Sie sich vor BGP FLAPPING in Acht nehmen, bei dem sich die DNS-Adressen im Internet so stark ändern, dass die DNS-Server die IP-Adressen automatisch entfernen, wenn Ihre Leitungen sehr hoch und runter gehen DAS FÜHRT ZU IHREM 24 BIT IP-BLOCK. Das ist ein DOS-Angriff auf BGP-Lösungen. An diesem Punkt müssen Sie sich vor BGP FLAPPING in Acht nehmen, bei dem sich die DNS-Adressen im Internet so stark ändern, dass die DNS-Server die IP-Adressen automatisch entfernen, wenn Ihre Leitungen sehr hoch und runter gehen DAS FÜHRT ZU DEINEM 24-BIT-IP-BLOCK. Das ist ein DOS-Angriff auf BGP-Lösungen.
quelle
Zumindest in der Windows-Welt hier eine leichte Klarstellung: Sie können zwei IP-Adressen für einen einzelnen Namen in einer Hosts-Datei haben. Bei der Abfrage werden alle Adressen zurückgegeben. Die App (dh der Browser) versucht nacheinander, eine Verbindung herzustellen, bis eine Verbindung hergestellt ist. IOW, es werden alle Adressen vor dem Timeout geprüft. (Dies ist ein weit verbreitetes Missverständnis, da viele Leute glauben, dass es nur die "erste" Adresse versuchen wird.)
Sie können dies mit dem folgenden Experiment überprüfen:
Fügen Sie zwei oder mehr Adressen für einen Host in die Hosts-Datei ein, eine echte und eine gefälschte. (Verkleinern Sie die gefälschten Adressen alphabetisch.) Öffnen Sie einen Browser und versuchen Sie, eine Verbindung zum Hostnamen herzustellen. Führen Sie netstat -no gleichzeitig aus. Sie sollten Verbindungsversuche zu der gefälschten Adresse sehen. (in SYN_SENT stecken geblieben) Der Browser wird irgendwann an die richtige Adresse gelangen und eine Verbindung herstellen. Es gibt eine Verzögerung bei der Verbindung, aber es wird funktionieren.
quelle
ipconfig /flushdns
, um sicherzustellen, dass frühere Auflösungen vergessen wurden. Es wurde versucht, die Site (lokal für meinen Computer) in einem Inkognito-Fenster in Chrome zu öffnen, um Cache-Ergebnisse auszuschließen. Es schlug einfach fehl (und ich wartete einige Minuten, um zu sehen, ob es irgendwann klappen würde). Klicken Sie auf Aktualisieren, nur um sicherzugehen. Dann habe ich die gefälschte IP aus meiner Hosts-Datei auskommentiert. Ohne etwas anderes zu tun, habe ich die Seite aktualisiert und es hat funktioniert. Gleiches gilt für Firefox.Dies ist mit der hosts-Datei nicht möglich.
Sie können dies auch nicht mit DNS tun: Sie können mehrere IPs für einen einzelnen Namen bereitstellen, aber der Browser wählt nur eine dieser mehreren IPs aus, probiert es aus, und wenn dieser Host zurzeit nicht verfügbar ist, zeigt der Browser einen Verbindungsfehler an .
Eine mögliche Lösung besteht darin, einen Proxyserver einzurichten und diese beiden IP-Adressen als übergeordnete Adressen für die Domäne zu konfigurieren, die sie bedienen. Zumindest im Fall von Squid versucht der Proxy einen Server und, falls dies fehlschlägt, den zweiten Server. Konfigurieren Sie dann Ihren Browser so, dass dieser Proxy-Server verwendet wird.
quelle