Benutzerdefinierte DHCP-Option 121: Netzwerkroute mitteilen
Die folgende FAQ ist eine generische Anleitung zur Einrichtung der benutzerdefinierten DHCP-Option 121: Netzwerkroute mitteilen.
Vorbemerkung
In der GUI der Bintec-Elmeg-Router sind im internen DHCP-Server die Formate aller gängigen DHCP-Optionen vordefiniert. Hin und wieder muss jedoch man eine seltener benutzte DHCP-Option im DHCP-Server einrichten, die nicht vordefiniert ist, so auch die DHCP Option 121 für die Verteilung von Netzwerkrouten per DHCP. Die DHCP-Option 121 (Classless Static Route) ist in RFC 3442 definiert.
Die DHCP-Option 121 kann nur in den Bintec-Routern konfiguriert werden auf die sie (via serielle Schnittstelle, Telnet oder SSH) Zugriff auf die sogenannte SNMP-Shell haben. Über den SNMP-Browser der GUI ist die Einrichtung dieser DHCP-Option nicht möglich.
Einrichtung
Die DHCP-Option 121 lässt sich am einfachsten von der selten benötigten (und dadurch im Folgenden leicht in der MIB-Konfigurationsdatenbank auffindbaren) DHCP-Option 150 (TFTP server address) ableiten.
Gehen sie deshalb als erstes in der Router-GUI in die Konfiguration des DHCP-Pools für die gewünschte Schnittstelle, fügen in den "Erweiterten Einstellungen" eine neue DHCP-Option vom Typ "TFTP-Server" hinzu und geben hier die zu leichteren Wiederauffindbarkeit dieses Eintrags in der MIB-Konfigurationsdatenbank die IP-Adresse 1.1.3.4 ein. Anschließend übernehmen sie diese Einstellungen mit "OK":
Melden sie sich nun an der SNMP-Shell des Bintec-Routers an (via via serielle Schnittstelle, Telnet oder SSH). Über die SNMP-Shell können sie alle internen Details der MIB-Konfigurationsdatenbank des Bintec-Elmeg-Routers im Klartext einsehen und verändern. Der soeben erstellten Options-Eintrag befindet sich (innerhalb der Gruppe "ip") in der Tabelle "ipDhcpOptionTable". zur Darstellung dieser Tabelle geben sie in der SNMP-Shell einfach den Befehl "ipdhcpoptiontable" ein. In dieser Tabelle identifizieren sie den gewünschten Eintrag im einfachsten Fall über den DHCP-Options-Code 150 (steht in der Variable "Code"), sowie ergänzend der oben eingegebenen IP-Adresse, die im Hexadezimalformat in der Variable "ContentHex" mit "01:02:03:04" zu finden ist:
Falls sie mehrere Einträge in der "ipDhcpOptionTable" haben sollten, die auf das obige Kriterium zutreffen, müssen sie etwas komplizierter vorgehen:
- Besorgen sie sich zuerst den "Index" der Schnittstelle an der sich ihre DHCP-Server-Instanz befindet über die "ifTable" (in der Gruppe "interfaces").
- Gehen sie anschließend (in der Gruppe "ip") in die "ipDhcpPoolTable" und suchen sich den Eintrag mit dem "IfIndex" ihrer gewünschten Schnittstelle.
- In diesem Eintrag suchen sie sich den Wert von "OfferOptionsGroupID" und "AckOptionsGroupID" heraus (beide Zahlen sollten identisch sei, andernfalls liegt in der Regel eine Fehlkonfiguration vor).
- Ihr gewünschter Eintrag in der "ipDhcpOptionTable" hat den "OptionIndex" ihrer soeben notierten GroupID und den Code 150.
Nachdem sie ihren gewünschten "ipDhcpOptionTable"-Eintrag gefunden haben, notieren sie sich seinen "inx" (die fortlaufende Nummer vor jedem Tabelleneintrag, im folgenden Beispiel die "1"). Damit können sie den gewünschten Eintrag bei der Änderung hinter dem Variablennamen vor dem Gleichheitszeichen per Doppelpunkt abgetrennt adressieren. Der "Code" wird nun von 150 auf 121 geädnert und in der "GroupDescr" eine Beschreibung ihrer selbstdefinierten Option vergeben (das ":1" ersetzen sie bitte durch den ":inx" ihres Eintrags):
code:1=121 groupdescr:1=RFC3442StaticRoutes
Nach diesen Vorarbeiten kann nun der eigentliche gewünschte per DHCP verteilte Netzwerkrouteneintrag erstellt werden, exemplarisch dargestellt anhand des folgenden Netzwerkroutenbeispiels:
Netzwerk 192.168.10.0/24 erreichbar über den Host 192.168.0.123
Der Inhalt der DCP-Option 121 hat das folgende Format:
- 1 Byte Netzwerkmaske.
- Danach signifikate Bytes (aufgerundet) des Zielnetzwerks (je nach Maske 0 bis 4 Bytes).
- Danach die IP-Adresse des Gatewayhosts zu diesem Netzwerk.
Für das obige Netzwerkroutenbeispiel ergibt sich dezimal folgender Optionsinhalt:
- Das erste Byte beinhaltet die Zahl 24
- Das Zielnetzmerk hat drei signifikante Bytes und besteht somit aus den folgenden drei Zahlen: 192| 168 | 10
- Die Ziel-IP sind die folgenden 4 Bytes: 192 | 168 | 0 | 123
Zusammen ergibt dies dezimal:
024 | 192| 168 | 010 | 192 | 168 | 000 | 123
Mit einem Taschenrechner wandeln sie jede Stelle in Hexadezimaldarstellung um (der Software-Taschenrechner "Calc" von Windows kann dies in der Ansicht "Programmierer"):
18 | c0 | a8 | 0a | c0 | a8 | 00 | 7b
Diese Zahlen geben sie nun in der SNMP-Shell hintereinander weg ohne die obigen Trennzeichen als Wert der Variable "ContentHex" ein ( der ":inx" muss wie oben ggf. geändert werden):
contenthex:1=18c0a80ac0a8007b
Abschließend können sie in der "Standard"-GUI-Ansicht in den DHCP-Server-Einstellungen überprüfen, ob sie den richtigen Eintrag in der ipDhcpOptionTable erwischt haben: Sie sollten nun einen Eintrag mit "*Ungültiger Bezug*" (da der Codepunkt nicht in der GUI bekannt ist) für ihre gewünschte DHCP-Server-Instanz finden und in Hexadezimalschreibweise das was sie zuvor eingerichtet haben (der Funktion der benutzerdefinierten DHCP-Option tut die GUI-Meldung keinen Abbruch):