Zum Hauptinhalt springen

Die korrekte Zeit auf Ihrem Modul ist entscheidend für alle Arten von Aktivitäten, einschließlich der Protokollsynchronisierung und der Validierung von Sicherheitszertifikaten. Ab Version 15.1 wird VOS mit einem Port des Network Time Protocol-Daemons (ntpd) ausgeliefert und es wird dringend empfohlen, diesen zu verwenden.

Um ntpd laufen zu lassen, müssen Sie ihm normalerweise eine Liste von Zeitservern zur Verfügung stellen, also von Hosts im Netzwerk, auf denen ebenfalls ntpd läuft und die jedem Host, der danach fragt, die Zeit zur Verfügung stellen. Es gibt eine große Anzahl von Zeitservern im Internet, die Sie verwenden können. Werfen Sie einen Blick auf http://www.pool.ntp.org/en/, wo die Server nach Regionen geordnet sind.

Ich schlage vor, einen oder drei (oder mehr) Server aufzulisten, niemals zwei. ntpd versucht herauszufinden, welcher Server am besten zu verwenden ist, indem er die Antworten der Server vergleicht. Wenn nur zwei Server aufgelistet sind, ist es möglich, dass ntpd nicht in der Lage ist, eine Entscheidung zu treffen und am Ende keinen der beiden zu verwenden.

Aber was sollten Sie tun, wenn die Richtlinien Ihres Unternehmens den Zugriff auf Zeitserver im Internet verhindern und Sie keinen firmeneigenen Zeitserver haben? In diesem Fall können Sie möglicherweise einen lokalen Microsoft Windows Domain Controller (DC) oder Backup Domain Controller (BDC) verwenden. Die meisten DCs und BDCs stellen Zeitdienste zur Verfügung.

Wie können Sie also als VOS-Administrator den lokalen DC oder BDC finden? Der einfachste Weg ist zu fragen, aber wenn das keine Option ist, können Sie den Paketmonitor ausführen und selbst nachsehen. Sowohl Workstations als auch Domänencontroller senden periodisch auf UDP-Port 138.

Der Befehl

>system>stcp>command_library>packet_monitor -interface #INTERFACE -numeric
-time_stamp -verbose -pkt_hdr -hex_header -hex_dump -length 1500 -filter -port 138
Abbildung 1 - Befehl packet_monitor

zeigt diese Broadcasts an (stellen Sie sicher, dass Sie INTERFACE durch den Namen Ihrer IP-Schnittstelle ersetzen). Um die Zeitserver zu finden, müssen Sie sich leider die Hex-Daten im Paket ansehen, und da es wahrscheinlich viele Pakete sind, die Sie durchgehen müssen, müssen Sie die Pakete in eine Datei ausgeben. Mein pm.cm, Befehlsmakro (Sie finden das Makro hier) wird automatisch eine Out-Datei erstellen und den Trace als gestarteten Prozess ausführen. Die out-Datei wird den Namen pm.(Datum).(Zeit).out haben. Der Befehl würde lauten

pm #INTERFACE -no_arp -no_icmp -port 138
Bild 2 - pm-Befehlsmakro

Wie auch immer Sie den Trace starten, lassen Sie ihn 15 bis 20 Minuten laufen und Sie sollten einen Broadcast von jedem DC und BDC in Ihrem Netzwerk erhalten. Als nächstes suchen Sie nach Zeilen, in denen die Zeichenfolge 'c0 3' und 'c0 2' vorkommt; das ist ein kleines C, eine Null, vier Leerzeichen und entweder eine Drei oder eine Zwei. Die Zahl entspricht dem oberen Nibble des Bytes an Offset c0. Dieses Byte kann dekodiert werden als

ABCD EFGH
^^^^ ^^^^
|||| ||||---Host ist eine Arbeitsstation
|||| ||--- Host ist ein Server
|||| ||---- Host ist NICHT ein SQL-Server
|||| |----- Host ist KEIN Domänencontroller
||||------- Host ist ein Backup-Domänencontroller
||-------- host ist ein Zeitserver
||--------- Host ist KEIN Apple-Host
|---------- Host ist KEIN Novell-Host
Abbildung 3 - Server-Typ Byte-Dekodierung

