Comment documenter votre réseau avec Netdot sur CentOS 7

introduction

L’outil de documentation réseau (Netdot) est un outil open source qui peut aider les administrateurs de réseau à collecter, organiser et gérer la documentation réseau.

  • Capacités de base: *

  • Découvrir et interroger des périphériques à l’aide de SNMP

  • Découvrez et créez la topologie L2 à l’aide de différentes sources: CDP, LLDP, STP et tables de transfert de commutateur

  • La gestion d’actifs

  • Gestion des adresses IP pour v4 et v6

  • Gestion DHCP

  • Gestion DNS

  • Gestion des câbles: placards, chambres, prises de courant, connexions dans et entre les bâtiments, etc.

  • Gestion des contacts: administrateurs, opérateurs, départements, fournisseurs, fournisseurs, etc.

  • Paramètres d’exportation pour les outils externes: Nagios, RANCID, Cacti, BIND, etc.

Voir le site Netdot.

Dans ce didacticiel, nous allons vous montrer comment ajouter des périphériques à Netdot et comment l’utiliser pour mapper et gérer votre espace d’adresse IP.

Conditions préalables

Avant de commencer, assurez-vous d’avoir suivi ces étapes.

  • Déployer un droplet CentOS 7

  • Ajoutez un utilisateur sudo en suivant les Initial Initial Server.

  • Ajoutez swap space à votre serveur; l’exemple 4 Go montant est bien

  • Installez le logiciel LAMP, car Netdot requiert des serveurs Web et de base de données.

  • Prenez note de votre mot de passe MySQL * root *; vous en aurez besoin dans ce tutoriel

  • Activez le référentiel EPEL (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

De plus amples informations sur le référentiel EPEL sont disponibles à l’adresse https://fedoraproject.org/wiki/EPEL [ici].

  • Installez ces outils prérequis qui vous permettront de compiler d’autres packages:

sudo yum install make gcc gcc-c++ autoconf automake rpm-build openssl-devel git perl perl-CPAN perl-Inline
  • Installez manuellement dnssec-tools (vous pouvez utiliser une méthode différente si vous souhaitez ignorer la vérification du certificat):

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

Dans la première partie de ce didacticiel, nous allons installer Netdot et y accéder.

Étape 1 - Clonez le référentiel Netdot

Obtenez la dernière source pour Netdot de GitHub:

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

Étape 2 - Installez les dépendances

Maintenant, vous devez installer les dépendances. Nous allons faire cela avec le script inclus dans Netdot, qui utilise le gestionnaire de paquets yum pour installer pas mal de dépendances.

Naviguez d’abord dans le répertoire où vous avez extrait les fichiers du référentiel Netdot:

cd /usr/local/src/netdot/

Exécutez le script d’installation:

sudo make rpm-install

L’invite vous demandera quelle base de données vous souhaitez utiliser. La réponse est marquée en:

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

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

Ensuite, le script installera les modules nécessaires. À la fin, vous verrez ce résumé, qui montre que certains installés et d’autres ne l’ont pas:

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

Il faut donc installer les modules Perl manquants:

sudo make installdeps

L’invite vous posera quelques questions. Les réponses sont marquées en:

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]

Le script peut vous demander de créer un faux mot de passe à des fins de test. Vous pouvez ignorer cette partie.

Cela prendra 10-15 minutes à compléter. Le script installera les modules manquants. A la fin, vous devriez voir que chaque module installé avec succès:

===============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

Tous les modules Perl nécessaires sont installés! Vous pouvez maintenant passer à l’étape suivante.

Étape 3 - Configurer le service SNMP

Nous devons configurer SNMP sur ce serveur pour que Netdot puisse le surveiller. Vous devrez configurer SNMP sur d’autres périphériques réseau que vous souhaitez également que Netdot surveille, mais pour ce didacticiel, nous ne ferons que surveiller ce Droplet lui-même.

