jeudi 9 juillet 2015

Dossier très intéressant : comprendre le SDN, ou l'art de virtualiser le réseau (Article du site pro.clubic.com)


Depuis 2010, le Cloud change de visage avec l'arrivée de mécanismes d'automatisation de gestion des serveurs et du stockage, ainsi que de l'autoconfiguration du réseau. Dans les grands clouds publics, privés ou hybrides, ces tâches deviennent impossibles manuellement, surtout dans un contexte de concurrence où l'adaptation instantanée aux besoins des clients devient primordiale.


Datacenter câbles réseau network sécurité

A l'origine, les deux initiatives n'avaient rien en commun. D'un côté, le projet OpenStack, lancé en 2010, par la fondation Openstack, pour créer et offrir des services dynamiques dans le monde du Cloud Computing. D'un autre côté, le projet SDN (Software Defined Network), développé par l'Open Networking Foundation (ONF), créée en 2011. Il vise à découpler, dans un équipement réseau, la partie plan de données de la partie plan de contrôle.

En d'autres termes, ne laisser aux commutateurs ou routeurs que l'aiguillage des paquets. Les services réseaux (affectation des priorités, décisions de routage...) sont rassemblées dans un contrôleur, commun à plusieurs équipements.


On peut donc utiliser l'un ou l'autre projet, mais également les deux à la fois car ils se complètent. En effet, le Cloud Computing se caractérise par une forte agilité des infrastructures destinées à s'adapter quasi instantanément aux besoins des utilisateurs, que ce soit dans un Cloud privé ou public. Dès lors, toute automatisation des tâches, tant côté informatique que côté réseau, ne peut que bénéficier aux fournisseurs de services Cloud et, en fin de compte, aux utilisateurs.

Le SDN : quand le réseau s'autoconfigure


Dans un réseau classique, lorsqu'un paquet arrive sur un port d'un commutateur ou d'un routeur, celui-ci applique les règles de routage ou de commutation qui sont inscrites dans son système d'exploitation. Généralement, tous les paquets qui ont la même destination suivent le même chemin. Dans les modèles haut de gamme, les matériels sont capables de reconnaître le type d'application et de lui appliquer les règles spécifiques. Mais cette programmation est rigide. Elle ne peut être changée que manuellement, par l'administrateur, ce qui prend évidemment du temps et ne se prête guère à des changements de contexte rapides.

Avec le SDN, ces changements sont automatisés et même programmables. L'administrateur définit les règles dans le contrôleur, et celles-ci sont instantanément transmises dans les équipements réseaux. Par exemple, si une entreprise réalise des sauvegardes toutes les nuits, il est possible de configurer le réseau pour leur offrir à ce moment-là le maximum de bande passante, le trafic métier de la journée étant alors fort réduit. Autre exemple : une entreprise qui possède des établissements de chaque côté de l'Atlantique. Sachant que le coût de ces liaisons est élevé, elle peut choisir de l'optimiser, en fonction de l'heure et/ou du type de trafic. L'avantage qu'offre le SDN réside dans l'automatisation de ces configurations, sans que l'administrateur ait à intervenir.

Le côté découplage entre la partie matérielle et la partie logicielle n'est pas sans rappeler le fameux IMS (IP Multimedia Subsystem), qui introduisait dans les équipements télécoms plan de données et plan de contrôle. Apparu au tournant des années 2000, il était poussé par les constructeurs, tels que Lucent ou Ericsson. Il répondait à un besoin né de l'arrivée des réseaux UMTS (3G). D'où son rapport très étroit avec le 3rd Generation Partnership Project (3GPP), organisme de normalisation de la téléphonie mobile 3G dans les réseaux UMTS.

Plus tard, sont venus s'ajouter d'autres types d'accès et de protocoles, tels que SIP ou la VoIP et même l'interfonctionnement avec les réseaux fixes, fruit d'une collaboration avec TISPAN (Telecoms & Internet converged Services & Protocols for Advanced Networks), d'origine ETSI (European Telecommunications Standards Institute). Cette nouvelle architecture, s'appliquant uniquement aux réseaux d'opérateurs, fut nommée NGN (Next Generation Network). Elle permet d'utiliser le même plan de contrôle pilotant un cœur de réseau IP unique sur lequel se raccordent différents types d'accès. D'une certaine manière, le SDN est une déclinaison de l'IMS au niveau de l'entreprise et du Cloud computing.

Switch Cisco

Certains spécialistes ont déclaré que le SDN était l'arme anti-Cisco par excellence. L'industriel a bâti sa réussite sur la fourniture de boîtiers. Or, le SDN les relègue au second plan, favorisant le contrôleur, cerveau du système. Celui-ci peut piloter des équipements de différentes marques, dans la mesure où ils respectent les normes de l'ONF.

Mais encore faut-il qu'il transmette ces ordres du contrôleur au réseau, via un protocole et des interfaces de programmation (API). Et c'est là que les choses se gâtent car si tout le monde est d'accord sur le principe, sa mise en œuvre peut varier d'un constructeur à l'autre. L'ONF a défini le protocole OpenFlow, aujourd'hui en version 1.3. Brocade, par exemple, l'a adopté. Le constructeur l'estime aujourd'hui assez stable (après la rafale de versions successives tous les six mois) et offrant suffisamment de possibilités. Il l'intégrera dans ses équipements dès 2014.

En revanche, pour Juniper, il n'est pas assez mûr et n'offre que des performances réduites. Pour le moment, il lui préfère le protocole BGP (Border Gateway Protocol) pour la partie contrôle et MPLS (MultiProtocol Label Switching) pour la partie transport. Parallèlement, il travaille avec des partenaires sur sa propre solution Contrail, issue du rachat de la société éponyme en décembre 2012. Il l'estime mieux taillée pour les grands Clouds publics et la met en OpenSource. Tout en offrant une interface OpenFlow sur ses équipements, notamment sur le récent Nexus 9000, Cisco a développé également sa propre solution, OnePK, possédant des extensions propriétaires. Cependant, on observe qu'OpenFlow semble de plus en plus enclin à rallier les suffrages, avec des poids lourds comme HP, IBM, Ericsson, NEC ou Alcatel-Lucent.

