Konfiguration des Zero-Touch-Rollouts

Ausgangslage

In einem Filial-Rollout ist es auf Grund der hohen Zahl an Geräten erforderlich, die LANCOM-Geräte nicht vorkonfigurieren zu müssen. Sie sollen stattdessen in Betrieb gehen, nachdem sie die Konfiguration von einem zentralen LSR-Server erhalten haben, vergleichbar dem "Zero-Touch-Management" bei einem WLC.

Rahmenbedingungen

Damit dieser "Zero-Touch-Rollout" über den Rollout-Agenten des Gerätes funktioniert, sind einige Rahmenbedingungen zu erfüllen:

Wichtig: Der DHCP-Server überträgt sensitive Daten wie z. B. das Rollout-Passwort ungesichert als DHCP-Nachricht. Es ist also darauf zu achten, die Daten nur über entsprechend abgesicherte Verbindungen zu transportieren.

Ablauf

Der Konfigurations-Rollout läuft wie folgt ab:

  1. Das unkonfigurierte Gerät wird an das Filial-Netz angeschlossen.
  2. Über den DHCP-Server bezieht das Gerät die erforderlichen Verbindungsdaten wie IP-Adresse, Gateway, Netzmaske, DNS-Adresse und die DHCP-Option 43.
  3. Aus der DHCP-Option 43 dekodiert das Gerät die URL des Rollout-Servers sowie zusätzliche Informationen und konfiguriert damit den Rollout-Agenten des Gerätes.
  4. Der Rollout-Agent kontaktiert daraufhin den Rollout-Server und führt den Rollout nacheinander in zwei Schritten durch:
    • Firmware-Update
    • Konfigurations-Update

Der Rollout-Agent erwartet, dass der unter der konfigurierten Firmware-Server-URL erreichbare Rollout-Server eine Firmware im .upx-Format ausliefert, die er anschließend in das Gerät einspielt.

Nach dem Firmware-Update startet das Gerät neu und kontaktiert den Rollout-Server erneut. Der Rollout-Agent prüft, ob die vom Rollout-Server ausgelieferte Firmware bereits installiert ist. Diese Prüfung ist erfolgreich, da das Gerät im ersten Schritt die aktuelle Firmware erhalten hat. Der Rollout-Agent fährt mit dem Update der Konfiguration bzw. dem Download von Skriptdateien fort. Er erwartet, dass der unter der konfigurierten Config-Server-URL erreichbare Rollout-Server ein Skript im .lcs-Format ausliefert, das er anschließend auf in das Gerät einspielt.

Die DHCP-Option 43

Die DHCP-Option 43 ist vendorspezifisch, d. h., jeder Vendor kann selbst entscheiden, wie er diese Option strukturiert und welche Informationen er darin kodiert. Die Option kann mehrere sogenannter Sub-Typen enthalten, die die Daten detaillierter strukturieren.

Für den Rollout-Agenten des Gerätes sind die folgenden Sub-Typen spezifiziert:

Sub-Type 1: Config-Server-URL
Die Angabe der Server-Adresse ist in den folgenden Formaten möglich:
  • HTTP, HTTPS, TFTP
  • IP-Adresse, FQDN
Beispiele:
  • https://rollout:443/
  • tftp://10.1.1.1
  • http://10.1.1.2/test
Auch die Angabe von LCOS-Variablen ist möglich Der Rollout-Agent erwartet, dass der unter dieser Adresse erreichbare Rollout-Server auf seine Anfrage hin ein Konfigurations-Skript mit der Erweiterung .lcs sendet.
Anmerkung:

Handelt es sich beim Rollout-Server um einen LSR, muss der Adresse das Präfix lsr: vorangestellt sein, z. B. lsr:https://rollout:443/. Anschließend baut der Rollout-Agent die korrekte LSR-Rollout-URL aus den Sub-Types 5 und folgende zusammen. Entsprechend sind die Sub-Types ab 5 nur bei der Verwendung dieses Präfixes von Bedeutung.

Handelt es sich beim Rollout-Server um keinen LSR, ist die Angabe der URLs für Config-Server und Firmware-Server von Hand und unter Verwendung von Variablen notwendig.

