So dokumentieren Sie Ihr Netzwerk mit Netdot unter CentOS 7

Einführung

Das Network Documentation Tool (Netdot) ist ein Open Source-Tool, mit dem Netzwerkadministratoren Netzwerkdokumentationen sammeln, organisieren und verwalten können.

  • Grundlegende Funktionen: *

  • Ermitteln und Abfragen von Geräten mit SNMP

  • Ermitteln und Erstellen der L2-Topologie mithilfe verschiedener Quellen: CDP-, LLDP-, STP- und Switch-Weiterleitungstabellen

  • Anlagenmanagement

  • IP-Adressverwaltung für v4 und v6

  • DHCP-Verwaltung

  • DNS-Verwaltung

  • Kabelmanagement: Schränke, Räume, Steckdosen, Verbindungen innerhalb und zwischen Gebäuden usw.

  • Kontaktverwaltung: Administratoren, Betreiber, Abteilungen, Anbieter, Lieferanten usw.

  • Exporteinstellungen für externe Tools: Nagios, RANCID, Cacti, BIND usw.

In diesem Tutorial zeigen wir Ihnen, wie Sie Netdot Geräte hinzufügen und wie Sie damit Ihren IP-Adressraum zuordnen und verwalten.

Voraussetzungen

Stellen Sie sicher, dass Sie diese Schritte ausgeführt haben, bevor Sie beginnen.

  • Stellen Sie ein CentOS 7-Droplet bereit

  • Fügen Sie einen sudo-Benutzer hinzu, indem Sie der Initial Server Setup folgen.

  • Fügen Sie Ihrem Server swap space hinzu. Das Beispiel 4 GB Menge ist in Ordnung

  • Installieren Sie die LAMP -Software, da Netdot Web- und Datenbankserver benötigt

  • Notieren Sie sich Ihr * root * MySQL-Passwort. Sie benötigen es in diesem Lernprogramm

  • Aktivieren Sie das EPEL-Repository (Extra Packages for Enterprise Linux):

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
sudo rpm -ivh epel-release-7-2.noarch.rpm

Weitere Informationen zum EPEL-Repo finden Sie unter here.

  • Installieren Sie diese vorausgesetzten Tools, mit denen Sie andere Pakete kompilieren können:

sudo yum install make gcc gcc-c++ autoconf automake rpm-build openssl-devel git perl perl-CPAN perl-Inline
  • Installieren Sie dnssec-tools manuell (möglicherweise möchten Sie eine andere Methode verwenden, wenn Sie die Zertifikatsprüfung überspringen möchten):

wget --no-check-certificate https://www.dnssec-tools.org/download/dnssec-tools-2.1-1.fc22.src.rpm -O /tmp/dnssec-tools.src.rpm
rpmbuild --rebuild /tmp/dnssec-tools.src.rpm
cd ~/rpmbuild/RPMS/x86_64/
sudo rpm -ivh --nodeps dnssec-tools-*

Installation

Im ersten Teil dieses Tutorials installieren wir Netdot und greifen darauf zu.

Schritt 1 - Klonen Sie das Netdot-Repository

Holen Sie sich die neueste Quelle für Netdot von GitHub:

cd /usr/local/src/
sudo git clone https://github.com/cvicente/Netdot.git netdot

Schritt 2 - Abhängigkeiten installieren

Jetzt müssen Sie die Abhängigkeiten installieren. Dies tun wir mit dem in Netdot enthaltenen Skript, das mithilfe des Paketmanagers yum einige Abhängigkeiten installiert.

Navigieren Sie zunächst zu dem Verzeichnis, in das Sie die Dateien aus dem Netdot-Repository extrahiert haben:

cd /usr/local/src/netdot/

Führen Sie das Installationsskript aus:

sudo make rpm-install

In der Eingabeaufforderung werden Sie gefragt, welche Datenbank Sie verwenden möchten. Die Antwort ist markiert in:

Installing required RPM packages
/usr/bin/perl bin/perldeps.pl rpm-install

Which RDBMS do you plan to use as backend: [mysql|Pg]?