diagramme SDN selon HP

Le concept de SDN, ici résumé par HP

Cette boite magique que constitue le contrôleur est en fait un logiciel qui se substitue au logiciel de commande inclus dans chaque équipement réseau. Il devient donc possible de prendre les commandes d'un réseau entier, même hétérogène, au lieu d'avoir à intervenir sur chaque boîtier. On peut résumer les fonctions de base du contrôleur en trois catégories : gérer la commutation et le routage des trames en appliquant des règles prédéfinies, effectuer cette tâche dynamiquement et en fonction des besoins en capacité, enfin, pouvoir être programmé, afin de les exécuter à des moments déterminés par l'administrateur, en fonction des exigences métier par exemple.

Pour le gestionnaire du réseau, cela se traduit par : la suppression des délais de d'allocation de réseau, la modification des bandes passantes à la volée, l'adaptation du paramétrage réseau aux besoins des applications et une réduction de la complexité de gestion des réseaux. A ces fonctions de base, certains constructeurs et éditeurs ajoutent des applications qui enrichissent les possibilités du contrôleur, ce qui nécessite un protocole de communication avec les équipements propriétaire. C'est notamment le cas de Cisco, qui propose sur ses machines une interface standard OpenFlow et une autre Cisco OnePK.

IBM et HP possèdent leur propre contrôleur. Juniper également, avec Contrail. Cisco en annonce deux. Le premier, c'est le XNC (eXtensible Network Controller). Récemment, il vient d'annoncer l'APIC (Application Policy Infrastructure Controller), cœur de sa nouvelle architecture ACI (Application Centrix Infrastructure), à la fois logicielle et matérielle puisqu'elle s'appuie notamment sur le commutateur Nexus 9000. Brocade ne développera pas de contrôleur. Parmi ceux du marché, on trouve notamment Big Switch Networks et son Big Network Controller.

Juniper extrait de la documentation Contrail


Au départ, il s'agissait d'un projet entre Rackspace Hosting et la NASA, qui ont lancé, conjointement, un nouveau projet OpenSource en 2010 dans le domaine du cloud computing sous le nom d'OpenStack, sous licence Apache. Puis sont venus se greffer d'autres membres. Trois ans plus tard, la Fondation OpenStack compte 12 000 membres. Environ 1 000 d'entre eux écrivent du code et les autres réalisent les tests des différentes versions (une environ tous les six mois), produisent la documentation ou s'occupent des aspects juridiques.

Parmi les membres, beaucoup d'opérateurs tels que Belgacom, KPN, Swisscom, Deutsche Telekom, pour ne citer que quelques européens. On trouve également des poids lourds de l'industrie, à l'instar de Cisco, IBM ou HP, qui a bâti dessus son offre HP Public Cloud. En France, on compte OVH, ainsi que hébergeur Cloud Numergy qui a rallié récemment la communauté.

Tout a commencé avec la virtualisation, en créant plusieurs instances (machines virtuelles ou VM) sur une même machine physique par le biais d'un hyperviseur. Dans un fonctionnement normal, les serveurs applicatifs échangent des informations avec les bases de données, les baies de stockage et reçoivent des requêtes des utilisateurs, notamment par le biais du Web. On regroupe alors ces VM dans des VLAN. Souvent, un VLAN est affecté à une direction : Finances, Ressources humaines, Commerciale....

Ces VLAN doivent communiquer entre eux, par exemple, entre la Finance et les Ressources humaines pour gérer la paye entre le 25 et le 30 du mois. Cela ne pose pas vraiment un problème lorsqu'il ne s'agit que de quelques dizaines de VLAN. Mais dans un Cloud public, on trouve des milliers d'applications et des dizaines de milliers d'utilisateurs. D'où l'intérêt d'automatiser ces opérations : c'est le rôle d'OpenStack. « Celui-ci crée automatiquement les VM, en fonction des besoins, au lieu de le faire manuellement, ce qui fait gagner beaucoup de temps, par exemple dans la configuration des machines, l'affectation d'adresse IP... », déclare Ahmed Guétary, directeur technique chez Juniper Networks France.

Pour faire communiquer ces VLAN entre eux. On crée alors un réseau surcouche, dit « Overlay ». « Le but est de créer des tunnels de niveau 3 », déclare David Lemery. « En effet, à l'intérieur des entreprises les tunnels pour déplacer les machines virtuelles sont de niveau 2. Mais il faut du niveau 3 pour faire passer les paquets IP et traverser les routeurs ».

Là, plusieurs solutions s'affrontent. L'une des plus connues est VXLAN (Virtual Extensible LAN), fruit de la collaboration entre Cisco VMware, Citrix et Red Hat. Il utilise une encapsulation dans UDP (User Datagram Protocol). Cisco l'incorpore dans son routeur virtuel Nexus 1000V. La surprise vient de WMware, grand partenaire de Cisco depuis des années, et qui propose aujourd'hui NSX, solution directement rivale, née du rachat, l'an passé, de Nicira, pour 1,25 milliard de dollars. Cependant, cette acquisition pose un dilemme à VMware, car Nicira a développé une autre technologie de tunneling : STT (Stateless Transport Tunneling), aujourd'hui plus économe en CPU, fondée sur TCP, qui fonctionne sur Xen ou KVM (Linux). VMWare va sans doute garder les deux : les hébergeurs et les clouds publics utilisent volontiers KVM, tandis qu'ESX domine dans l'entreprise. VMware pourrait également introduire STT dans le commutateur virtuel d'ESXi et néanmoins garder VXLAN afin de ne pas se couper d'une solution qui a le vent en poupe.

