DHCP Monitor – OpenNMS

Posted: 28th November 2012 by marcel in OpenNMS
Tags: , ,

Ich für meinen Teil habe erstmal OpenNMS auf den aktuellsten Stand gebracht. Also momentan 1.10.7.

Dann den Monitor installiert:
apt-get install opennms-plugin-protocol-dhcp -y

Man benötigt in der capsd-configuration.xml benötigt man den Service DHCP:

    <protocol-plugin protocol="DHCP"
class-name="org.opennms.protocols.dhcp.capsd.DhcpPlugin" scan="on">
        <property key="timeout" value="2000" />
        <property key="retry" value="1" />
    </protocol-plugin>

Oder für den provisiond einen Detector:

 <detector class="org.opennms.protocols.dhcp.detector.DhcpDetector" name="DHCP">
            <parameter value="1" key="retries"/>
            <parameter value="2000" key="timeout"/>
        </detector>

Und in der poller-configuration.xml den entsprechenden Service:

  <service name="DHCP" interval="300000" user-defined="false" status="on">
      <parameter key="retry" value="2" />
      <parameter key="timeout" value="3000" />
      <parameter key="rrd-repository"
value="/opt/opennms/share/rrd/response" />
      <parameter key="rrd-base-name" value="dhcp" />
      <parameter key="ds-name" value="dhcp" />
    </service>

 <monitor service="DCHP" class-name="org.opennms.protocols.dhcp.monitor.DhcpMonitor"/>

und in der dhcp-configuration.xml natürlich die passenden Einträge:

<DhcpdConfiguration
        port="5818"
        macAddress="00:06:0D:BE:9C:B2"
        myIpAddress="IP-DES-NMS-SERVERS"
        extendedMode="true"
        requestIpAddress="targetHost">
</DhcpdConfiguration>

Kurze Erläuterung zu den Einstellungen:

port: ist wohl aussagekräftig
macAddress: Die Adresse, die dem DHCP mittgeteilt wird
myIpAddress: Zwei Möglichkeiten: broadcast oder relay mode.
Entweder die IP des NMS Servers (relay) oder halt „broadcast“. Im relay Mode wird die Kommunikation nicht über Broadcast gemacht.
extendedMode: false oder true.
Bei false sendet der Poller ein DISCOVER und erwartet ein OFFER vom DHCP Server.
Bei true wird auch ein DISCOVER gesendet, aber wenn keine gültige Antwort zurück kommt, wird ein INFORM gesendet. Wenn dafür auch keine gültige Antwort kommt, wird ein REQUEST gesendet. OFFER, ACK und NAK sind alles gültige Antworten in dem extendedMode.
requestIpAddress: Wird nur benötigt, wenn man den extendedMode nutzt. Es gibt 3 Optionen.
– Man kann eine best. IP Adresse spezifizieren, die man beim DHCP anfordern will
– targetHost: Es wird die IP des DHCP Servers angefordert.
– targetSubnet: eig. wie targetHost, nur dass die IP des DHCP Servers um den Wert 1 herauf/herabgesetzt wird

Wichtig: Im extendedMode ist ein Timeout bei einem nicht erreichbaren Node dreifach höher! Daher ist es gut, die retries nicht zu hochzusetzen.

Hier noch mal die DHCP Kommandos im Überblick:

    DHCPDISCOVER: Ein Client ohne IP-Adresse sendet eine Broadcast-Anfrage nach Adress-Angeboten an den / die DHCP-Server im lokalen Netz.
    DHCPOFFER: Der/die DHCP-Server antworten mit entsprechenden Werten auf eine DHCPDISCOVER-Anfrage.
    DHCPREQUEST: Der Client fordert (eine der angebotenen) IP-Adresse(n), weitere Daten sowie Verlängerung der Lease-Zeit von einem der antwortenden DHCP-Server.
    DHCPACK: Bestätigung des DHCP-Servers zu einer DHCPREQUEST-Anforderung
    DHCPNAK: Ablehnung einer DHCPREQUEST-Anforderung durch den DHCP-Server
    DHCPDECLINE: Ablehnung durch den Client, da die IP-Adresse schon verwendet wird.
    DHCPRELEASE: Der Client gibt die eigene Konfiguration frei, damit die Parameter wieder für andere Clients zur Verfügung stehen.
    DHCPINFORM: Anfrage eines Clients nach Daten ohne IP-Adresse, z. B. weil der Client eine statische IP-Adresse besitzt.

Hier auch noch mal das US Wiki dazu: http://www.opennms.org/wiki/DHCP_Configuration