Wie Sie sehen können, wird die Suche nach den ersten drei oder zwei möglicherweise nicht alle Zeitserver erhalten, aber wenn Sie keine exklusive Novel- oder Apple-Site betreiben, sollte sie mindestens einen DC oder BDC erhalten.

d pm.11-02-06.17:25:06.out -match 'c0    2'
ready  17:47:13

d pm.11-02-06.17:25:06.out -match 'c0    3'

%phx_vos#m15_mas>SysAdmin>Noah_Davids>pm.11-02-06.17:25:06.out  11-02-06 17:47

     c0    33 10 82  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 82  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 82  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 82  0  f  1 55 aa   0                       3 <<U*
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*

ready  17:47:29
Abbildung 4 - packet_monitor-Zeilen zum Abgleich von Zeitserver und Backup-Domänencontroller

Es reicht nicht aus, nur die "c0"-Zeilen zu finden. Sie müssen auch die Adresse des Hosts finden, der das Paket gesendet hat. Der Befehl grep, der im Verzeichnis >system>gnu_library>bin zu finden ist, kann auf mehrere Zeilen passen

grep -e 'c0    3' -e 'c0    2' -e UDP pm.11-02-06.17:25:06.out
. . . .
UDP from 192.168.33.180.138 to 192.168.33.255.138 Cksum 7ca3, 220 data bytes.
UDP from 192.168.33.249.138 to 192.168.33.255.138 Cksum c89a, 209 data bytes.
     c0    33 10 82  0  f  1 55 aa   0                       3 <<U*
. . . .
UDP from 192.168.33.50.138 to 192.168.33.255.138 Cksum 9526, 193 data bytes.
UDP from 192.168.33.248.138 to 192.168.33.255.138 Cksum d05f, 209 data bytes.
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*
. . . .
UDP from 192.168.33.202.138 to 192.168.33.255.138 Cksum cf35, 219 data bytes.
UDP from 192.168.33.253.138 to 192.168.33.255.138 Cksum 9505, 209 data bytes.
     c0    33 10 82  0  f  1 55 aa   0                       3 <<U*
. . . .
UDP from 192.168.33.131.138 to 192.168.33.255.138 Cksum aa35, 222 data bytes.
UDP from 192.168.33.252.138 to 192.168.33.255.138 Cksum 7343, 209 data bytes.
     c0    33 10 84  0  f  1 55 aa   0                       3 <<U*
. . . . .
Abbildung 5 - packet_monitor-Zeilen mit entdeckten Zeitservern

Die Adresse der Zeitserver erscheint in den Zeilen unmittelbar über der Zeile "c0". In der obigen Abbildung haben wir 192.168.33.249, 192.168.33.248, 192.168.33.253 und 192.168.33.252 identifiziert.

Nachdem wir nun die Hosts identifiziert haben, die sich selbst als Zeitserver ankündigen, wie können wir sicher sein, dass sie auch funktionieren? Der Befehl ntpdate kann verwendet werden, um jeden Zeitserver manuell abzufragen. Verwenden Sie das Argument "-q", um nur den Zeitserver abzufragen. Zu diesem Zeitpunkt wollen wir nicht, dass ntpdate auch die Zeit des Moduls setzt.

ntpdate -q 192.168.33.248
Suche nach Host 192.168.33.248 und Dienst ntp
Host gefunden : dc48.noahslab.stratus.com
server 192.168.33.248, stratum 4, offset -0.117418, delay 0.04202
6 Feb 17:53:10 ntpdate[1427079382]: Zeit anpassen Server 192.168.33.248 Offset -0
+.117418 sec
fertig 17:53:10

ntpdate -q 192.168.33.249
Suche nach Host 192.168.33.249 und Dienst ntp
Host gefunden : dc49.noahslab.stratus.com
server 192.168.33.249, stratum 4, offset -0.038709, delay 0.04355
6 Feb 17:53:25 ntpdate[1427079382]: Zeit anpassen Server 192.168.33.249 Offset -0
+.038709 sec
bereit 17:53:25