Anschließend installiert das Skript die erforderlichen Module. Am Ende wird diese Zusammenfassung angezeigt, aus der hervorgeht, dass einige installiert sind und andere nicht:

Complete!

===============RESULTS===============
RRDs..............................................ok
GraphViz..........................................ok
Module::Build.....................................ok
CGI...............................................MISSING
Class::DBI........................................MISSING
Class::DBI::AbstractSearch........................MISSING
Apache2::Request..................................ok
HTML::Mason.......................................MISSING
Apache::Session...................................MISSING
URI::Escape.......................................ok
SQL::Translator...................................MISSING
SNMP::Info 2.06...................................ok
NetAddr::IP 4.042.................................ok
Apache2::AuthCookie...............................MISSING
Apache2::SiteControl..............................MISSING
Log::Dispatch.....................................ok
Log::Log4perl.....................................ok
Parallel::ForkManager.............................ok
Net::Patricia 1.20................................MISSING
Authen::Radius....................................MISSING
Test::Simple......................................MISSING
Net::IRR..........................................MISSING
Time::Local.......................................ok
File::Spec........................................ok
Net::Appliance::Session...........................MISSING
BIND::Config::Parser..............................MISSING
Net::DNS..........................................ok
Text::ParseWords..................................ok
Carp::Assert......................................ok
Digest::SHA.......................................ok
Net::DNS::ZoneFile::Fast..........................ok
Socket6...........................................ok
XML::Simple.......................................ok
DBD::mysql........................................ok

If there are still any missing Perl modules, you can try:

make installdeps

Sie müssen also die fehlenden Perl-Module installieren:

sudo make installdeps

Die Eingabeaufforderung wird Ihnen einige Fragen stellen. Antworten sind markiert in:

Installing required Perl modules
/usr/bin/perl bin/perldeps.pl install

Which RDBMS do you plan to use as backend: [mysql|Pg]?

CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

Would you like to configure as much as possible automatically? [yes]

<install_help>

Warning: You do not have write permission for Perl library directories.

To install modules, you need to configure a local Perl library directory or
escalate your privileges.  CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available).  You may also
resolve this problem manually if you need to customize your setup.

What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
[local::lib]

Autoconfigured everything but 'urllist'.

Now you need to choose your CPAN mirror sites.  You can let me
pick mirrors for you, you can select them from a list or you
can enter them by hand.

Would you like me to automatically choose some CPAN mirror
sites for you? (This means connecting to the Internet) [yes]

Das Skript fordert Sie möglicherweise auf, ein falsches Kennwort zu Testzwecken zu erstellen. Sie können diesen Teil überspringen.

Dies dauert 10-15 Minuten. Das Skript installiert die fehlenden Module. Am Ende sollten Sie sehen, dass jedes Modul erfolgreich installiert wurde:

===============RESULTS===============
RRDs..............................................ok
GraphViz..........................................ok
Module::Build.....................................ok
CGI...............................................ok
Class::DBI........................................ok
Class::DBI::AbstractSearch........................ok
Apache2::Request..................................ok
HTML::Mason.......................................ok
Apache::Session...................................ok
URI::Escape.......................................ok
SQL::Translator...................................ok
SNMP::Info 2.06...................................ok
NetAddr::IP 4.042.................................ok
Apache2::AuthCookie...............................ok
Apache2::SiteControl..............................ok
Log::Dispatch.....................................ok
Log::Log4perl.....................................ok
Parallel::ForkManager.............................ok
Net::Patricia 1.20................................ok
Authen::Radius....................................ok
Test::Simple......................................ok
Net::IRR..........................................ok
Time::Local.......................................ok
File::Spec........................................ok
Net::Appliance::Session...........................ok
BIND::Config::Parser..............................ok
Net::DNS..........................................ok
Text::ParseWords..................................ok
Carp::Assert......................................ok
Digest::SHA.......................................ok
Net::DNS::ZoneFile::Fast..........................ok
Socket6...........................................ok
XML::Simple.......................................ok
DBD::mysql........................................ok

Alle notwendigen Perl-Module sind installiert! Jetzt können Sie mit dem nächsten Schritt fortfahren.

Schritt 3 - Konfigurieren Sie den SNMP-Dienst