Officiellement, les relations entre Cisco et VMware sont toujours au beau fixe, notamment pour rassurer leurs millions de clients communs. Cependant, certains n'hésitent pas à dire que cette belle entente n'est plus que de façade. Ainsi, si Dell, HP et Juniper font partie de la liste des adopteurs de NSX, Cisco en est un absent remarqué. Parmi les autres solutions, NVGRE (Network Virtualization using Generic Routing Encapsulation). Microsoft en est le principal promoteur, avec Arista Networks, Broadcom, Dell, Emulex, Intel et HP. Citons également NVO3 (Network Virtualization Overlays). Pour mettre de l'ordre dans cette belle pagaille, l'IETF (Internet Engineering Task Force) travaille à la normalisations du tunneling.


Diagramme Opestack


Puisque que OpenStack couvre également le stockage, on parle désormais de SDS (Software-Defined Storage). Le principe se calque sur celui du SDN : découpler la partie matérielle de celle du logiciel qui pilote les baies de stockage. Résultat, les entreprises pourront avoir des environnements hétérogènes et ne plus se soucier de problème de sur-capacité ou sous-capacité par système, puisque c'est le logiciel SBS qui le gérera. Celui-ci sera capable d'exécuter automatiquement des réplications, de l'allocation fine de ressources, des sauvegardes ou des restaurations.

Là aussi, l'automatisation apporte plus de souplesse. Attention à ne pas confondre SDS avec virtualisation du stockage. Ce dernier consiste à regrouper plusieurs équipements pour n'en former qu'un seul logique (adresse IP unique par exemple). Cette technique est souvent utilisée dans les environnements SAN (Storage Area Network). Un peu à l'image de ce qui se passe dans les réseaux, lorsque qu'une pile de commutateurs empilables ne forme qu'un seul commutateur virtuel.

Résultat de ces évolutions dans le réseau entre machines virtuelles, VWware a lancé l'idée du SDDC (Software-Defined Data Center), dans lequel les fonctions de routage et même de répartiteur de charge ou de sécurité seraient virtualisées et non plus installées dans des machines physiques.

La dernière version d'OpenStack se nomme Havana, annoncée fin octobre 2013, et qui compte 400 nouvelles fonctions. Il s'agit de la huitième depuis la toute première, Austin, en octobre 2010. Chaque version porte le nom de la ville où la conférence s'est tenue.