ntpdate -q 192.168.33.252
Suche nach Host 192.168.33.252 und Dienst ntp
Host gefunden : dc52.noahslab.stratus.com
server 192.168.33.252, stratum 3, offset 0.015733, delay 0.04216
6 Feb 17:53:38 ntpdate[1427079382]: adjust time server 192.168.33.252 offset 0.
+015733 sec
bereit 17:53:38
Abbildung 6 - Verwendung von ntpdate zum Testen ermittelter Zeitserver - funktionierende Server

Angenommen, einer der Server hat eine Firewall-Richtlinie, die verhindert, dass er die Uhrzeit herausgibt, obwohl er sie anzeigt, dann zeigt ntpdate Folgendes an.

ntpdate -q 192.168.33.254
Suche nach Host 192.168.33.254 und Dienst ntp
Host gefunden : dc54.noahslab.stratus.com
Server 192.168.33.254, Schicht 0, Offset 0.000000, Verzögerung 0.00000
6 Feb 17:54:00 ntpdate[1427079382]: keinen für die Synchronisation geeigneten Server gefunden
+d
bereit 17:54:00
Abbildung 7 - Verwendung von ntpdate zum Testen ermittelter Zeitserver - nicht funktionierender Server

Da Sie nun wissen, welche Zeitserver Sie verwenden können, können Sie die Datei >system>ntp>ntp.conf wie folgt schreiben. Alles in Schwarz stammt aus der Datei sample_ntp.conf.17.0, neue Zeichen sind in grün. Beachten Sie das Kommentarzeichen, das vor der Zeile "server foo.bar.somewhere.com" eingefügt wurde. Die restrict-Anweisungen verbessern die Sicherheitslage des Systems, indem sie verhindern, dass andere Hosts zeitfremde Abfragen gegen den ntp-Daemon stellen können.

# Server-Direktiven geben an, woher die Zeit bezogen werden soll.
# Sie können DNS- oder IP-Werte sein, einer pro Direktive.
# server foo.bar.irgendwo.com

server 192.168.33.248 burst iburst
server 192.168.33.249 burst iburst
server 192.168.33.252 burst iburst

# Home für die Logile.  Wählen Sie einen guten relativen Pfad - VOS absolute
# Pfadnamen können nicht korrekt geparst werden.
logfile >system>ntp>ntp.logfile

# Home für die Driftdatei.
driftfile >system>ntp>ntp.drift

# Diese Anweisungen verhindern zeitunabhängige Abfragen von jedem Host außer dem lokalen Host
restrict default noquery
restrict 127.0.0.1
Abbildung 8 - Aktualisierte Datei >system>ntp>ntp.conf

Starten Sie den Befehl ntpd (es gibt ein sample_start_ntpd.17.0 im Verzeichnis >system>ntp) und nach ein paar Minuten sollten Sie etwas wie das Folgende sehen. Der "*" vor 192.168.33.252 zeigt an, dass dies der Server ist, den ntpd ausgewählt hat, um seine Zeit zu nehmen. Das "+" vor 192.168.33.248 zeigt an, dass es eine weitere gute Wahl ist, falls keine Antwort von 192.168.33.252 kommt. Solange eine der Zeilen als "*" in Spalte eins steht, wissen Sie, dass die Zeit des Moduls mit einem Zeitserver synchronisiert wird. Denken Sie jedoch daran, dass es eine Weile dauern kann, bis die Zeiten konvergieren, wenn die anfängliche Differenz zwischen dem Modul und dem Zeitserver groß ist.

ntpq -n
ntpq> peer
     remote refid st t wenn poll reach delay offset jitter
==============================================================================
+192.168.33.248  192.168.33.252   4 u    - 1024  377    1.312  -1549.3 639.489
 192.168.33.249  192.168.33.252   4 u  626 1024  377  132.423   15.202  27.797
*192.168.33.252  192.168.33.51    3 u  802 1024  377    0.964  -27.486   2.993
Abbildung 9 - Verwendung von ntpq zur Bestätigung der Zeitsynchronisation

Schließlich fungiert ntpd sowohl als Client als auch als Server, so dass er, sobald er auf einem VOS-Modul läuft, als Zeitserver für andere Module oder alles andere in Ihrem Netzwerk fungieren kann.

© 2024 Stratus Technologies.