Catégories
Reseau

Cisco et le routage inter VLAN

Nous allons dans ce billet mettre en place une architecture réseau basée sur des équipements Cisco (un routeur 1841 et un switch 2960). Deux réseaux LAN différents (un pour les chefs, un autre pour le peuple) seront disponibles sur le même switch (en utilisant les fonctions VLAN). Le routage (et éventuellement le filtrage) entre ces deux réseaux LAN se fera par le routeur.

Voici un schéma simplifié:

Dans la suite du billet nous utiliserons le plan d’adressage IP suivant:

  • Réseau des chefs: 192.168.1.0/24
  • Réseau du peuple: 192.168.2.0/24

Configuration du switch Ethernet (Cisco Catalyst 2960)

L’idée générale est d’associer chaque port à un des deux réseaux virtuel. Par exemple on voudra brancher le PC du chef sur le port n°1, celui de sa secrétaire sur le port n°2.

Nous allons donc dans un premier temps définir deux réseaux LAN virtuel (VLAN):

  • Réseau des chefs: VLAN id n°1
  • Réseau du peuple: VLAN id n°2

Puis associer les ports Ethernet physique à ces VLANs:

  • VLAN id n°1:  Port n°1
  • VLAN id n°2:  Port n°2

La configuration IOS est donc la suivante:

vlan 1

name CHEFS

!

vlan 2

name PEUPLE

!

interface GigabitEthernet1/0/1

description Reseau des chefs

switchport access vlan 1

switchport mode access

switchport nonegotiate

!

interface GigabitEthernet1/0/2

description Reseau du peuple

switchport access vlan 2

switchport mode access

switchport nonegotiate

Il faut ensuite configurer l’interface Ethernet (arbitrairement le port n°24) qui fera le lien vers le routeur. La caractéristique de cette interface est qu’elle doit appartenir à tout les VLANs.

  • VLAN id n°1:  Port n°1 et n°24
  • VLAN id n°2:  Port n°2 et n°24

Pour cela nous utilisons la configuration suivante:

interface GigabitEthernet1/0/24

description Trunk de tous les VLAN vers le routeur

switchport mode trunk

Il ne reste plus qu’a faire les branchements:

  • Le PC du chef (en 192.168.1.100/24) sur le port n°1
  • Le PC de la secrétaire (en 192.168.2.100/24) sur le port n°2
  • Le routeur sur le port n°24

Configuration du routeur IP (Cisco 1841)

Le routeur Cisco 1841 est un routeur LAN/LAN. Nous allons utiliser l’interface FastEthernet0/1 pour effectuer le routage inter VLAN. L’autre interface (la FastEthernet0/0) pourra, par exemple être connecté directement à la box/routeur Internet).

On commence donc par activer l’interface FastEthernet0/1 (elle doit être shutdown par défaut):

interface FastEthernet0/1

description LAN-VLANS

no ip address

duplex auto

speed auto

Ensuite on génère les interfaces virtuelles correspondantes à chacun des VLANs. Les interfaces virtuelles auront comme adresse IP:

  • 192.168.1.254 pour le VLAN 1
  • 192.168.2.254 pour le VLAN 2
interface FastEthernet0/1.1

description VLAN des chefs

encapsulation dot1Q 1

ip address 192.168.1.254 255.255.255.0

!

interface FastEthernet0/1.2

description VLAN du peuple

encapsulation dot1Q 2

ip address 192.168.2.254 255.255.255.0

Une fois la configuration en place, vous devriez sans problème pouvoir « pinguer » les machines entre elles (il n’y a pas de filtrage par défaut).

Catégories
Open-source Planet-libre Reseau

Installer un serveur TFTP pour vos Cisco

Un rapide billet pour rappeler les étapes nécessaires à la mise en place d’un serveur TFTP sur un système GNU/Linux (Debian Squeeze) afin de sauvegarder les configurations de vos routeurs Cisco.

Installation du serveur TFTPD

On utilise le paquet tftpd qui se trouve dans les dépôts Debian (commande à saisir dans un terminal root ou en utilisant la commande sudo):

apt-get install tftpd

On doit ensuite créer le répertoire ou seront stockés les fichiers des configurations Cisco (/srv/tftp dans mon cas).

mkdir /srv/tftp
chmod -R 777 /srv/tftp
chown -R nobody /srv/tftp