Tout d’abord, vous devez installer Netdisco MIBs. Installez les packages de prise en charge SNMP:

sudo yum install net-snmp net-snmp-utils

Téléchargez les fichiers Netdisco et extrayez-les:

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

Créez un nouveau répertoire pour Netdisco et déplacez / copiez les fichiers nécessaires:

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/

Editez le fichier de configuration:

sudo vi /etc/snmp/snmp.conf

Mettez en commentaire les lignes avec les fournisseurs inutiles pour économiser de la mémoire et du temps en ajoutant un signe dièse devant eux (* # *). Vous voudrez laisser les lignes + netdisco + actives et commenter toutes les autres:

. . .

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

. . .

Enfin, vous devez démarrer le service SNMP:

sudo systemctl start snmpd.service

Pour en savoir plus sur le protocole SNMP, consultez la série de didacticiels Monitoring et gestion de votre réseau avec SNMP. Vous souhaiterez consulter cette série de didacticiels lorsque vous ajouterez plus de périphériques à Netdot.

Étape 4 - Configurer les paramètres de base de données pour Netdot

Netdot est livré avec un fichier de configuration que vous devez personnaliser en fonction de vos besoins. Créer une copie de avec le nom:

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

Ensuite, vous pouvez modifier le fichier pour refléter vos options spécifiques.

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

Le fichier complet n’est pas affiché ici. Vous devez localiser les variables suivantes et les mettre à jour pour correspondre à vos paramètres:

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

La plupart des paramètres par défaut conviennent.

  • + DB_DBA +: l’utilisateur MySQL qui a le droit de créer des bases de données; devrait être * racine * dans la plupart des cas

  • + DB_DBA_PASSWORD +: Mot de passe MySQL pour * root *

  • + DB_DATABASE +: Nom de la base de données que vous voulez créer pour Netdot

  • + DB_NETDOT_USER +: L’utilisateur de la base de données Netdot que vous souhaitez créer

  • + DB_NETDOT_PASS +: Définir un mot de passe unique pour l’utilisateur de la base de données Netdot

Il n’est pas nécessaire de créer manuellement la base de données Netdot ou l’utilisateur. Le processus d’installation lit les valeurs de ce fichier et crée la base de données et l’utilisateur appropriés.

_ _ * Remarque: * Si vous modifiez le fichier de configuration à l’avenir, vous devez redémarrer Apache pour que les modifications prennent effet.

sudo systemctl restart httpd.service

_ _

Étape 5 - Installer Netdot

Initialiser la base de données:

sudo make installdb

Puis installez Netdot:

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

Étape 6 - Terminez l’installation

Le serveur Apache est la seule chose à configurer après une installation réussie de Netdot.

Copiez le fichier de configuration dans le répertoire avec les paramètres Apache:

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

Redémarrez Apache:

sudo systemctl restart httpd.service

Étape 7 - Configurer les tâches cron

Netdot a plusieurs scripts qui doivent être exécutés périodiquement. Copiez le fichier exemple de fichier crontab dans votre répertoire + cron.d +:

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

L’installation est terminée.

Étape 8 - Accès Netdot

Lancez votre navigateur et allez à l’adresse + http: /// netdot +.

Connectez-vous avec le nom d’utilisateur et le mot de passe par défaut, qui sont tous deux * admin *.

Assurez-vous de changer le mot de passe tout de suite!

Utilisez Netdot pour documenter votre réseau

Dans cette section, nous allons présenter Netdot et vous montrer comment ajouter des périphériques et l’utiliser pour gérer vos adresses IP.

Une fois que vous êtes connecté, vous verrez ce qui suit:

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/1.png [interface Netdot]

L’interface de Netdot est assez simple. Examinons les tâches de base que vous pouvez effectuer avec.

Recueillir des données à partir d’appareils

Nous devons d’abord ajouter vos périphériques réseau. Ils peuvent être ajoutés de plusieurs manières:

  • Un à la fois, en utilisant un script

  • En analysant les périphériques dans un sous-réseau donné

  • En analysant les périphériques répertoriés dans un fichier

  • Manuellement à l’aide du panneau de configuration Netdot

Interroger un appareil à l’aide d’un script

C’est la méthode que nous allons utiliser pour ajouter les informations de cette Droplet à Netdot.

Cette commande lancera le script pour obtenir les données d’un hôte unique:

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

Par exemple, vous pouvez ajouter le serveur sur lequel Netdot est installé avec cette commande:

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

Allez-y et lancez cette commande. Vous devriez voir une sortie comme celle-ci:

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

Analyser les périphériques dans un sous-réseau donné

Cette méthode utilise le même script pour analyser tous les périphériques d’un sous-réseau donné:

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

Analyser les périphériques répertoriés dans un fichier

Vous trouverez peut-être utile de répertorier tous vos périphériques dans un simple fichier texte. Le fichier doit contenir une liste de périphériques (noms d’hôte ou IP) et leurs communautés SNMP, une par ligne:

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

. . .

Ensuite, vous pouvez utiliser le script Netdot pour analyser tous les périphériques répertoriés dans le fichier:

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

Vous pouvez utiliser la commande suivante pour obtenir la liste complète des paramètres de script:

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

Ajouter un périphérique à partir du panneau de configuration Netdot

Dans le panneau de configuration Netdot, accédez à * Gestion * dans la partie supérieure de la navigation. Choisissez * Gestion> Appareils *. Cliquez sur le lien * [nouveau] *.

Entrez le nom d’hôte ou l’adresse IP du périphérique. Choisissez la version et la communauté SNMP dans les menus déroulants. Ensuite, cliquez sur * Discover *. Netdot interrogera ensuite le périphérique à l’aide de SNMP.

Documentation de l’appareil

Une fois que vous avez créé un appareil, vous pouvez ajouter plus d’informations à ce sujet. Vous pouvez rechercher un périphérique par son nom, son adresse IP ou son adresse MAC. Chaque page d’information contient plusieurs sections:

  • Basics: *

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/2.png [Onglet Généralités]

Dans cette section, vous pouvez afficher et modifier des informations générales sur le périphérique: propriétaire, emplacement, système d’exploitation et informations de gestion. Vous pouvez également ajouter des commentaires et des attributs personnalisés.

Certaines informations peuvent être obtenues automatiquement et certaines informations doivent être entrées manuellement.

Vous pouvez obtenir de l’aide sur n’importe lequel des paramètres en cliquant simplement sur son titre. Par exemple, en cliquant sur le titre «Première découverte», vous verrez apparaître la fenêtre suivante:

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/3.png [Première aide découverte]

  • Interfaces: *

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/4.png [Onglet Interfaces]

Dans cette section, vous pouvez afficher et modifier des informations sur les interfaces d’un périphérique: nom, vitesse, statut, voisin (périphérique directement connecté), etc.

Vous pouvez également afficher des informations détaillées sur l’interface en cliquant sur son numéro ou son nom.

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/5.png [Détails de l’interface]

  • Info IP: *

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/6.png [Onglet Infos IP]

Dans cette section, vous pouvez afficher des informations sur toutes les adresses IP trouvées sur le périphérique, ainsi que sur les sous-réseaux auxquels elles appartiennent, l’interface de périphérique où elles ont été trouvées et éventuellement leurs noms DNS. Vous pouvez également connecter des services (HTTP, DNS, MySQL, etc.) aux adresses correspondantes.

  • Topologie: *

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/7.png [Onglet Topologie]

Dans cette section, vous pouvez voir un graphique de l’appareil et de ses voisins directement connectés.

Gestion des adresses IP

L’une des fonctionnalités les plus utiles de Netdot est la gestion de l’espace d’adressage. Vous pouvez planifier, surveiller et gérer les adresses IP sur votre réseau.

Les objets de base dans l’espace adresse du Netdot sont des blocs IP. Ils peuvent représenter des adresses de noeud final individuelles, ainsi que des groupes d’adresses. La caractéristique distinctive est le préfixe: l’adresse du noeud final est un bloc IP avec un préfixe / 32 et un sous-réseau de 126 adresses du noeud final est un bloc IP avec un préfixe / 25.

Par exemple, créons la structure simple suivante:

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

Naviguez jusqu’à * Gestion> Espace d’adressage *.

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/8.png [Espace d’adressage]

Cliquez sur le lien * [nouveau] *.

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/9.png [Ajouter un conteneur]

Entrez * 104.236.38.0 / 24 * dans le champ * IP [/ prefix] *. Vous pouvez éventuellement spécifier le * Propriétaire * et * Utilisé par *. (Vous pouvez ajouter un élément à la liste déroulante en cliquant sur le lien * [nouveau] *, en remplissant le formulaire et en actualisant la page.) Dans le menu déroulant * Statut *, sélectionnez * Conteneur *. Entrez une * Description * de ce conteneur.

Cliquez sur * Enregistrer *.

Netdot prend en charge les états suivants:

  • * Container *: comprend d’autres conteneurs ou blocs IP

  • * Sous-réseau *: représente les sous-réseaux actuels

  • * Réservé *: Blocs qui ne doivent pas être attribués pour une raison quelconque

  • * Statique *: Statiquement assigné

Créez ensuite un nouveau sous-réseau pour * 104.236.38.0 / 25 *, en sélectionnant * Sous-réseau * pour * Statut *:

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/10.png [Ajouter un sous-réseau]

Vous verrez les résultats suivants:

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/11.png [Création de sous-réseau]

Pour créer le conteneur suivant, vous pouvez cliquer sur la barre verte en regard de la barre rouge au bas de la section * Usage pour 104.236.38.0/24*.

Netdot vous demandera alors de confirmer: * L’adresse IP ou le bloc 104.236.38.128/25 n’existe pas encore. Êtes-vous sûr de vouloir le créer? * Après confirmation, vous créerez un nouveau conteneur.

Dans ce conteneur, vous pouvez ajouter un autre sous-réseau pour * 104.236.38.128 / 26 * et un autre conteneur pour * 104.236.38.192 / 26 *, etc.

Examinez maintenant l’ensemble de la hiérarchie que vous avez configurée. Pour ce faire, accédez au conteneur principal (* 104.236.38.0 / 24 *) et cliquez sur le lien * [Arborescence] * à l’extrême droite. Vous verrez ce qui suit:

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/12.png [Arborescence]

Si vous cliquez sur l’une des cases du diagramme, vous verrez une carte détaillée du sous-réseau approprié.

Par exemple, cela peut ressembler à:

image: https: //assets.digitalocean.com/articles/Netdot_CentOS7/13.png [Vue du bloc de sous-réseau]

Cette figure montre que les première et dernière adresses du réseau sont automatiquement réservées. Les adresses 1 à 63 sont utilisées pour DHCP. Les adresses attribuées de manière statique à des hôtes ou à des interfaces de périphérique sont marquées en rouge. Les adresses qui n’ont pas été attribuées de manière statique ou dynamique, mais qui ont été vues sur le réseau, sont marquées en bleu. Les adresses disponibles sont marquées en vert.

Pour ajouter, réserver ou modifier une adresse, vous devez cliquer dessus. En outre, vous pouvez voir les statistiques globales sur les adresses utilisées et disponibles sur le sous-réseau dans le champ * Utilisation *, qui dans cet exemple sont:

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

Conclusion

Netdot est un outil puissant pour documenter votre réseau. Après avoir terminé ce didacticiel, vous comprendrez comment l’installer, comment procéder de façon basique, comment ajouter de nouveaux périphériques et comment gérer votre espace adresse.