Den geografisch nähesten Server per Bash finden
Hallo zusammen,
gibt es eine Möglichkeit per bash Skript von einer Liste von Servern den geografisch nähesten bzw. am schnellsten antwortenden Server aus zu geben?
Ich arbeite momentan an einem Ansible Playbook das dynamisch immer den schnellsten bzw. nähesten AD-Server auswählen soll.
Grüße
D1Ck3n
gibt es eine Möglichkeit per bash Skript von einer Liste von Servern den geografisch nähesten bzw. am schnellsten antwortenden Server aus zu geben?
Ich arbeite momentan an einem Ansible Playbook das dynamisch immer den schnellsten bzw. nähesten AD-Server auswählen soll.
Grüße
D1Ck3n
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 569462
Url: https://administrator.de/forum/den-geografisch-naehesten-server-per-bash-finden-569462.html
Ausgedruckt am: 23.12.2024 um 06:12 Uhr
18 Kommentare
Neuester Kommentar
Und zum dritten ... Stelle sicher das du deine Site- und Subneteinstellungen in der MMC (Active Directory Sites and Services) richtig gesetzt hast, dann geschieht das automatisch per DNS Query
https://blog.ahasayen.com/nearest-domain-controller/
p.s. Antworten wäre auch mal nett anstatt 100 mal das selbe in neue Threads zu verpacken...
https://blog.ahasayen.com/nearest-domain-controller/
p.s. Antworten wäre auch mal nett anstatt 100 mal das selbe in neue Threads zu verpacken...
moin...
jo... das stimmt wohl
Frank
Zitat von @143728:
Und zum dritten ... Stelle sicher das du deine Site- und Subneteinstellungen in der MMC richtig gesetzt hast, dann geschieht das automatisch per DNS Query
https://blog.ahasayen.com/nearest-domain-controller/
Und zum dritten ... Stelle sicher das du deine Site- und Subneteinstellungen in der MMC richtig gesetzt hast, dann geschieht das automatisch per DNS Query
https://blog.ahasayen.com/nearest-domain-controller/
jo... das stimmt wohl
Frank
Für einfach DNS-Abfragen muss man sich nicht authentifizieren. Der DNS-Server entscheidet das anhand der Absender-Adresse des anfragenden Clients. Aber dafür muss er die Subnetze kennen, wo sie zugehören. Und das erfährt der Windows-DNS-Server über die Standort-und-Dienste-Konfiguration.
E.
Edit:
Ich habe das mal durchgestrichen. Die Entscheidung fällt wohl nur aufgrund der Netzwerkmaske. Das läuft im Deutschen bei Windows unter "Netzwerkmaskenanforderung".
https://support.microsoft.com/en-us/help/842197/description-of-the-netma ...
E.
Edit:
Ich habe das mal durchgestrichen. Die Entscheidung fällt wohl nur aufgrund der Netzwerkmaske. Das läuft im Deutschen bei Windows unter "Netzwerkmaskenanforderung".
https://support.microsoft.com/en-us/help/842197/description-of-the-netma ...
Ja.
https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.ht ...
Ich muss doch in der /etc/krb5.conf meine AD Server definieren
Nein nicht zwingend, lasse die manuelle Angabe weg und setze die SRV Records im DNS.https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.ht ...
this tag must be given a value in each realm subsection in the configuration file, or there must be DNS SRV records specifying the KDCs.
Nur über die Subnetz-Definitionen im AD und sortierter DNS-Ausgabe an den Client, s. Link oben und @emeriks.
Zitat von @143728:
Nur über die Subnetz-Definitionen im AD und sortierter DNS-Ausgabe an den Client, s. Link oben und @emeriks.
Wenn es nur im einen nahen DC geht, dann ja. Ansonsten hat das nichts mit Site-and-Services zu tun.Nur über die Subnetz-Definitionen im AD und sortierter DNS-Ausgabe an den Client, s. Link oben und @emeriks.
@aqui
So wie ich das verstanden habe, berechnet der DNS-Server von Windows über die Netzwerkmaske die theoretische Nähe.
Wenn er für einen Namen mehrerer Records hat, dann fordert er also vom anfragenden DNS-Client dessen Maske an. Dann wertet er aus, ob einer der Records eine Adresse enthält, welche mathematisch zum Subnetz des anfragenden Clients passt. Wenn ja, dann liefert er diese (und nicht nach Round-Robin den nächst besten). Wenn er da nichts passendes findet dann erweitert er die vom Client gemeldete Maske solange um jeweils 1 Bit, bis min. einer der Records in das Subnetz mit der erweiterten Maske fällt. Wenn das mehrere der Records sind, dann wird er unter diesen wohl im Round-Robin liefern.
So wie ich das verstanden habe, berechnet der DNS-Server von Windows über die Netzwerkmaske die theoretische Nähe.
Wenn er für einen Namen mehrerer Records hat, dann fordert er also vom anfragenden DNS-Client dessen Maske an. Dann wertet er aus, ob einer der Records eine Adresse enthält, welche mathematisch zum Subnetz des anfragenden Clients passt. Wenn ja, dann liefert er diese (und nicht nach Round-Robin den nächst besten). Wenn er da nichts passendes findet dann erweitert er die vom Client gemeldete Maske solange um jeweils 1 Bit, bis min. einer der Records in das Subnetz mit der erweiterten Maske fällt. Wenn das mehrere der Records sind, dann wird er unter diesen wohl im Round-Robin liefern.
Also wenn es um die Paketlaufzeit geht, könnte man das schon mit bash skripten - ich nehme dazu fping am liebsten, da er recht gut listen von ips verarbeiten kann:
Als Ergebnis erhälst du eine ip liste, sortiert nach der antwortzeit - ansonsten hinten via head -n 1 nur den ersten(=schnellsten) nehmen
ips="<erste ip> <zweite ip> <dritte ip>"
fping $ips -e | sort -k4 | awk '{print $1}'
Ja, so Pi mal Handwerkerdaumen.
Geht auch mit dem normalen ping:
#!/bin/bash
IPs="<erste ip> <zweite ip> <dritte ip>"
for x in $IPs;do ping -c 1 $x | sed -rne 's/.*from ([^:]+).*time=([0-9\.]+).*/\2;\1/p';done | sort -g -t';' -k1 | head -n 1 | cut -d';' -f2
Ein Ping ist doch immer davon abhängig was auf den einzelnen Providerleitungen so los ist. Das Internet ist vollvermascht und du gehst vermutlich blauäugig davon aus das jeder eine einzelne dedizierte Leitung hat was natürlich Quatsch ist.
Alles ist ein Shared Medium und Verbindungslinks sind immer abhängig vom Rest Traffic der da sonst noch "Grundrauschen" auf einem Link erzeugt. Insbesondere Burst Traffic. Vom Traffic Volumen ist damit auch massiv die Ping Times abhängig.
Vielleicht solltest du in einer ruhigen Minute nochmal genau über die Internet Infrastruktur nachdenken und dir das vor Augen führen.
Zudem kommt noch dazu das ICMP Traffic (dazu gehört Ping) in den Task Schedulern der Router und OS eher nebenbei behandelt wird.
In sofern sind das immer nur Pi mal Handwerkerdaumen.
Alles ist ein Shared Medium und Verbindungslinks sind immer abhängig vom Rest Traffic der da sonst noch "Grundrauschen" auf einem Link erzeugt. Insbesondere Burst Traffic. Vom Traffic Volumen ist damit auch massiv die Ping Times abhängig.
Vielleicht solltest du in einer ruhigen Minute nochmal genau über die Internet Infrastruktur nachdenken und dir das vor Augen führen.
Zudem kommt noch dazu das ICMP Traffic (dazu gehört Ping) in den Task Schedulern der Router und OS eher nebenbei behandelt wird.
In sofern sind das immer nur Pi mal Handwerkerdaumen.