Pour réaliser ces opérations, le contrôleur OpenStack dispose de plusieurs composants, dont les principaux sont Nova pour la partie serveurs et applications, Cinder ou Swift pour la partie stockage (l'un fonctionnant en mode fichiers et l'autre en mode blocs). On trouve également Horizon (Dashboard, interface Web de paramétrage et de gestion), Keystone (gestion de l'identité). D'autres sont en préparation. Mais il ne faut surtout pas oublier un composant essentiel, Neutron (ex Quantum), pour la gestion des réseaux.

Et c'est là qu'OpenStack rencontre le SDN. Certes OpenStack possède une « patte » réseau. Son but : fournir une connectivité « as a service » entre interfaces d'équipements (par exemple Network Interface Controller ou cartes réseaux) gérés par d'autres services OpenStack. Mais Quantum/Neutron ne « parle » pas directement aux commutateurs, sauf à y ajouter un « plug-in » spécifique. Pour sa part, OpenFlow, s'il communique avec les équipements réseaux, ne possède pas de couche d'abstraction réseau, sauf, là encore, à ajouter un « plug-in ». Les deux se complètent donc : l'un possède ce qui manque à l'autre.

Dès lors, le module Quantum/Neutron est capable de s'interfacer, via une API, au contrôleur SDN, qui configurera automatiquement le réseau physique en fonction des besoins exprimés par les services OpenStack. Ce beau montage ne séduit néanmoins pas tout le monde. « OpenFlow et/ou Opendaylight ne sont pas encore assez mûrs pour que nous les déployions dans notre architecture », estime Patrick Debus-Pesquet, directeur technique de Numergy. « Nous préférons, pour le moment, en rester à la gestion directe des VLAN. 2014 sera une année de convergence pour ces nouveaux standards ».

Il ne faudrait cependant pas croire que l'Open Networking Foundation (ONF) pour le SDN et l'OpenStack Foundation pour les infrastructures Cloud, soient les seules à pousser leurs solutions. Ainsi, dans le SDN, la confrontation est vive entre l'ONF et l'OpenDaylight. Ce projet, lancé en février 2013 par la Linux Foundation, rassemble d'ailleurs bon nombre de membres communs avec l'ONF, dont Arista Networks, Big Switch Networks, Brocade, Cisco, Citrix, Ericsson, HP, IBM, Juniper Networks, Microsoft, NEC.... Encore que Juniper semble prendre ses distances depuis le lancement de son propre projet Contrail. En outre, alors que pour l'ONF la pierre angulaire du SDN est le contrôleur, pour Nicolas Jacques, le nouveau directeur général d'OpenDaylight, qui vient de chez VMware, « toutes ces entreprises réinventent la roue. La valeur ajoutée réside dans la manière dont vous reliez ce contrôleur aux services réseaux d'un côté et aux équipements de l'autre ».

Nicira Network Virtualisation Platform

La virtualisation du réseau selon Nicira, racheté par VMWare à l'été 2012


L'ONF possède pour le moment quelques longueurs d'avance. Même chose côté OpenStack avec l'arrivée de CloudStack, en 2012. C'est le fruit du rachat, en juillet 2011, de Cloud.com par Citrix. En 2012, il en a fait don à l'Apache Software Foundation (ASF). Citrix optait alors pour Apache 2.0 et cessait son engagement dans OpenStack. CloudStack fonctionne sur les hyperviseurs tels que KVM, vSphere et XenServer/XCP. En outre, CloudStack met en avant sa compatibilité avec les API AWS (Amazon Web Services). Évidemment, l'OpenStack Foundation a réagi en affirmant que son projet était également compatible avec AWS. Malgré ces bise-billes, CloudStack a adopté, dans sa version 3.0, le module Swift (stockage) d'OpenStack.

La révolution en marche


OpenStack, CloudStack, OpenFlow, OpenDaylight... Née de la virtualisation, la révolution dans le monde de l'IT est en marche et ne semble pas prête de s'arrêter. Les initiatives se poursuivent. Témoin, la création, en octobre 2012, du groupe NFV (Network Functions Virtualisation, au sein de l'ESTI. NFV concerne tout particulièrement les opérateurs et les fournisseurs de services. Jusqu'à présent, les équipements réseaux gardaient, malgré les affirmations des constructeurs, une bonne part de côté propriétaire, même s'ils pouvaient interopérer dans les fonctions de base normalisées (exemple, exécuter le protocole de routage BGP ou Border Gate Protocol), conçu pour les très grands réseaux et notamment Internet. De plus, ajouter un équipement ou le déplacer d'un site à l'autre prenait du temps, car ces tâches s'effectuaient manuellement, et se traduisait en investissements souvent lourds.

Or, avec l'arrivée du Cloud, la création de nouveaux services Internet et la concurrence entre acteurs ont fait qu'opérateurs et fournisseurs de services recherchent des gains de temps et d'investissements. Là aussi, la virtualisation s'imposait, afin de répondre aux besoins avec souplesse et rapidité. Ainsi, équilibreurs de charge, pare-feux, routeurs ont commencé à être virtualisés. Mais, comme au début de la virtualisation dans les data centers, l'opération s'effectuait manuellement, donc manquait de réactivité. NFV vise à automatiser le processus, en fonction des besoins nécessités par le trafic : par exemple, « allumer » automatiquement un SBC (Session Border Controller) supplémentaire, si le trafic VoIP croît. SDN, plutôt taillé pour le campus, et NFV, orienté réseau d'opérateur, peuvent être utilisés indépendamment.

Datacenter Microsoft Dublin

Un datacenter Microsoft à Dublin, qui accueille notamment les infrastructures de Windows Azure

Cependant, comme le souligne l'ETSI, SDN et NFV sont très complémentaires, puisqu'il s'agit, dans les deux cas, de virtualiser les équipements réseau. L'opérateur peut tirer avantage du SDN dans son cœur de réseau. Finalement, toutes ces évolutions vont conduire, prédisent certains, au SDE (Software Defined Eveything), englobant sous un seul chapeau toutes ces initiatives... et celles à venir.

Car la révolution ne s'arrête pas là. « Nous travaillons sur des couches d'orchestration supérieures telles TOSCA », déclare Christian Comtat, directeur Cloud Computing chez IBM France. Le comité technique de TOSCA (Topology and Orchestration Specification for Cloud Applications), créé en avril 2013, vise en effet, notamment, à faciliter le portage d'une architecture Cloud sur n'importe quel Cloud compatible, à réaliser une migration en douceur d'applications déjà développées vers le Cloud et, finalement, tendre vers l'interopérabilité entre Cloud. D'ailleurs le slogan d'OASIS (Advancement of Structured Information Standards), consortium, qui pilote TOSCA, n'est-il pas : La promotion des standards ouverts dans la société de l'information ? Tout un programme.



jeudi 4 juin 2015

Gestion des journaux - 2ème partie: utilisation de Tenshi- Gestion et supervision réseau



D'abord assurez vous que vos routeurs sont configurés pour envoyer les
logs (journaux) à votre serveur
 Mettre à jour la configuration de syslog-ng
Si vous ne l'avez pas encore fait, loggez vous sur votre machine virtuelle et devenez l'utilisateur root:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo bash
#
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Configurer syslog-ng pour qu'il réception et sauvegarde les journaux de tout routeur dans un seul fichier, pour faciliter l'inspection et l'analyse:
Éditer `/etc/syslog-ng/conf.d/10-network.conf`,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# cd /etc/syslog-ng/conf.d/
# editor 10-network.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
... et ajouter ceci avant la dernière accolade fermante ( }; ):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
file("/var/log/network/everything", owner(root) group(root)
perm(0644));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Au final, le contenu de ce fichier doit ressembler à:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
filter f_routers { facility(local0); };
log {
source(s_src);
filter(f_routers);
destination(routers);
};
destination routers {
file("/var/log/network/$YEAR/$MONTH/$DAY/$HOST-$YEAR-$MONTH-$DAY-
$HOUR.log"
owner(root) group(root) perm(0644) dir_perm(0755) create_dirs(yes)
template("$YEAR $DATE $HOST $MSG\n"));
file("/var/log/network/everything", owner(root) group(root)
perm(0644));
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ceci activera la collecte de TOUT messages syslog qui correspond à la
catégorie (facility) local0 et le stockage dans un seul fichier, afin que nous puissions lancer un script de supervisision sur ces messages.
Assurez-vous d'avoir sauvé le fichier et quittez l'éditeur.
Redémarrez syslog-ng afin qu'il charge la nouvelle configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# service syslog-ng restart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Rotation des journaux
Créez un script qui effectuera la remise à zéro du fichier des journaux
afin qu'il ne devienne pas trop gros (copier & coller).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# editor /etc/logrotate.d/everything
/var/log/network/everything {
daily
copytruncate
rotate 1
postrotate
/etc/init.d/tenshi restart
endscript
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Puis sauvez le fichier et quitter l'éditeur.
## Installation de tenshi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# apt-get install tenshi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Configuration de tenshi
Configuration de Tenshi pour que celui-ci vous envoie des alarmes par mail quand le routeur est reconfiguré (copier & coller):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# editor /etc/tenshi/includes-available/network
set logfile /var/log/network/everything
set queue network_alarms tenshi@localhost sysadm@localhost [*/1 * *
* *] Log check
group_host 10.10
network_alarms SYS-5-CONFIG_I
network_alarms PRIV_AUTH_PASS
network_alarms LINK
group_end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Puis sauvez le fichier et quitter l'éditeur.
Créer un lien symbolique pour que le fichier de configuration de Tenshi soit chargé (copier & coller):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# ln -s /etc/tenshi/includes-available/network /etc/tenshi/includesactive
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Enfin, redémarrer Tenshi:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# service tenshi restart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Tester Tenshi
Loggez vous sur votre routeur, et effectuez des commandes "config" diverses (Exemples ci-dessous):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ ssh cisco@rtrX [où "X" est le numéro de votre
routeur]
rtrX> enable
Password: <password>
rtrX# config terminal
rtrX(config)# int FastEthernet0/0
rtrX(config-if)# description Description Change for FastEthernet0/0 for Tenshi
rtrX(config-if)# ctrl-z
rtrX# write memory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ne vous déconnectez pas immédiatement - comme dans les exercices syslog-ng précédemment, effectuez un shutdown / no shutdown de
l'interface loopback:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtrX# conf t
rtrX(config)# interface Loopback 999
rtrX(config-if)# shutdown
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
attendre quelques secondes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtrX(config-if)# no shutdown
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Finir et sauvez la config ("write mem"):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtrX(config-if)# CTRL-z (équivalent à 'exit' 2 fois)
rtrX# write memory
rtr1# exit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vérifiez que vous recevez des mails de la part de Tenshi pour l'utilisateur sysadm. Une méthode de vérification rapide est de regarder dans le répertoire du mail:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ ls -l /var/mail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
* Note: Tenshi inspecte /var/log/network/everything une fois par minute,donc vous devrez attendre jusqu'à une minute pour que le mail arrive jusqu'à l'utilisateur sysadm.
Assurez vous que vous vous êtes loggés en tant que sysadm (et pas root).
Soit vous ouvrez une nouvelle session avec ssh sur votre machine virtuelle,
soit vous quittez l'utilisateur root (exit).
Ensuite, faire:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ mutt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Utilisez les flèches pour sélectionner un message envoyé par "tenshi@localhost", puis appuyer sur `ENTER` pour le lire, et `q` pour revenir à l'index, et `q` à nouveau pour quitter mutt.
Si les mails n'arrivent pas, vérifier alors les choses suivantes:
* Les journaux arrivent-ils dans le fichier `/var/log/network/ everything` ?
$ tail /var/log/network/everything
* Ces messages de logs montrent-il bien un nom de machine tel que 'rtr5',
voire une adresse IP comme 10.10.5.254 ? Souvenez-vous, tenshi est configuré de telle façon qu'il ne regarde que les noms de machine commençant pas 'rtr ou bien les IP commençant par '10.10' (ceci
dépend de la façon dont vous avez configuré tenshi)
* Vérifiez la configuration tenshi. Redémarrer tenshi si vous la modifiez.
* Si vous êtes coincé quand même, demander à un instructeur de vous aider.
## Faculcatif: Ajouter une nouvelle règle à Tenshi
Voyez si vous arrivez à ajouter une nouvelle règle à Tenshi pour qu'un email soit envoyé si un individu essaye de faire "enable" sur votre routeur, avec un mauvais mot de passe.
Indices:
* "PRIV_AUTH_FAIL" est la chaîne que Cisco IOS utilise dans les messages dans ce cas.
* Pour tester votre nouvelle règle, connectez vous à votre routeur, tapez "enable" suivi d'un mot de passe incorrect

Utilisation de syslog-ng-Gestion et surveillance de réseau



Notes :
------
* Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant
qu'utilisateur root.
* Les commandes précédées de "#" signifient que vous devez
travailler
en tant qu'utilisateur root.
* Les commandes comportant des lignes de commande plus spécifiques
(par exemple "RTR-GW>" ou "mysql>") signifient que vous exécutez
des commandes sur des équipements à distance, ou dans un autre
programme.

Exercices
---------
Veuillez identifier les participants qui utilisent le même routeur que vous, s'il y'en a. Constituez un groupe et faites ensemble l'exercice suivant. Il s'agit de désigner une personne pour se
connecter au routeur de votre groupe, mais chacun d'entre vous participera à la configuration effective.
1. Configurez votre routeur virtuel afin qu'il envoie des messages syslog à votre serveur :
Vos routeurs sont capables d'envoyer des messages syslog à de multiples destinations, ainsi un routeur peut envoyer des messages à 4 voire 5 destinations différentes. Nous devons donc configurer le routeur pour qu'il envoie des messages à chacun des PC de votre groupe.
Vous allez vous connecter en SSH au routeur de votre groupe et effectuer les opérations suivantes :
$ ssh cisco@10.10.X.254
rtrX> enable
rtrX# config terminal
Répétez la commande "logging 10.10.X.X" pour chaque PC de votre groupe. En d'autres termes, si votre groupe est sur le routeur 6 et que vous utilisez les PC 18, 20, 22, 24 et 26 vous répéterez la
commande à cinq reprises avec l'IP de chaque machine (10.10.6.18, 10.10.6.20, et ainsi de suite).
rtrX(config)# logging 10.10.X.X
rtrX(config)# logging facility local5
rtrX(config)# logging userinfo
rtrX(config)# exit
rtrX# write memory
Regardons le résumé de la configuration des journaux (logs) avec 'show logging'
rtrX# show logging
Déconnectez-vous du routeur (exit)
rtrX# exit
C'est fait. Le routeur devrait maintenant envoyer des paquets UDP SYSLOG à votre PC sur le port 514. Pour vérifier, ouvrez une session sur votre PC et effectuez l'opération suivante :
$ sudo bash
# apt-get install tcpdump (ne vous inquiétez pas si il est déjà installé)
# tcpdump -e -s0 -ni eth0 port 514
Puis demandez à une personne de votre groupe de se connecter au routeur et d'entrer les commandes suivantes :
$ ssh cisco@10.10.X.254
rtrX> enable
rtrX# config terminal
rtrX(config)# exit
rtrX> exit
Des informations de TCPDUMP devraient s'afficher sur l'écran de votre PC. Celles-ci devraient ressembler à ce qui suit :
02:20:24.942289 ca:02:0d:b3:00:08 > 52:54:4a:5e:68:77, ethertype IPv4 (0x0800),
length 144: 10.10.0.6.63515 > 10.10.0.250.514: SYSLOG local5.notice, length: 102
02:20:24.944376 ca:02:0d:b3:00:08 > c4:2c:03:0b:3d:3a, ethertype IPv4 (0x0800),
length 144: 10.10.0.6.53407 > 10.10.0.241.514: SYSLOG local5.notice, length: 102
Vous pouvez maintenant configurer le logiciel de journalisation sur votre PC afin qu'il reçoive ces informations et les enregistre dans un nouvel ensemble de fichiers :
2. Installez syslog-ng
Ces exercices s'effectuent en tant qu'utilisateur root. Si vous n'êtes pas un utilisateur root sur votre machine, vous pouvez le devenir en tapant :
$ sudo bash
# apt-get install syslog-ng
2. Éditez /etc/syslog-ng/syslog-ng.conf
Localisez les lignes
source s_src {
system();
internal();
};
et remplacez-les par :
source s_src {
system();
internal();
udp();
};
Sauvez le fichier et quitter.
Maintant, créez une configuration pour nos logs d'équipement réseau:
# cd /etc/syslog-ng/conf.d/
# editor 10-network.conf
Dans ce fichier, copier et coller les lignes suivantes:
filter f_routers { facility(local5); };
log {
source(s_src);
filter(f_routers);
destination(routers);
};
destination routers {
file("/var/log/network/$YEAR/$MONTH/$DAY/$HOST-$YEAR-
$MONTH-$DAY-$HOUR.log"
owner(root) group(root) perm(0644) dir_perm(0755)
create_dirs(yes)
template("$YEAR $DATE $HOST $MSG\n"));
};
Sauvez le fichier et quitter.
3. Créez le répertoire /var/log/network/
# mkdir /var/log/network/
4. Redémarrez syslog-ng:
# service syslog-ng restart
5. Tester syslog
Pour s'assurer qu'il y ait des messages syslog, reconnectez vous au routeur et effectuez des commandes "config", puis déconnectez vous,
c'est à dire:
# ssh cisco@10.10.X.254
rtrX.ws.nsrc.org> enable
rtrX.ws.nsrc.org# config terminal
rtrX.ws.nsrc.org(config)# exit
rtrX.ws.nsrc.org> exit
Veillez à vous déconnecter du routeur. Si un trop grand nombre de personnes se connectent et oublient de se déconnecter, d'autres ne pourront pas accéder au routeur.

6. Sur votre PC, regardez si des messages commencent à apparaître sous /var/log/network/2015/.../
$ cd /var/log/network
$ ls
$ cd 2015
$ ls
... ceci vous montrera le contenu du répertoire pour le mois en cours
... faites 'cd' et le nom de ce répertoire
$ ls
... recommencer au niveau suivant (le jour du mois)
$ ls
En cas de problème
------------------
Si aucun fichier n'apparait sous le répertoire /var/log/network, alors
une autre commande à essyer pendant qu'on est loggé sur le routeur, en
mode configuration, est de faire un shutdown / no shutdown sur une
interface
Loopback (locale), par eemple:
$ ssh cisco@rtrX
rtrX> enable
rtrX# conf t
rtrX(config)# interface Loopback 999
rtrX(config-if)# shutdown
Attendre quelques secondes
rtrX(config-if)# no shutdown
Puis quitter, et sauver la configuration ("write mem"):
rtrX(config-if)# exit
rtrX(config)# exit
rtrX# write memory
rtr1# exit
Vèrifiez les logs sous '/var/log/network'
# cd /var/log/network
# ls
... suivre la hiérarchie des répertoires.
Toujours pas de logs ?
Essayez la commande suivante pour envoyer un message de log en local:
# logger -p local0.info 'Hello World!'
Si aucun fichier n'a été créé sous '/var/log/network', alors vérifier la configuration pour des fautes de frappe. Ne pas oublier de redémarrer le service syslog-ng à chaque fois que vous changez la configuration.
Quelles autres commandes pouvez vous employer sur le routeur (ATTENTION!) qui provoqueront l'envoi de messages syslog ? Vous pouvez essayer de vous loger sur le router et taper un mot de passe incorrect pour "enable" Assurez-vous de faire un "ls" dans le répertoire de vos logs pour
voir si des logs ont été créés à un moment ou un autre

Installation des outils nfdump et NfSen- Suite Supervision Netflow


Objectifs
* Apprendre à installer les outils nfdump et NfSen
Notes
* Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant qu'utilisateur root.
* Les commandes précédées de "#" signifient que vous devez travailler en tant qu'utilisateur root.
* Les commandes comportant des lignes de commande plus spécifiques
(par exemple "RTR-GW>" ou "mysql>") signifient que vous exécutez des commandes sur des équipements à distance, ou dans un autre programme.
Prérequis
Il est attendu que vous ayez déja configuré votre routeur pour exporter les flux vers un PC dans votre groupe et que votre groupe voisin a configuré leur routeur pour qu'il exporte les flux vers le même PC.
Configurer votre collecteur

  • Installer Nfdump et les outils associés.

Nfdump fait partie des outils de collection Netflow. Nous allons installer plusieurs outils supplémentaires dont nous aurons besoin un peu plus tard.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo apt-get install rrdtool mrtg librrds-perl librrdp-perllibrrd-dev \libmailtools-perl php5 bison flex
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Si on vous demande "Make /etc/mrtg.cfg owned by and readable only by root?"
choisir "<Yes>" et appuyer sur ENTREE pour continuer.
 Compilation et installation de nfdump
Il nous manque des outils: nfcapd, nfdump, nfreplay, nfexpire, nftest, nfgen
Il y a un paquetage dans Ubuntu mais celui ci est trop ancien.
Nous avons donc re-compilé un paquetage plus récent, prêt à être
téléchargé du NOC:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
cd /tmp/
wget http://noc.ws.nsrc.org/downloads/nfdump_1.6.6-1_i386.deb
wget http://noc.ws.nsrc.org/downloads/nfdump-flowtools_1.6.6-1_i386.deb
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Installation:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
sudo dpkg --install nfdump_1.6.6-1_i386.deb
sudo dpkg --install nfdump-flow-tools_1.6.6-1_i386.deb
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

  • Test et installation de nfcapd et nfdump

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
mkdir /tmp/nfcap-test
nfcapd -E -p 9001 -l /tmp/nfcap-test
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
... au bout d'un certain temps, une série de flux devrait être
affichée
sur votre écran.
Arrêtez l'outil avec CTRL-C, et inspectez le contenu de /tmp/nfcaptest
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ ls -l /tmp/nfcap-test
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vous devriez voir un ou plusieurs fichiers nommés nfcapd.2013xxyyzz
Inspectez ce(s) fichier(s) avec nfdump:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
nfdump -r /tmp/nfcap-test/nfcapd.2013xxyyzz | less
nfdump -r /tmp/nfcap-test/nfcapd.2013xxyyzz -s srcip/bytes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vous devriez y trouvez quelques informations utiles :)


  • Installation et configuration de NfSen

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
cd /usr/local/src
sudo wget http://noc.ws.nsrc.org/downloads/nfsen-1.3.6p1.tar.gz
sudo tar xvzf nfsen-1.3.6p1.tar.gz
cd nfsen-1.3.6p1
sudo wget http://noc.ws.nsrc.org/downloads/nfsen-socket6.patch
sudo patch -p0 < nfsen-socket6.patch
cd etc
sudo cp nfsen-dist.conf nfsen.conf
sudo editor nfsen.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ajuster la variable $BASEDIR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$BASEDIR="/var/nfsen";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ajuster le chemin où résident les outils:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# nfdump tools path
$PREFIX = '/usr/bin';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Configurer le bon utilisateur afin qu'Apache puisse accéder aux fichiers:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$WWWUSER = 'www-data';
$WWWGROUP = 'www-data';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Paramétrer la taille du buffer (tampon) à une petite taille, pour qu'on reçoive des données rapidement:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
# Receive buffer size for nfcapd - see man page nfcapd(1) $BUFFLEN = 2000;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Trouver la section avec la définition des sources (%sources), et la modifier ainsi:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
%sources=(
'rtr1' => {'port'=>'9001','col'=>'#0000ff','type'=>'netflow'},
'rtr2' => {'port'=>'9002','col'=>'#00ff00','type'=>'netflow'},
);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Maintenaint, sauver le fichier et quitter l'éditeur.

  • Créer l'utilisateur netflow sur le système

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo useradd -d /var/netflow -G www-data -m -s /bin/false netflow
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

  • Installer NfSen et commencer à l'utiliser

Assurons nous que nous sommes au bon endroit:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ cd /usr/local/src/nfsen-1.3.6p1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Enfin, on peut installer:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo perl install.pl etc/nfsen.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Appuyer sur ENTREE quand on vous demande le chemin de Perl.
## Installer le script de démarrage (initialisation)
Afin que nfsen démarre et s'arrête automatiquement quand votre machine démarre, ajoutez un lien depuis le répertoire init.d pointant sur le script d'initialisation de nfsen:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
sudo ln -s /var/nfsen/bin/nfsen /etc/init.d/nfsen
sudo update-rc.d nfsen defaults 20
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Démarrer nfsen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
sudo service nfsen start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
## View flows via the web:
La page nfsen se trouve ici:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
http://pcX.ws.nsrc.org/nfsen/nfsen.php
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Si vous voyez un message similaire:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Frontend - Backend version missmatch!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
... ce n'est pas grave, il suffit de recharder la page et il disparaît.
Fini! Continuons avec le labo 3, exercice3-NfSen-PortTracker
* NOTES:
## Ajour de sources supplémentaires
Pour ajouter de nouvelles sources à nfsen, il suffit de faire ainsi:
- rédiger /var/nfsen/etc/nfsen.conf, and ajouter les sources, par
exemple:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
%sources = (
'rtrX' => { 'port' => '900X', 'col' => '#0000ff', 'type' =>'netflow' },
'rtrY' => { 'port' => '900Y', 'col' => '#00ff00', 'type' =>'netflow' },
'rtr10' => { 'port' => '9010', 'col' => '#ff0000', 'type' =>'netflow' }, # <- new);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

  • - Reconfigurer NfSen.

Il faudra faire ceci chaque fois que aller modifier /var/nfsen/etc/
nfsen.conf:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo /etc/init.d/nfsen reconfig
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vous devriez alors voir:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
New sources to configure : rtr10
Continue? [y/n] y
Add source 'rtr10'
Reconfig done!

Supervision Netflow- Gestion et Surveillance de réseau

Objectifs
* Apprendre à exporter des flux depuis un routeur Cisco
Notes
* Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant
qu'utilisateur root.
* Les commandes précédées de "#" signifient que vous devez travailler en tant qu'utilisateur root.
* Les commandes comportant des lignes de commande plus spécifiques (par exemple "RTR-GW>" ou "mysql>") signifient que vous exécutez des commandes sur des équipements à distance, ou dans un autre programme.
Exporter les flux depuis un routeur Cisco
Pendant cet exercice, on vous demande d'exporter les flux depuis votre routeur vers deux PC dans la classe. Vous devez travaiiler en groupe. C'est à dire, pour le groupe 1, les utilisateurs des
pc1, pc2, pc3 et pc4 doivent travailler ensemble, et choisir une machine sur laquelle les flux arriveront.
Par ailleurs, vous exporterez un second flux depuis le routeur de votre groupe, vers le groupe voisin du vôtre. Par exemple, si vous êtes dans le groupe 1, et si le groupe 2 a désigné le pc5 comme
celui qui recevra les flux, alors vous configurerez votre routeur pour qu'il utilise pc5 comme seconde destination pour les flux. Et si vous choisissez pc1 pour recevoir les flux de votre routeur
(rtr1), alors il devra également recevoir des flux du routeur 2 (rtr2).

Pour résumer:
Group 1, Routeur 1
-----------------
rtr1 ==> pc1 port 9001
rtr1 ==> pc5 port 9002
Group 2, Routeur 2
-----------------
rtr2 ==> pc5 port 9001
rtr2 ==> pc1 port 9002
Choisir la meilleure combinaison pour vos groupes.
On peut faire ça de la manière suivante:
* groupes 1 et 2
* groupes 3 et 4
* groupes 5 et 6
* groupes 7 et 8
Si il y a un groupe 9, voyez avec les instructeurs.
Si vous avez 3 groupes, on peut faire:
rtr1 ==> pc1 port 9001
rtr1 ==> pc5 port 9001
rtr2 ==> pc5 port 9002
rtr2 ==> pc9 port 9001
rtr3 ==> pc9 port 9002
rtr3 ==> pc1 port 9002
... la règle étant:
- chaque routeur doit exporter vers deux destination: une dans votre groupe, une dans un autre groupe
- chaque PC désigné dans le groupe reçoit deux flux: un de votre groupe, et un depuis un autre groupe
Configuration:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

$ ssh cisco@rtr1.isetn.rnu.tn
rtr1.isetn.rnu.tn> enable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Si ssh n'est pas encore activé:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ telnet 10.10.1.254
Username: cisco
Password:
Router1>enable
Password:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Rappel - ceci est un EXEMPLE pour le cas suivant - à vous d'adapter!
rtr1 ==> pc1 on port 9001
rtr1 ==> pc5 on port 9002
Les autres groupes (2,3,4,5,6,7,8,9) feront différemment.
La section suivante active l'export des flux sur l'interface FastEthernet 0/0.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.isetn.rnu.tn# configure terminal
rtr1.isetn.rnu.tn#(config)# interface FastEthernet 0/0
rtr1.isetn.rnu.tn#(config-if)# ip flow ingress
rtr1.isetn.rnu.tn#(config-if)# ip flow egress
rtr1.isetn.rnu.tn#(config-if)# exit
rtr1.isetn.rnu.tn#(config)# ip flow-export destination 10.10.1.1 9001
rtr1.isetn.rnu.tn#(config)# ip flow-export destination 10.10.2.5 9002
rtr1.isetn.rnu.tn#(config)# ip flow-export version 5
rtr1.isetn.rnu.tn#(config)# ip flow-cache timeout active 5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ceci découpe les flux de long durée en fragments de 5 minute. Vous pouvez choisir n'importe quel intervalle de temps entre 1 et 60 minutes. Si vous laissez la valeur par défaut de 30 minutes, vos
graphes auront des pics de traffic.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~

rtr1.ws.nsrc.org(config)# snmp-server ifindex persist

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ceci active la persistence des index SNMP de vos interfaces. C'est
pour
garantir que les valeurs de ifIndex ne changent pas si vous ajoutez
ou supprimez des modules interface à vos équipements réseau.
Maintenant, configurons les paramètres de ip flow top-talkers:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.isetn.rnu.tn(config)#ip flow-top-talkers
rtr1.isetn.rnu.tn(config-flow-top-talkers)#top 20
rtr1.isetn.rnu.tn(config-flow-top-talkers)#sort-by bytes
rtr1.isetn.rnu.tn(config-flow-top-talkers)#end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
On va maintenant vérifier ce qu'on à fait:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.ws.nsrc.org# show ip flow export
rtr1.ws.nsrc.org# show ip cache flow
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Notez la distribution de la taille des paquets. Quel sont les deux
tailles de paquets les plus présentes ?
See your "top talkers" across your router interfaces
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.isetn.rnu.tn# show ip flow top-talkers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Si cela a l'air ok, alors écrire la configuration running-config
dans
la NVRAM (c'est à dire la configiration de démarrage):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

rtr1.isetn.rnu.tn#wr mem

Vous pouvez maintenant quitter le routeur:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
rtr1.isetn.rnu.tn#exit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Vérifier que les flux arrivent bien depuis votre routeur, jusqu'au PC
désigné pour recevoir les flux dans votre groupe.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo tcpdump -Tcnfp port 9001
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Attendez quelques secondes, et vous devriez voir quelque chose
ressemblant
à ceci:
06:12:00.953450 IP s2.isetn.rnu.tn.54538 > noc.isetn.rnu.tn.9009:
NetFlow v5, 9222.333 uptime, 1359871921.013782000, #906334, 30 recs
started 8867.952, last 8867.952
10.10.0.241/0:0:53 > 10.10.0.250/0:0:49005 >> 0.0.0.0
udp tos 0, 1 (136 octets)
started 8867.952, last 3211591.733
10.10.0.241/10:0:0 > 0.0.0.0/10:0:4352 >> 0.0.0.0
ip tos 0, 62 (8867952 octets)
[...]
Si vous utilisez Netflow v9, notez que l'exemple ci-dessus ne sera
pas
identique, comme la version de tcpdump dans Ubuntu ne décode pas
toujours
correctement le Netflow v9.
Vérifier que les flux venant du routeur de votre groupe voisi
arrivent
bien sur le PC désigné pour recevoir les flux dans VOTRE groupe (il
faut
attendre que ceux-ci soient prêts et que l'export des flux soit
activé):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
$ sudo tcpdump -Tcnfp port 9002
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
Ce labo est terminé.

Maintenant, allons faire l'exercice 2 exercise2-install-nfdumpnfsen.