Wir müssen SNMP auf diesem Server konfigurieren, damit Netdot es überwachen kann. Sie müssen SNMP auf anderen Netzwerkgeräten konfigurieren, die Netdot ebenfalls überwachen soll. In diesem Lernprogramm wird jedoch nur dieses Droplet selbst überwacht.

Zunächst müssen Sie Netdisco MIBs installieren. Installieren Sie SNMP-Unterstützungspakete:

sudo yum install net-snmp net-snmp-utils

Laden Sie die Netdisco-Dateien herunter und extrahieren Sie sie:

wget http://downloads.sourceforge.net/project/netdisco/netdisco-mibs/latest-snapshot/netdisco-mibs-snapshot.tar.gz -P /tmp
sudo tar -zxf /tmp/netdisco-mibs-snapshot.tar.gz -C /usr/local/src

Erstellen Sie ein neues Verzeichnis für Netdisco und verschieben / kopieren Sie die benötigten Dateien:

sudo mkdir /usr/local/netdisco
sudo mv /usr/local/src/netdisco-mibs /usr/local/netdisco/mibs
sudo cp /usr/local/netdisco/mibs/snmp.conf /etc/snmp/

Bearbeiten Sie die Konfigurationsdatei:

sudo vi /etc/snmp/snmp.conf

