KEA DHCP NTP-Konfiguration - Netzwerk und Serveradministration

Aus Xinux Wiki
Version vom 20. Oktober 2025, 07:38 Uhr von Maximilian.pottgiesser (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Kategorie:DHCP Kategorie:NTP = NTP-Server via Kea DHCP verteilen = == Übersicht == Kea DHCP kann NTP-Server-Informationen an DHCP-Clients verteilen…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


NTP-Server via Kea DHCP verteilen

Übersicht

Kea DHCP kann NTP-Server-Informationen an DHCP-Clients verteilen. Dies ermöglicht eine zentrale Zeitserver-Konfiguration für alle Netzwerkgeräte.

DHCP-Option für NTP

  • Option 42 (DHCPv4): NTP Servers
  • Format: Liste von IPv4-Adressen

Konfiguration

Globale NTP-Konfiguration

NTP-Server für alle Subnetze:

  • sudo vim /etc/kea/kea-dhcp4.conf
{
  "Dhcp4": {
    "interfaces-config": {
      "interfaces": [ "enp0s3" ]
    },
    "lease-database": {
      "type": "memfile",
      "persist": true,
      "name": "/var/lib/kea/dhcp4.leases"
    },
    "valid-lifetime": 600,
    "max-valid-lifetime": 7200,
    
    "option-data": [
      {
        "name": "domain-name-servers",
        "data": "10.88.1XX.21"
      },
      {
        "name": "domain-name",
        "data": "it1XX.int"
      },
      {
        "name": "domain-search",
        "data": "it1XX.int, example.com"
      },
      {
        "name": "ntp-servers",
        "data": "10.88.1XX.10"
      }
    ],
    
    "subnet4": [
      {
        "subnet": "172.16.1XX.0/24",
        "pools": [
          {
            "pool": "172.16.1XX.50 - 172.16.1XX.100"
          }
        ],
        "option-data": [
          {
            "name": "routers",
            "data": "172.16.1XX.1"
          }
        ]
      }
    ],
    "loggers": [
      {
        "name": "kea-dhcp4",
        "output_options": [
          {
            "output": "/var/log/kea/kea-dhcp4.log"
          }
        ],
        "severity": "INFO"
      }
    ]
  }
}

Mehrere NTP-Server

{
  "name": "ntp-servers",
  "data": "10.88.1XX.10, 10.88.1XX.11, 192.53.103.108"
}

Öffentliche NTP-Server

Beispiele für öffentliche NTP-Server in Deutschland:

{
  "name": "ntp-servers",
  "data": "ptbtime1.ptb.de, ptbtime2.ptb.de, ptbtime3.ptb.de"
}

Hinweis: Für öffentliche NTP-Server müssen Hostnamen erst in IP-Adressen aufgelöst werden, da Kea nur IP-Adressen unterstützt.

Beispiel mit IP-Adressen:

{
  "name": "ntp-servers",
  "data": "192.53.103.103, 192.53.103.104, 192.53.103.108"
}

Subnet-spezifische NTP-Server

Verschiedene NTP-Server für unterschiedliche Subnetze:

{
  "Dhcp4": {
    "option-data": [
      {
        "name": "ntp-servers",
        "data": "10.88.1XX.10"
      }
    ],
    "subnet4": [
      {
        "subnet": "172.16.1XX.0/24",
        "pools": [
          {
            "pool": "172.16.1XX.50 - 172.16.1XX.100"
          }
        ],
        "option-data": [
          {
            "name": "routers",
            "data": "172.16.1XX.1"
          }
        ]
      },
      {
        "subnet": "10.88.1XX.0/24",
        "pools": [
          {
            "pool": "10.88.1XX.50 - 10.88.1XX.100"
          }
        ],
        "option-data": [
          {
            "name": "routers",
            "data": "10.88.1XX.1"
          },
          {
            "name": "ntp-servers",
            "data": "10.88.1XX.11, 10.88.1XX.12"
          }
        ]
      }
    ]
  }
}

In diesem Beispiel:

  • Subnet 172.16.1XX.0/24 verwendet den globalen NTP-Server 10.88.1XX.10
  • Subnet 10.88.1XX.0/24 überschreibt dies mit eigenen Servern 10.88.1XX.11 und 10.88.1XX.12

Dienst neu starten

  • Konfiguration testen
  • sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
  • Dienst neu starten
  • sudo systemctl restart kea-dhcp4-server
  • Status prüfen
  • sudo systemctl status kea-dhcp4-server

Überprüfung auf dem Client

Linux Client

  • DHCP-Informationen anzeigen
  • cat /var/lib/dhcp/dhclient.leases

oder

  • ip addr show
  • NTP-Status prüfen (wenn systemd-timesyncd verwendet wird)
  • timedatectl status

Erwartete Ausgabe:

               Local time: Mo 2025-10-20 15:30:45 CET
           Universal time: Mo 2025-10-20 13:30:45 UTC
                 RTC time: Mo 2025-10-20 13:30:45
                Time zone: Europe/Berlin (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
  • Konfigurierte NTP-Server anzeigen
  • timedatectl show-timesync --all

Windows Client

  • PowerShell als Administrator öffnen
  • ipconfig /all

Im Output nach "DHCP-Server" und unter "Optionen" suchen.

  • NTP-Konfiguration prüfen
  • w32tm /query /status

NTP-Server einrichten (Optional)

Falls Sie einen eigenen NTP-Server im Netzwerk betreiben möchten:

Installation

  • sudo apt install chrony

Basis-Konfiguration

  • sudo vim /etc/chrony/chrony.conf
# Upstream NTP-Server (PTB Deutschland)
server ptbtime1.ptb.de iburst
server ptbtime2.ptb.de iburst
server ptbtime3.ptb.de iburst

# Erlaube lokale Clients
allow 10.88.1XX.0/24
allow 172.16.1XX.0/24

# Driftfile
driftfile /var/lib/chrony/drift

# Log-Verzeichnis
logdir /var/log/chrony

Dienst starten

  • sudo systemctl restart chrony
  • sudo systemctl enable chrony

Status prüfen

  • chronyc tracking
  • chronyc sources

Wichtige Hinweise

  • NTP verwendet Option 42 in DHCPv4
  • Kea unterstützt nur IP-Adressen, keine Hostnamen in den DHCP-Optionen
  • Für IPv6 wird stattdessen Option 56 (NTP Server) verwendet
  • Die meisten modernen Betriebssysteme unterstützen NTP via DHCP
  • Windows unterstützt seit Windows Server 2003/Windows XP SP2 NTP via DHCP

Troubleshooting

Client erhält keinen NTP-Server

  • DHCP-Lease erneuern:
  • sudo dhclient -r && sudo dhclient
  • Kea-Logs prüfen:
  • sudo journalctl -u kea-dhcp4-server -n 50
  • Tcpdump auf DHCP-Traffic:
  • sudo tcpdump -i enp0s3 -n port 67 or port 68

NTP-Synchronisation funktioniert nicht

  • Firewall-Regeln prüfen (NTP verwendet UDP Port 123):
  • sudo iptables -L -v -n | grep 123
  • NTP-Server Erreichbarkeit testen:
  • ntpdate -q 10.88.1XX.10

oder mit chrony:

  • chronyc -n sources

Siehe auch