Si vous choisissez un autre répertoire que /srv/tftp, il faut:

  1. éditer le fichier de configuration /etc/inetd.conf et changer le répertoire de la ligne commençant par tftp
  2. Redémarrer le serveur TFTP avec la commande /etc/init.d/open-inetd restart

Création du fichier de configuration vide

TFTP est un protocole de communication de bas niveau. Il ne met pas en place de mécanisme d’authentification. La création du fichier de configuration vide doit donc se faire à partir du serveur (il est possible de changer ce comportement et ainsi de permettre au client, c’est à dire au routeur Cisco, de créer lui même le fichier mais je ne le conseille pas pour des questions de sécurité).

On va donc créer un fichier vide nommé cisco-rtr-01-confg:

touch /srv/tftp/cisco-rtr-01-confg
chmod -R 777 /srv/tftp
chown -R nobody /srv/tftp

Sauvegarde de la configuration depuis le routeur Cisco

On en vient enfin au vif du sujet: c’est à dire la sauvegarde de la configuration (IOS running) de notre Cisco sur le serveur TFTP.

# copy run tftp:
Address or name of remote host []? 192.168.0.100
Destination filename [yourname-confg]? cisco-rtr-01-confg
!!
1292 bytes copied in 0.380 secs (3400 bytes/sec)

Il faut bien sûr remplacer l’adresse 192.168.0.100 par l’adresse IP (ou le nom) de votre machine Debian ou vous avez installés TFTP.

Catégories
Reseau

Configurer un tunnel IPSec Cisco entre deux réseaux locaux

Un petit poste « pense-bête » pour configurer un tunnel IPSec avec « pre-share key » (c’est à dire une clés secrète seulement connue par les deux sites) et cryptage AES 256 bits entre deux LAN connectés à Internet par des routeurs Cisco (compatible avec IPSec…).

Configuration du routeur A

crypto isakmp policy 1
 authentication pre-share
 lifetime 86400

crypto isakmp key AZERTYUIOPQSDFGHJKLMWXCVBNAZERTY address 80.80.80.2

crypto ipsec transform-set MATS esp-aes 256 esp-sha-hmac

crypto map MAMAP 10 ipsec-isakmp
 set peer 80.80.80.2
 set transform-set  MATS
 match address IPSEC-TUN

ip access-list extended IPSEC-TUN
 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

interface FastEthernet 0/1
 crypto map MAMAP

Configuration du routeur B

crypto isakmp policy 1
 authentication pre-share
 lifetime 86400

crypto isakmp key AZERTYUIOPQSDFGHJKLMWXCVBNAZERTY address 80.80.80.1

crypto ipsec transform-set MATS esp-aes 256 esp-sha-hmac

crypto map MAMAP 10 ipsec-isakmp
 set peer 80.80.80.1
 set transform-set  MATS
 match address IPSEC-TUN

ip access-list extended IPSEC-TUN
 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

interface FastEthernet 0/1
 crypto map MAMAP
Catégories
Open-source Reseau

Analyse des flux Netflow sous GNU/Linux

Netflow est un protocole réseau créé par Cisco pour collecter des informations sur les flux IP. Nous allons dans ce billet voir comment configurer un routeur pour activer la sonde Netflow puis récupérer et analyser le résultat sur une machine GNU/Linux (Ubuntu 9.10, mais les outils sont disponibles sur l’ensemble des distributions).

Catégories
Open-source Reseau

Surveiller les interfaces de son Cisco avec Nagios

Qui veut surveiller l’état des interfaces de ses routeurs Cisco doit obligatoirement se plonger dans l’arborescence des MIB SNMP. Heureusement, Patrick Proy a eu la bonne idée d’intégrer dans un seul et même script Perl toutes les fonctions pour répondre à ce besoin.

Nous allons dans ce billet voir comment installer et tester le plugin check_snmp_int.pl puis configurer Nagios pour prendre en compte ce nouveau plugin.

Installation du plugin

Il faut dans un premier temps se rendre dans le répertoire ou les plugin Nagios sont stockés (/usr/local/libexec/nagios par exemple) puis y télécharger la dernière version du plugin (1.4.8 au moment de l’écriture de ce billet):

cd /usr/local/libexec/nagios
wget http://nagios.manubulon.com/check_snmp_int.pl

Ensuite on le rend executable par Nagios:

chown nagios:nagios check_snmp_int.pl
chmod 555 check_snmp_int.pl

Enfin on vérifie que l’utilisateur Nagios (ou celui qui doit lancer Nagios) peut exécuter ce script:

su – nagios
nagios> /usr/local/libexec/nagios/check_snmp_int.pl -h
… la syntaxe va s’afficher …
nagios> exit

Si vous avez une erreur lors de l’éxécution du script, cela peut être dû à l’absence des pré-requis suivants sur votre système:

  • Perl doit être installé dans le répertoire /usr/bin/perl
  • La librairie Perl nommée Net::SNMP doit être installé (via CPAN)
  • Le fichier ‘utils.pm doit être présent dans le répertoire des plugins Nagios

Test du plugin

Nous allons dans un premier temps chercher la liste des interfaces réseau du routeur Cisco (ou autre compatible avec MIB-2 standard) à superviser:

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n zzzz -v
Alarm at 15 + 5
SNMP v1 login
Filter : zzzz
OID : 1.3.6.1.2.1.2.2.1.2.26, Desc : Async54
OID : 1.3.6.1.2.1.2.2.1.2.28, Desc : Async56
OID : 1.3.6.1.2.1.2.2.1.2.18, Desc : Async46
OID : 1.3.6.1.2.1.2.2.1.2.12, Desc : Async40
OID : 1.3.6.1.2.1.2.2.1.2.31, Desc : Async59
OID : 1.3.6.1.2.1.2.2.1.2.19, Desc : Async47
OID : 1.3.6.1.2.1.2.2.1.2.22, Desc : Async50
OID : 1.3.6.1.2.1.2.2.1.2.34, Desc : Async62
OID : 1.3.6.1.2.1.2.2.1.2.13, Desc : Async41
OID : 1.3.6.1.2.1.2.2.1.2.23, Desc : Async51
OID : 1.3.6.1.2.1.2.2.1.2.4, Desc : Null0
OID : 1.3.6.1.2.1.2.2.1.2.35, Desc : Loopback0
OID : 1.3.6.1.2.1.2.2.1.2.30, Desc : Async58
OID : 1.3.6.1.2.1.2.2.1.2.5, Desc : Async33
OID : 1.3.6.1.2.1.2.2.1.2.11, Desc : Async39
OID : 1.3.6.1.2.1.2.2.1.2.1, Desc : Ethernet3/0
OID : 1.3.6.1.2.1.2.2.1.2.39, Desc : Virtual-Access2
OID : 1.3.6.1.2.1.2.2.1.2.14, Desc : Async42
OID : 1.3.6.1.2.1.2.2.1.2.37, Desc : Virtual-Template1
OID : 1.3.6.1.2.1.2.2.1.2.16, Desc : Async44
OID : 1.3.6.1.2.1.2.2.1.2.20, Desc : Async48
OID : 1.3.6.1.2.1.2.2.1.2.17, Desc : Async45
OID : 1.3.6.1.2.1.2.2.1.2.29, Desc : Async57
OID : 1.3.6.1.2.1.2.2.1.2.36, Desc : Tunnel0
OID : 1.3.6.1.2.1.2.2.1.2.3, Desc : Serial3/1
OID : 1.3.6.1.2.1.2.2.1.2.25, Desc : Async53
OID : 1.3.6.1.2.1.2.2.1.2.2, Desc : Serial3/0
OID : 1.3.6.1.2.1.2.2.1.2.7, Desc : Async35
OID : 1.3.6.1.2.1.2.2.1.2.33, Desc : Async61
OID : 1.3.6.1.2.1.2.2.1.2.9, Desc : Async37
OID : 1.3.6.1.2.1.2.2.1.2.6, Desc : Async34
OID : 1.3.6.1.2.1.2.2.1.2.15, Desc : Async43
OID : 1.3.6.1.2.1.2.2.1.2.10, Desc : Async38
OID : 1.3.6.1.2.1.2.2.1.2.27, Desc : Async55
OID : 1.3.6.1.2.1.2.2.1.2.32, Desc : Async60
OID : 1.3.6.1.2.1.2.2.1.2.8, Desc : Async36
OID : 1.3.6.1.2.1.2.2.1.2.21, Desc : Async49
OID : 1.3.6.1.2.1.2.2.1.2.24, Desc : Async52