Sub-Type 2: Firmware-Server-URL
Wie bei Sub-Type 1, allerdings erwartet der Rollout-Agent, dass der unter dieser Adresse erreichbare Rollout-Server auf seine Anfrage hin eine Firmware-Datei mit der Erweiterung .upx sendet.
Sub-Type 3: HTTP-Username
Enthält den Usernamen für die HTTP-Authentifizierung in der URL (entsprechend http://username:password@server)
Sub-Type 4: HTTP-Password
Enthält das Passwort für die HTTP-Authentifizierung in der URL (entsprechend http://username:password@server)
Sub-Type 5: LSR-Projektnummer
Enthält die im Rollout-Server für das erforderliche Rollout-Projekt gespeicherte Projektnummer.
Sub-Type 6: Zusätzliche URL-Parameter für LSR-Keyword
Der Rollout-Agent fügt diesen Inhalt an die konstruierte LSR-URL an (z. B. ?approval=yes).
Sub-Type 7: Reboot-Time
Gibt die Wartezeit in Minuten für den Restart des Gerätes nach dem Update durch den Rollout-Server an.
Sub-Type 8: Request-Interval
Gibt den Intervall in Minuten an, in dem der Rollout-Agent seine Anfragen an den Rollout-Server sendet.
Sub-Type 9: TAN
Dieser Eintrag enthält die Rollout-TAN.
Sub-Type 10: Gerätenummer
Enthält die Gerätenummer des zu aktualisierenden Gerätes.
Sub-Type 11: Request-Delay
Enthält die Zeit in Minuten, die der Rollout-Agent zwischen Request 1 und Request 2 wartet.
Sub Type 12: Request-Random
Diese Einstellung verhindert, dass alle am Rollout beteiligten Geräte zeitgleich beim LSR-Server eine Konfiguration anfordern. Die folgenden Angaben sind möglich:
0
Die Anfragen erfolgen immer mit fest eingestellten Zeitangaben.
1
Legen Sie mit diesem Eintrag fest, dass die Anfrage nach einem Rollout zufällig erfolgt.
Sub-Type 13: Omit-Certificate-Check
Dieser Wert legt fest, ob der Rollout-Agent die Überprüfung des Rollout-Server-Zertifikats überspringen soll.
Anmerkung: Fehlt dieser Sub-Type oder ist sein Inhalt leer, nimmt der Rollout-Agent den Wert "0" an und prüft somit das Server-Zertifikat.
Wichtig: Beachten Sie bitte, dass die vom Rollout-Server erhaltene Konfiguration den Rollout-Agent zum Abschluss abschalten sollte (Operating: no), da das Gerät sonst nach der Reboot-Time rebootet.

Variablen

In den URLs sind alle Variablen verwendbar, die die LCOS-Konsole beinhaltet. Diese Variablen lassen sich in der Konsole über den Befehl printenv ausgeben.

Die Angabe der Variablen in den URLs erfolgt mit vorangestelltem "$" (z. B. $__SERIALNO).

Erzeugung der DHCP-Option 43

Die Erzeugung der DHCP-Option 43 erfolgt auf Grundlage der RFC 2132, Abschnitt 8.4.

Bei Verwendung eines ISC DHCPd DHCP-Server kann die Option 43 passend mit dem folgenden Konfigurationsabschnitt beispielhaft erzeugt werden:

Innerhalb der allgemeinen Konfiguration
option space Rollout;
option Rollout.config-server code 1 = text;
option Rollout.firmware-server code 2 = text;
option Rollout.HTTP-Username code 3 = text;
option Rollout.HTTP-Password code 4 = text;
option Rollout.Projectnumber code 5 = text;
option Rollout.AdditionalParams code 6 = text;
option Rollout.RebootTime code 7 = text;
option Rollout.RequestInterval code 8 = text;
option Rollout.Tan code 9 = text;
option Rollout.Devicenumber code 10 = text;
option Rollout.RequestDelay code 11 = text;
option Rollout.RequestRandom code 12 = text;
option Rollout.OmitCertCheck code 13 = text;
Innerhalb der Subnetz-spezifischen Konfiguration
vendor-option-space Rollout;
	option Rollout.config-server "LSR:https://10.200.50.1:443";
	option Rollout.firmware-server "LSR:https:// 10.200.50.1:443";
	option Rollout.HTTP-Username "RolloutUser";
	option Rollout.HTTP-Password "Secret";
	option Rollout.Projectnumber "1";
	option Rollout.RebootTime "300";
	option Rollout.RequestDelay "20";
	option Rollout.RequestRandom "0";
	option Rollout.OmitCertCheck "2";

Andere DHCP-Server (z. B. der Microsoft DHCP-Server) lassen keine Definition der Option 43 in der Konfiguration zu. Hier muss die vom Server als Option 43 auszuliefernde Bytefolge vorgefertigt in die Konfiguration eingefügt werden.

Um die Bytefolge nicht manuell erzeugen zu müssen, kann dies auch mit dem auf der folgenden Seite verlinkten Python-Skript erfolgen: wiki.snom.com/Category:HowTo:Option_43.