Kommentieren Sie die Zeilen mit unnötigen Anbietern aus, um Speicher und Zeit zu sparen, indem Sie ein Rautezeichen (* # *) vor ihnen einfügen. Sie möchten die Zeilen "+ netdisco +" aktiv lassen und alle anderen auskommentieren:

. . .

mibdirs /usr/local/netdisco/mibs/rfc
mibdirs +/usr/local/netdisco/mibs/net-snmp
mibdirs +/usr/local/netdisco/mibs/cisco

# mibdirs +/usr/local/netdisco/mibs/3com
# mibdirs +/usr/local/netdisco/mibs/aerohive
# mibdirs +/usr/local/netdisco/mibs/alcatel
# mibdirs +/usr/local/netdisco/mibs/allied
# mibdirs +/usr/local/netdisco/mibs/apc
# mibdirs +/usr/local/netdisco/mibs/arista

. . .

# mibdirs +/usr/local/netdisco/mibs/sonicwall
# mibdirs +/usr/local/netdisco/mibs/trapeze
# mibdirs +/usr/local/netdisco/mibs/xirrus

. . .

Schließlich müssen Sie den SNMP-Dienst starten:

sudo systemctl start snmpd.service

Weitere Informationen zu SNMP finden Sie in der Tutorialserie Monitoring and Managing your Network with SNMP. Sie möchten diese Lernprogrammserie konsultieren, wenn Sie Netdot weitere Geräte hinzufügen.

Schritt 4 - Konfigurieren Sie die Datenbankeinstellungen für Netdot

Netdot wird mit einer Konfigurationsdatei geliefert, die Sie an Ihre Bedürfnisse anpassen müssen. Erstellen Sie eine Kopie mit dem Namen:

sudo cp /usr/local/src/netdot/etc/Default.conf /usr/local/src/netdot/etc/Site.conf

Anschließend können Sie die Datei so ändern, dass sie Ihre spezifischen Optionen widerspiegelt.

sudo vi /usr/local/src/netdot/etc/Site.conf

Die vollständige Datei wird hier nicht angezeigt. Sie müssen die folgenden Variablen suchen und aktualisieren, um sie Ihren Einstellungen anzupassen:

DB_TYPE => 'mysql'
DB_DBA => 'root',
DB_DBA_PASSWORD => '',
DB_HOST => 'localhost',
DB_DATABASE => 'netdot',
DB_NETDOT_USER => 'netdot_user',
DB_NETDOT_PASS => '',

Die meisten Standardeinstellungen sind in Ordnung.

  • + DB_DBA +: Der MySQL-Benutzer, der das Recht hat, Datenbanken zu erstellen. sollte in den meisten Fällen * root * sein

  • + DB_DBA_PASSWORD +: MySQL Passwort für * root *

  • + DB_DATABASE +: Name der Datenbank, die Sie für Netdot erstellen möchten

  • + DB_NETDOT_USER +: Netdot-Datenbankbenutzer, den Sie erstellen möchten

  • + DB_NETDOT_PASS +: Legen Sie ein eindeutiges Kennwort für den Netdot-Datenbankbenutzer fest

Sie müssen die Netdot-Datenbank oder den Benutzer nicht manuell erstellen. Der Installationsprozess liest die Werte aus dieser Datei und erstellt die entsprechende Datenbank und den entsprechenden Benutzer.

_ _ * Hinweis: * Wenn Sie die Konfigurationsdatei in Zukunft ändern, müssen Sie Apache neu starten, damit die Änderungen wirksam werden.

sudo systemctl restart httpd.service

_ _

Schritt 5 - Installieren Sie Netdot

Initialisieren Sie die Datenbank:

sudo make installdb

Dann installiere Netdot:

sudo make install PREFIX=/usr/local/netdot APACHEUSER=apache APACHEGROUP=apache

Schritt 6 - Beenden Sie die Installation

Nach einer erfolgreichen Installation von Netdot muss nur noch der Apache-Server konfiguriert werden.

Kopieren Sie die Konfigurationsdatei in das Verzeichnis mit den Apache-Einstellungen:

sudo cp /usr/local/netdot/etc/netdot_apache24_local.conf /etc/httpd/conf.d/

Starten Sie Apache neu:

sudo systemctl restart httpd.service

Schritt 7 - Cron Jobs einrichten

Netdot verfügt über mehrere Skripte, die regelmäßig ausgeführt werden sollten. Kopieren Sie die Beispieldatei crontab in Ihr Verzeichnis + cron.d +:

sudo cp /usr/local/src/netdot/netdot.cron /etc/cron.d/netdot

Die Installation ist abgeschlossen.

Schritt 8 - Greifen Sie auf Netdot zu

Starten Sie Ihren Browser und rufen Sie die Adresse "+ http: /// netdot +" auf.

Melden Sie sich mit dem Standardbenutzernamen und dem Standardkennwort an, die beide * admin * sind.

Stellen Sie sicher, dass Sie das Passwort sofort ändern!

Verwenden Sie Netdot, um Ihr Netzwerk zu dokumentieren

In diesem Abschnitt stellen wir Netdot vor und zeigen Ihnen, wie Sie Geräte hinzufügen und damit Ihre IPs verwalten.

Sobald Sie eingeloggt sind, sehen Sie Folgendes:

Die Benutzeroberfläche von Netdot ist recht einfach. Schauen wir uns die grundlegenden Aufgaben an, die Sie damit ausführen können.

Sammeln Sie Daten von Geräten

Zuerst müssen wir Ihre Netzwerkgeräte hinzufügen. Sie können auf verschiedene Arten hinzugefügt werden:

  • Einer nach dem anderen mit einem Skript

  • Durch Scannen von Geräten in einem bestimmten Subnetz

  • Durch Scannen der in einer Datei aufgelisteten Geräte

  • Manuelles Verwenden des Netdot-Bedienfelds

Ein Gerät mithilfe eines Skripts abrufen

Dies ist die Methode, mit der wir die eigenen Informationen dieses Droplets zu Netdot hinzufügen.

Dieser Befehl führt das Skript aus, um die Daten von einem einzelnen Host abzurufen:

/usr/local/netdot/bin/updatedevices.pl -H  -I -c

Beispielsweise können Sie den Server, auf dem Netdot installiert ist, mit dem folgenden Befehl hinzufügen:

/usr/local/netdot/bin/updatedevices.pl -H localhost -I -c public

Fahren Sie fort und führen Sie diesen Befehl aus. Die Ausgabe sollte folgendermaßen aussehen:

INFO - /usr/local/netdot/bin/updatedevices.pl started at Wed Nov  5 09:49:39 2014
INFO - Updating single device: localhost
INFO - Inserted new RR: localhost.defaultdomain
INFO - Inserting new Device: localhost
INFO - localhost.defaultdomain: SNMP target address set to 127.0.0.1
INFO - localhost.defaultdomain: Interface 1 (lo) updated
INFO - localhost.defaultdomain: Interface 2 (eno16777728) updated
INFO - localhost.defaultdomain [eno16777728]: Inserted new IP fe80::20c:29ff:fe20:4f53
INFO - localhost.defaultdomain [eno16777728]: Inserted new IP 192.168.176.128
INFO - Device::snmp_update: localhost.defaultdomain: Finished updating
INFO - /usr/local/netdot/bin/updatedevices.pl total runtime: 18 sec

Scannen Sie Geräte in einem bestimmten Subnetz

Diese Methode verwendet dasselbe Skript, um alle Geräte in einem bestimmten Subnetz zu scannen:

/usr/local/netdot/bin/updatedevices.pl -B  -I -c

Scannen Sie die in einer Datei aufgelisteten Geräte

Es kann hilfreich sein, alle Geräte in einer einfachen Textdatei aufzulisten. Die Datei sollte eine Liste von Geräten (Hostnamen oder IPs) und deren SNMP-Communitys enthalten, eine pro Zeile:

host1.sample community1
host2.sample community2
host3.sample community2
host4.sample community3

. . .

Anschließend können Sie mit dem Netdot-Skript alle in der Datei aufgeführten Geräte scannen:

/usr/local/netdot/bin/updatedevices.pl -E

Mit dem folgenden Befehl können Sie die vollständige Liste der Skriptparameter abrufen:

/usr/local/netdot/bin/updatedevices.pl -h

Fügen Sie ein Gerät über die Netdot-Systemsteuerung hinzu

Navigieren Sie in der Netdot-Systemsteuerung in der oberen Navigation zu * Management *. Wählen Sie * Management> Devices *. Klicken Sie auf den Link * [neu] *.

Geben Sie den Hostnamen oder die IP-Adresse des Geräts ein. Wählen Sie die SNMP-Version und -Community aus den Dropdown-Menüs. Klicken Sie dann auf * Entdecken *. Netdot fragt das Gerät dann über SNMP ab.

Gerätedokumentation

Sobald Sie ein Gerät erstellt haben, können Sie weitere Informationen dazu hinzufügen. Sie können nach einem Gerät anhand seines Namens, seiner IP-Adresse oder seiner MAC-Adresse suchen. Jede Informationsseite enthält mehrere Abschnitte:

  • Grundlagen: *

In diesem Abschnitt können Sie allgemeine Informationen zum Gerät anzeigen und bearbeiten: Eigentümer, Standort, Betriebssystem und Verwaltungsinformationen. Sie können auch Kommentare und benutzerdefinierte Attribute hinzufügen.

Einige Informationen können automatisch abgerufen werden, andere müssen manuell eingegeben werden.

Sie können Hilfe zu allen Parametern erhalten, indem Sie einfach auf den Titel klicken. Wenn Sie beispielsweise auf den Titel "First Discovered" klicken, wird das folgende Popup-Fenster angezeigt:

  • Schnittstellen: *

In diesem Abschnitt können Sie Informationen zu den Schnittstellen eines Geräts anzeigen und bearbeiten: Name, Geschwindigkeit, Status, Nachbarn (direkt angeschlossenes Gerät) usw.

Sie können detaillierte Informationen zur Benutzeroberfläche auch anzeigen, indem Sie auf die Nummer oder den Namen klicken.

  • IP info: *

In diesem Abschnitt können Sie Informationen zu allen auf dem Gerät gefundenen IP-Adressen zusammen mit den Subnetzen, zu denen sie gehören, der Geräteschnittstelle, auf der sie gefunden wurden, und optional deren DNS-Namen anzeigen. Sie können auch Dienste (HTTP, DNS, MySQL usw.) mit den entsprechenden Adressen verbinden.

Topologie:

In diesem Abschnitt sehen Sie eine Grafik des Geräts und seiner direkt angeschlossenen Nachbarn.

IP-Adressverwaltung

Eine der nützlichsten Funktionen von Netdot ist die Adressraumverwaltung. Sie können IP-Adressen in Ihrem Netzwerk planen, überwachen und verwalten.

Grundlegende Objekte im Adressraum von Netdot sind IP-Blöcke. Sie können einzelne Endknotenadressen sowie Gruppen von Adressen darstellen. Das Unterscheidungsmerkmal ist das Präfix: Die Endknotenadresse ist ein IP-Block mit dem Präfix / 32 und ein Subnetz mit der Endknotenadresse 126 ist ein IP-Block mit dem Präfix / 25.

Erstellen wir zum Beispiel die folgende einfache Struktur:

104.236.38.0/24
   104.236.38.0/25
   104.236.38.128/25
       104.236.38.128/26
       104.236.38.192/26

Navigieren Sie zu * Verwaltung> Adressraum *.

Klicken Sie auf den Link * [neu] *.

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/9.png [Container hinzufügen]

Geben Sie * 104.236.38.0 / 24 * in das Feld * IP [/ prefix] * ein. Sie können optional den * Eigentümer * und * Verwendet von * angeben. (Sie können der Dropdown-Liste ein Element hinzufügen, indem Sie auf den Link * [neu] * klicken, das Formular ausfüllen und die Seite aktualisieren.) Wählen Sie im Dropdown-Menü * Status * die Option * Container *. Geben Sie eine * Beschreibung * dieses Containers ein.

Klicken Sie auf * Speichern *.

Netdot unterstützt die folgenden Status:

  • * Container *: Enthält andere Container oder IP-Blöcke

  • * Subnet *: Repräsentiert die tatsächlichen Subnetze

  • * Reserviert *: Blöcke, die aus irgendeinem Grund nicht zugewiesen werden sollen

  • * Statisch *: Statisch zugewiesen

Erstellen Sie als Nächstes ein neues Subnetz für * 104.236.38.0 / 25 * und wählen Sie * Subnetz * für * Status * aus:

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/10.png [Subnetz hinzufügen]

Als Ergebnis sehen Sie Folgendes:

Um den nächsten Container zu erstellen, klicken Sie auf den grünen Balken neben dem roten am unteren Rand des Abschnitts * Usage for 104.236.38.0/24*.

Dann bittet Netdot um Bestätigung: * Die IP-Adresse oder der Block 104.236.38.128/25 existiert noch nicht. Sind Sie sicher, dass Sie es erstellen möchten? * Nach der Bestätigung erstellen Sie einen neuen Container.

In diesem Container können Sie ein weiteres Subnetz für * 104.236.38.128 / 26 * und einen weiteren Container für * 104.236.38.192 / 26 * usw. hinzufügen.

Sehen Sie sich jetzt die gesamte von Ihnen eingerichtete Hierarchie an. Gehen Sie dazu in den primären Container (* 104.236.38.0 / 24 *) und klicken Sie ganz rechts auf den Link * [Tree View] *. Folgendes wird angezeigt:

Wenn Sie auf eines der Kästchen im Diagramm klicken, wird eine detaillierte Karte des entsprechenden Subnetzes angezeigt.

Beispielsweise kann es wie folgt aussehen:

Diese Abbildung zeigt, dass die erste und die letzte Adresse des Netzwerks automatisch reserviert werden. Die Adressen 1 bis 63 werden für DHCP verwendet. Adressen, die statisch Hosts oder Geräteschnittstellen zugewiesen wurden, sind rot markiert. Adressen, die nicht statisch oder dynamisch zugewiesen wurden, aber im Netzwerk angezeigt werden, sind blau markiert. Verfügbare Adressen sind grün markiert.

Um eine Adresse hinzuzufügen, zu reservieren oder zu bearbeiten, müssen Sie darauf klicken. Außerdem können Sie die Gesamtstatistik der verwendeten und verfügbaren Adressen im Subnetz im Feld * Utilization * anzeigen. In diesem Beispiel sind dies:

Used: 76 of 126   Available: 50  (39%)

Fazit

Netdot ist ein leistungsstarkes Tool zur Dokumentation Ihres Netzwerks. Nach Abschluss dieses Lernprogramms erhalten Sie allgemeine Informationen zur Installation, zur grundlegenden Einrichtung, zum Hinzufügen neuer Geräte und zur Verwaltung Ihres Adressraums.