Il faut ensuite noter le nom système des interfaces à surveiller (par exemple Serial 3/0 et Serial 3/1 dans mon cas).

Puis on lance ensuite la commande pour vérifier l’état de l’interface Serial 3/0:

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n « Serial3/0 » -r
Serial3/0:UP:1 UP: OK

On a donc maintenant la commande à éxécuter, il ne reste plus qu’a l’intégrer dans notre configuration de Nagios.

Configuration de Nagios

On commence par se rednre dans le répertoire ou se trouve les fichiers de configuration de Nagios (/usr/local/etc/nagios par exemple):

cd /usr/local/etc/nagios

Puis si vous êtes sous Nagios 3.x ou supérieur dans le sous-répertoire objects:

cd objects

Enfin on édite le fichier commands.cfg puis on y ajoute la section suivante:

###################
# check_snmp_int.pl
###################

# ‘check_snmp_int.pl’, vérifier l’état de l’interface reseau
define command{
command_name    check_snmp_int
command_line    $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -r
}

On vient donc de créer une nouvelle commande Nagios qui appelera le plugin check_snmp_int avec deux paramètres:

  • $ARG1$: nom de la communauté SNMP à utiliser (public la plupart du temps)
  • $ARG2$: nom de l’interface à superviser

Enfin , on ajoute un nouveau service pour le routeur Cisco à superviser (par exemple dans le fichier network.cfg):

define host{
use             routeur
host_name       cisco
alias           Routeur liaison WAN
address         <adresseIProuteurcisco>
}
define service{
use                     generic-service
host_name               cisco
service_description     LS 1
check_command           check_snmp_int!public!« Serial3/0 »
}

Et si en plus je veux…

…surveiller la bande passante utilisée et envoyer une alerte si celle-ci dépasse un certain seuil ? Aller Noël n’est pas si loin…

Il suffit de créer une nouvelle commande Nagios et d’utiliser l’option -k du plugin. Par exemple pour surveiller un interface Serial3/0 et emmettre une alerte de warning si  débit dépasse 1.6 Mbps puis une alerte critique si ce dernier passe la barre des 1.9 Mbps ?

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n « Serial3/0 » -k -w 1600,1600 -c 1900,1900

Je vous laisse convertir cette commande système vers une commande Nagios, cela vous fera un bon exercice 😉

Catégories
Open-source Reseau

Vyatta, le futur Cisco ?

Vyatta sera t-il à Cisco ce que Google est à Microsoft ? Cette nouvelle société créée par Allan Leinwand, ancien ingénieur Cisco, met à disposition des particuliers et des PMEs des routeurs basées sur un firmware open-source. Ce dernier, basée sur Linux Debian, peut être installé sur n’importe quel PC dont le hardware est compatible avec la célèbre distribution Linux. Le prix d’un tel routeur serait bien entendu beaucoup moins cher qu’une solution Cisco pour des fonctions équivalentes..

La solution Vyatta se base, sur la partie routage IP, sur un autre projet open-source nommée Xorp. Il lui apportant une interface normalisée sous la forme CLI (ligne de commande avec des syntaxes proches de celle que l’on peut trouver sus Cisco IOS) ou bien WEB (ce que les utilisateurs de Cisco attendent depuis de nombreuses années…) ainsi que d’autres fonctions réseaux.

La société base son « business model » sur la vente de services et de hardwares validées.

Les fonctions disponibles en standard sont:

  • interfaces CLI (via réseau ou interface série) / WEB
  • configuration des interfaces Ethernet (IP, masque, nom, DNS…)
  • services réseaux de bases: DHCP, accès via Telnet, SSH ou HTTP
  • gestion des VLANs (compatible 802.1q)
  • routage statique (avec gestion des filtres pour le routage) unicast et multicast (PIM-SM et IGMP)
  • routage dynamique (RIP / OSPF / BGP)
  • redondance entre routeurs (via le protocole VRRP)
  • translation d’adresses (NAT)
  • firewall intégré (filtrage simple de type stateful inspection)
  • authentification (via Radius)
  • Log (syslog)
  • Management (SNMP)
  • Mise à jour automatique

>> Un datasheet plus précis peut être téléchargé ici <<

Actuellement en version 2, le firmware peut être récupéré sous la forme d’un LiveCD. Je reviendrais prochainement au test de ce dernier.

Et vous serez-vous prêt à laisser tomber Cisco pour ce genre de solution ?