# NTP - ESXi

# ESXi-Hosts mit NTP synchronisieren

Diese kurze Anleitung zeigt dir, wie du deine VMware ESXi-Hosts (ab Version 7.0) auf deinen internen Zeitserver `10.100.10.27` einstellst – komplett via SSH/Konsole oder grafisch über den Host-Client. Sie basiert auf den Schritten, die du gerade auf `ESXi_3` ausgeführt hast.

---

## 1. Voraussetzungen

- Root- oder Administrator-Zugriff auf jeden ESXi-Host (SSH oder DCUI).
- Der NTP-Server **10.100.10.27** antwortet auf `UDP 123`.
- Firewall der Hosts lässt ausgehende Pakete auf Port 123/UDP zu.
- (Optional) vSphere Host-Client für Komfort-Konfiguration.

---

## 2. NTP-Dienst aktivieren &amp; starten

```bash
# Dienst aktivieren, falls noch nicht geschehen
esxcli system ntp set --enabled true

# Host auf den NTP-Server ausrichten
esxcli system ntp set --servers 10.100.10.27

# Dienst neu starten
/etc/init.d/ntpd restart

```

Im Host-Client findest du die gleiche Einstellung unter:  
*Manage → Time &amp; Date → Edit → Network Time Protocol*  
✔ **Start and stop with host** wählen  
✔ `10.100.10.27` eintragen → *Save*

---

## 3. Firewall-Regel „ntpClient“ prüfen

```bash
esxcli network firewall ruleset list | grep -i ntpClient
# Falls hier "false" erscheint:
esxcli network firewall ruleset set -e true -r ntpClient

```

---

## 4. Erreichbarkeit testen

```bash
# Schneller UDP-Check (Timeout 2 s)
nc -u -z -w2 10.100.10.27 123 && echo "ok" || echo "blocked"

```

Alternativ `ping`, `traceroute` oder `tcpdump-uw`, um Paketverluste zu identifizieren.

---

## 5. Live-Synchronisation beobachten

```bash
watch -n 5 'ntpq -pn | tail -n +3'

```

- **\*** vor der IP = Host ist synchronisiert.
- *reach* sollte nach wenigen Minuten bei `377` stehen.
- *.INIT.* oder *Connection refused* → Schritte 2–4 kontrollieren.

---

## 6. Häufige Sonderfälle

<details id="bkmrk-6.1-kernel-drift-%2F-%E2%80%9E"><summary>**6.1 Kernel-Drift / „adjtime &lt; 0“ (Bug &lt; ESXi 7.0 U3o)**</summary>

Nach längerer Netzunterbrechung kann sich der Kernel-Clock-Dienst aufhängen. Mit `vsish` zurücksetzen:

```bash
vsish -e set /system/ntpclock/clockData 1
vsish -e get /system/ntpclock/clockData   # adjtime muss 0 sein

```

</details><details id="bkmrk-6.2-active-directory"><summary>**6.2 Active-Directory-Integration zieht eigene Zeit**</summary>

Ist der Host einer AD-Domäne beigetreten, holt er per Kerberos Zeit vom Domain-Controller. Entweder:

- den DC selbst als NTP-Quelle verwenden – oder
- in `/etc/likewise/lsassd.conf` folgende Zeile setzen:  
    `sync-system-time = no`

</details><details id="bkmrk-6.3-root-dispersion-"><summary>**6.3 root dispersion &gt; 1000 ms**</summary>

Einige externe Zeitserver werden von ESXi verworfen, wenn ihre *root dispersion* zu hoch ist. Ab 7.0 U3 lässt sich der Grenzwert erhöhen:

```bash
cp /etc/ntp.conf /etc/ntp.conf.bak
echo "tos maxdist 15" >> /etc/ntp.conf.bak
esxcli system ntp set -f /etc/ntp.conf.bak
/etc/init.d/ntpd restart

```

</details>---

## 7. Schnell-Checkliste (TL;DR)

1. NTP-Dienst läuft und startet mit dem Host (`esxcli system ntp get`).
2. Firewall-Regel `ntpClient` ist <kbd>Enabled: true</kbd>.
3. `10.100.10.27` erreichbar über UDP 123.
4. `ntpq -pn` zeigt **\*** und `reach = 377`.
5. Host ist auf aktuellem Patch-Stand (mind. 7.0 U3o / 8.0 U1d).

Stand: 10. Juni 2025 • getestet auf ESXi 7.0 U3o und 8.0 U2