Schlagwort-Archive: DHCP ISC Dynamic Host Configuration

DHCP is the name of this DHCP server program that operates as a daemon on a server to provide Dynamic Host Configuration Protocol.

TR-069 CWMP Provisioning on ISC-DHCPD

Das Broadband World Forum hat das Fernwartungsprotokoll TR-069 entwickelt, um Kunden-Router aus der Ferne einrichten zu können. Damit zum Beispiel Updates, Konfigurationen oder das Aufschalten zusätzlicher Dienste schneller vonstatten gehen können.

Mit dem TR-069 Protokoll können DHCP-Server einen oder mehrere herstellerspezifische Parameter an den Client Router senden. Eine CWMP Konfiguration benötigt für die URL zum Auto-Configuration-Servern (ACS) zur Provisionierung über ISC-DHCPD folgende Parameter:

subnet 192.168.0.0 netmask 255.255.255.0 {
        option routers 192.168.0.1;
        range 192.168.0.100 192.168.0.111;
        append dhcp-parameter-request-list 43;
        option vendor-encapsulated-options 01:12:68:74:74:70:3a:2f:2f:61:63:73:2e:69:73:70:2e:6f:72:67;
}

Beispiel ACS URL https://acs.isp.org

Das Optionsfeld option vendor-encapsulated-options muss als codierte Sequenz identischer Syntax mit Code/Länge/Wertfeld zum DHCP Optionsfeld angegeben werden.

The code for this option is 43 and its minimum length is 1.
Code   Len   Vendor-specific information
+-----+-----+-----+-----+---
|  43 |  n  |  i1 |  i2 | ...
+-----+-----+-----+-----+---

When encapsulated vendor-specific extensions are used, the
information bytes 1-n have the following format:

 Code   Len   Data item        Code   Len   Data item       Code
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|  T1 |  n  |  d1 |  d2 | ... |  T2 |  n  |  D1 |  D2 | ... | ... |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

Abschnitt: IETF rfc2132 – DHCP Options and BOOTP Vendor Extensions

url2hex

Zur Umwandlung dient folgender bash Script, diesen man wie folgt aufruft ./url2hex https://acs.isp.org

#!/bin/bash
if [[ -z $1 ]]; then
  echo "Argument missing! Use: url2hex url"
  exit 1
fi
echo ""
echo -e "[[[ URL2HEX Converter ]]]\nTR-069 CWMP request ACS URL provisioning on ISC-DHCPD option vendor-encapsulated-options"
echo "URL:$1"
wcount=`echo $1 | wc -m`
tcount=`echo ${wcount}-1 | bc`
length=`printf '%x\n' ${tcount}`
hexurl=`echo -n $1 | xxd -ps | sed 's/[[:xdigit:]]\{2\}/\:&/g'`
echo -e "URL-length:${tcount} HEX:${length}\n\nvalues for CWMP provisioning in dhcpd.conf:\n"
echo "append dhcp-parameter-request-list 43;"
echo "option vendor-encapsulated-options 01:${length}${hexurl};"

Die Code Zeilen in eine Datei url2hex speichern und ausführbar machen.

$ chmod u+x url2hex

Es wird die länge der übergebenen Zeichenkette berechnet und in den HEX Wert umwandelt, die Zeichenkette selbst wird ebenfalls in HEX umwandelt, danach werden die Werte zusammengehängt, beginnend von 0x01 für den Wert der CWMP Option für die ACS URL.

Die Ausgabe kann dann wie folgt aussehen:

[[[ URL2HEX Converter ]]]
TR-069 CWMP request ACS URL provisioning on ISC-DHCPD option vendor-encapsulated-options
URL:https://acs.isp.org
URL-length:19 HEX:13

values for CWMP provisioning in dhcpd.conf:

append dhcp-parameter-request-list 43;
option vendor-encapsulated-options 01:13:68:74:74:70:73:3a:2f:2f:61:63:73:2e:69:73:70:2e:6f:72:67;

Die letzten zwei Zeilen können in dhcpd.conf hinzugefügt werden.

Referenzen

TR-069 Boadband Forum, art. “3.1 ACS Discovery”
RFC2132 – DHCP Options and BOOTP Vendor Extensions, art. “8.4. Vendor Specific Information”.