Le routage inter-vlan sur routeurs Cisco

Le but de cet article est de vous montrer par comment configurer un routeur Cisco pour que plusieurs vlans puissent communiquer entre eux.

Prenons par exemple la topologie suivante (cliquez sur l’image pour la voir en plus grand):

tuto-intervlan-illustration-TR

Elle est composée d’un switch, sur lequel sont configurés trois vlans, et d’un routeur. Le lien entre le switch et le routeur est un lien trunk. Pour la partie sur la configuration du switch, je vous invite à lire l’article suivant: https://techreseau.wordpress.com/2014/11/12/switch-cisco-et-vlans/

Le principe est de créer des sous interfaces (une par vlan à router) de l’interface physique du routeur qui est reliée au switch. On attribue ensuite à chacune de ces sous-interfaces une adresse  dans le sous-réseau propre au vlan concerné.

Créations d’une sous-interface

Router(config)#interface <nom-de-l-interface-physique>
Router(config-if)#no shutdown
Router(config-if)#interface <interface-physique>.<numero-vlan>
Router(config-subif)#encapsulation dot1q <numero-vlan>
Router(config-subif)#no shutdown

Attribution d’une adresse IP dans le sous-réseau du vlan

Router(config-subif)ip address <addresse-routeur-dans-vlan> <masque>

Ces étapes sont à réaliser pour chaque vlan avec lequel le routeur devra être en contact.

 

Je vous propose de réaliser un petit exercice, en utilisant le logiciel packet tracer. Pour des raisons évidentes de droits, je ne suis pas en mesure de vous le fournir, mais je vous fais confiance pour vous en procurer une copie par vous même 😉

Le switch et les ordinateurs ont été préalablement configurés par mes soins (les adresses et numéros de vlan sont indiqués dans le fichier), focalisez vous sur la configuration du routeur.

Je vous conseille de procéder par étapes, la précipitation n’aidant en rien à la réussite. Configurez d’abord le routeur dans un et un seul vlan. Attribuez lui une adresse dans le réseau du vlan, et tentez de le pinger depuis le PC correspondant au vlan.

Configurez ensuite un second vlan. Tentez de pinger le routeur depuis le second PC. Si cela fonctionne, regardez si le ping passe entre les machines des deux vlans que vous avez configuré. Cela fonctionne? Alors vous y êtes arrivés, la configuration du dernier vlan ne devrait pas vous poser de problème 🙂

Téléchargements

Exercice

Correction (faire des « show run » sur les équipements pour voir leur configuration)

Activation d’un Windows Server 2012 R2 installé en version d’evaluation

Hello,

Je m’étais installé un Windows Server 2012 R2 pour servir de contrôleur de domaine Active Directory. N’ayant pas sous la main un CD d’installation (mais ayant une licence VALIDE !), j’ai récupéré une ISO « d’évaluation » fournie par Microsoft (https://technet.microsoft.com/fr-fr/evalcenter/dn205286.aspx) et l’ai utilisé pour installer le serveur.

Licence-WS2012R2-expiree

Cependant, j’ai « oublié » d’activer ma vraie licence, du coup la période d’évaluation est passée, jusqu’à expirer (avec shutdown de la machine toutes les heures, etc…).

J’ai naïvement tenté d’activer la licence en passant par « propriétés du système -> Activer windows » mais catastrophe:

Activation-2k12R2-cle-refusee

Windows refuse d’utiliser ma clé pour activer Windows !

Ceci est en fait dû à une petite subtilité de l’image « evalutation » utilisée:

Si on ouvre un terminal powershell en mode administrateur, et que l’on tape la commande

dism /online /get-currentedition

Celle-ci nous retourne une version de windows « ServerStandardEval », alors qu’en réalité la clé est valable pour une edition « ServerStandard »

EditionEval-WS2012R2

Pas de panique, tout n’est pas perdu, pas besoin de chercher un CD « normal » de windows server 2012 R2 et de réinstaller votre serveur, il est possible de changer l’édition de Windows installée, et de l’activer, tout ça en une commande !

dism /online /set-edition:ServerStandard /productket:<Cle> /accepteula

modif-edition-cle-ws2012r2

Entrez « Y » au prompt lorsqu’il vous est demandé de redémarrer le serveur (il redémarrera 2 fois a la suite, pas d’inquiétude).

Voila, vous avez activé votre version de démo avec une licence valide.

Changer un disque défaillant d’un raid 1 logiciel sous linux

J’ai récemment eu la (mauvaise) surprise de découvrir qu’un des disque du raid 1 (miroir) de mon NAS avait rendu l’âme.

Le but de cet article est de vous montrer comment remplacer un disque dans un raid géré par mdadm sous linux.

Je ne pourrai en aucune façon être tenu responsable si vous perdez des données ou abimez du matériel lors de l’opération (mais si vous suivez bien les instruction et faites attention, ça ne devrait pas arriver !)

I – Retrait du disque défaillant

Pour se rendre compte qu’un disque membre de votre raid est défaillant, il suffit de faire un cat sur /proc/mdstat

root@datastore:/root# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdb1[0]
      1953382208 blocks super 1.2 [2/1] [U_]
      
unused devices: <none>

l’affichage de [U_] signifie qu’un des disques composant le raid est défaillant (en temps normal, on peut lire [UU]). Mdadm s’en est rendu compte, et à « exclu » le fautif (/dev/sdc1) du raid (on voit qu’il ne me reste que /dev/sdb1 dans mon array).

J’utilise pour construire mes raid, par habitude, une partition qui prend la totalité de l’espace du disque. Ne soyez donc pas étonné de me voir utiliser des « /dev/sdx1 » dans les commandes que je vous propose. Si vous utilisez un disque « brut », remplacez simplement par « /dev/sdx ».

Pour pouvoir retirer le disque en toute sécurité, entrer (en root) les commandes suivantes:

# Marque le disque comme "en défaut" 
#(au cas ou md ne l'aurait pas fait comme dit précédemment)

root@datastore:/root# mdadm --manage /dev/md0 --fail /dev/sdc1
# Sort complètement le disque de la grappe raid

root@datastore:/root# mdadm --manage /dev/md0 --remove /dev/sdc1

Il faut ensuite retirer physiquement le disque de la machine. En ce qui me concerne, j’ai pris l’habitude de procéder comme ceci, afin principalement d’être sur de ne pas me tromper de disque (ça serait dommage !) :

# Récupère le numéro de série du disque

root@datastore:/root# smartctl -a /dev/sdc | grep Serial
Serial Number:    <numéro de série>

Ensuite, je fais pour ma part confiance au « hot swap » du sata. Si vous souhaitez éteindre votre machine avant de retirer le disque, libre à vous 🙂 .

Retirez le disque, en vérifiant que son numéro de série correspond bien à celui relevé plus haut.

II – Mise en place du nouveau disque

Branchez ensuite le disque neuf à la place de l’ancien, puis rallumez votre machine si vous l’aviez éteinte.

Si vous utilisez comme moi le « hot swap » du sata, un petit coup de dmesg:

root@datastore:/root# dmesg

[4.103915] ata8: exception Emask 0x10 SAct 0x0 SErr 0x4050000 action 0xe frozen
[4.103983] ata8: irq_stat 0x00400040, connection status changed
[4.104034] ata8: SError: { PHYRdyChg CommWake DevExch }
[4.104086] ata8: hard resetting link
[4.041157] ata8: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[4.176953] ata8.00: ATA-9: WDC WD20EZRX-00D8PB0, 80.00A80, max UDMA/133
[4.176958] ata8.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32), AA
[4.177614] ata8.00: configured for UDMA/133
[4.177623] ata8: EH complete
[4.177730] scsi 7:0:0:0: Direct-Access     ATA      WDC WD20EZRX-00D 80.0 PQ: 0 ANSI: 5
[4.177875] sd 7:0:0:0: [sdc] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
[4.177878] sd 7:0:0:0: [sdc] 4096-byte physical blocks
[4.177922] sd 7:0:0:0: [sdc] Write Protect is off
[4.177925] sd 7:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[4.177945] sd 7:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[4.178311] sd 7:0:0:0: Attached scsi generic sg2 type 0
[4.204648]  sdc: unknown partition table
[4.204830] sd 7:0:0:0: [sdc] Attached SCSI disk

On voit ici que le système à bien détecté le nouveau disque, et l’a mappé, comme l’ancien, sur /dev/sdc (Vu que nous l’avons mis exactement à la place de l’ancien, il sera à priori sur le même « fichier » device.

Si vous utilisez des partitions pour construire votre raid:

# A adapter suivant vos disques !
root@datastore:/root# parted -a optimal /dev/sdc
(parted) mklabel gpt
(parted) mkpart
[...]
Start? 2048s
End? -1

(parted) set 1 raid on
(parted) align-check
alignment type(min/opt) [optimal]/minimal? optimal
Partition number? 1
1 aligned

Petite explication: j’utilise une table de partitions GPT sur mes disques. Si les votres ont un schéma de partitionnement MBR classique, remplacer gpt par msdos

On commence la partition 2048 secteurs après le début du disque et on l’étend sur la totalité de l’espace (-1).

On définit ensuite la partition comme un volume physique pour le raid.

On ajoute ensuite le nouveau disque à notre raid:

root@datastore:/root# mdadm --add /dev/md0 /dev/sdc1

mdadm à de suite lancé la reconstruction:

root@datastore:/root# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdc1[2] sdb1[0]
      1953382208 blocks super 1.2 [2/1] [U_]
      [===>.................]  recovery = 18.0% (351685696/1953382208) finish=193.3min speed=138058K/sec
      
unused devices: <none>

Vous n’avez plus qu’à attendre que votre raid soit re-synchronisé.

III – Augmenter la vitesse de reconstruction du raid

Vous pourriez trouver que votre raid ne se reconstruit pas assez vite.

Pour arranger cela, vous pouvez dans un premier temps changer la vitesse max dans /proc/sys/dev/raid/speed_limit_max

# Par exemple, je fixe ici la vitesse max à 200 Mo/s
root@datastore:/root# echo 200000 > /proc/sys/dev/raid/speed_limit_max

Cette modification sera écrasée lors d’un reboot. Pour la rendre persistante:

root@datastore:/root# echo dev.raid.speed_limit_max=200000 > /etc/sysctl.conf
root@datastore:/root# sysctl -p

 

Nous sommes tous Charlie

Nous-sommes-Charlie

Je ne suis pas journaliste, je n’ai pas de carte de presse. Je suis étudiant. Ce blog me permet de partager, avec ceux qui souhaitent le lire, mes modestes connaissances. Je le fais avec grand plaisir, mais aussi parce que j’en ai le DROIT. Je suis LIBRE de m’exprimer ici sur le sujet que je souhaite.

La liberté de s’exprimer, que cela soit à l’écrit, devant une caméra, à la radio ou par tout autre moyen doit être préservée. Ne nous laissons pas museler par la terreur.

Journalistes, chroniqueurs, blogueurs, écrivains, continuez à écrire. Continuez à partager vos connaissances, vos points de vue, vos pensées, vos histoires.

Dessinateurs, continuez à dessiner.

Humoristes, continuez à nous faire rire.

Chanteurs, musiciens, continuez à composer et à jouer.

A très bientôt,

Charlie.

Switch cisco et Vlans

Cet article n’a pas pour but d’expliquer ce que sont les Vlans. Vous découvrirez ici comment configurer les Vlans sur un commutateur Cisco.

Création d’un Vlan sur le switch

Pour créer un Vlan, saisissez les commandes suivantes (après enable et config terminal):

 switch(config)#vlan <ID du Vlan>
 switch(config-vlan)#name <Nom du Vlan>

Sur certains switchs plus anciens, les commandes précédentes peuvent ne pas fonctionner. dans ce cas, utilisez plutôt celles-ci:

switch#vlan database
switch(vlan)#vlan <ID du Vlan> name <Nom du Vlan>

Attribuer le Vlan à un port (mode access)

Pour placer un port dans un Vlan, saisissez les commandes suivantes (toujours en conf t):

 switch(config)#interface <nom de l'interface>
 switch(config-if)#switchport mode access
 switch(config-if)#switchport access vlan <ID du Vlan>

Attribuer le Vlan à un port (mode trunk)

Le mode trunk d’un port de commutateur sert à faire passer plusieurs Vlan sur ce port, en ajoutant aux trames sortant par celui-ci un TAG avec l’identifiant du Vlan auquel elle appartient.

 switch(config)#interface <nom de l'interface>
 switch(config-if)#switchport mode trunk
 switch(config-if)#switchport trunk encapsulation dot1q
 switch(config-if)#switchport trunk allowed vlan add 1,8,10

Petite explication sur quelques commandes donnée précédemment:

switchport trunk encapsulation dot1q

Cette commande permet de dire au commutateur que les trames sortant par le port seront marquées suivant le protocole 802.1q

Une autre valeur est possible, le protocole ISL (Cisco Inter Switch Link), qui est un protocole propriétaire Cisco, qui ne fonctionne donc qu’en environnement full cisco.

switchport trunk allowed vlan add 1,8,10

Cette commande permet de paramétrer quels Vlan pourront passer par ce port (ici les VID 1 8 et 10). Il est possible de supprimer ce filtrage par la commande

no switchport trunk allowed vlan

Simplifiez vous la vie avec le protocole VTP

Le protocole VTP (Vlan Transport Protocol) permet de n’avoir à configurer (entendre par la « déclarer ») vos Vlan, que sur un seul switch, et que ceux-ci seront propagés automatiquement aux « clients VTP ». (Souvenez vous, l’admin est feignant)

Gardez toutefois à l’esprit que ce protocole ne fonctionne que sur du matériel Cisco (Il existe un protocole standardisé, MRP – 802.1ak, mais je n’ai jamais eu l’occasion de le tester)

Configurer un « serveur » VTP

switch(config)#vtp domain <nom du domaine VTP>
switch(config)#vtp password <mot de passe>
switch(config)#vtp mode server

Le switch défini comme « serveur » va annoncer les vlans qui lui sont configurés aux « clients VTP », vous évitant ainsi de devoir les configurer sur chaque switch de votre réseau.

Configurer un « client » VTP

La configuration d’un client VTP n’est pas très différente de celle d’un serveur

switch(config)#vtp domain <nom du domaine VTP>
switch(config)#vtp password <mot de passe>
switch(config)#vtp mode client

Mise en place d’un serveur DHCP sous Debian 7

Bonjour à tous, j’espère que cet article vous aidera à la mise en place d’un serveur DHCP sous Debian.

Sources: man dhcpd.conf, cours « M3105 – Services réseaux avancés »  de Mr Bouillet, enseignant département R&T Montbéliard

Le présent article suppose que vous disposez d’un serveur Debian avec une configuration IP correcte (IP fixe, dns, gateway etc.).

Installation du serveur DHCP

Avant tout, il me parait être une bonne chose de mettre à jour votre serveur. Pour cela, exécutez les commandes :

sudo apt-get update
sudo apt-get upgrade

Une fois ceci terminé, installez le paquet isc-dhcp-server

sudo apt-get install isc-dhcp-server

Configuration du service DHCP

La configuration s’effectue dans /etc/dhcp/dhcpd.conf, editez ce fichier avec votre éditeur favori.

Les principales options que vous devez connaître sont les suivantes (j’écris ici un fichier de configuration d’exemple afin de rendre l’explication plus concrète qu’un simple listing des paramètres disponibles):

# Au début du fichier se placent les options "par défaut"
  default-lease-time 7200; # Durée par défaut d'un bail DHCP
  autoritative; #ce serveur DHCP est le serveur "officiel" du réseau

#On déclare ici les sous-réseaux gérés par le serveur
  subnet 192.168.0.0 netmask 255.255.255.0
  {
    # Le serveur attribue des adresses dans l'intervalle .10 à .20
    range 192.168.0.10 192.168.0.20;
    
    # La passerelle par défaut est 192.168.0.254
    option routers 192.168.0.254;

    # Les clients utiliseront 192.168.0.1 et 192.168.0.2 comme résolveurs DNS
    option domain-name-servers 192.168.0.1, 192.168.0.2;

    # Le suffixe DNS des client sera "mondomaine.lan"
    option domain-name "mondomaine.lan";
  }

Si votre serveur DHCP dispose de plusieurs cartes réseau, il vous suffira d’ajouter un bloc « subnet » par sous-réseau sur lequel vous souhaitez proposer un service de distribution d’adresses.

Petite précision cependant, attention avec l’option « authoritative » ! Elle signifie que si votre serveur détecte qu’un autre serveur DHCP que lui essaie d’attribuer des leases aux clients, il enverra des DHCPNACK a ces clients pour les empêcher de les prendre. (A eviter donc si vous êtes en TP ou que vous faites des tests sur un vrai réseau qui comporte déjà un serveur DHCP).

Redémarrez ensuite le démon dhcpd via la commande suivante

sudo service isc-dhcp-server restart

Conclusion

L’exemple présenté ici ne contient pas toutes les options possibles (il y en à beaucoup ! Consultez la page de manuel de dhcpd.conf), et ne traite pas de sujets avancés comme la mise à jour automatique d’enregistrements DNS ou de la tolérance de panne, qui feront certainement l’objet d’un article ultérieur.

 

Résoudre le bug des commandes inconnues dans l’update 1 de Windows 8.1

Je tiens à remercier Mr Hicham KADIRI, qui m’a donné la solution sur le forum technet microsoft, et m’a aimablement autorisé à la publier ici.
Passez donc faire un tour sur son blog: http://hichamkadiri.wordpress.com/

Après avoir appliqué sur ma machine l’update 1 de windows 8.1, je me suis aperçu dans l’invite de commandes que des commandes comme ping, ipconfig, traceroute etc. n’étaient plus reconnues… Il s’agit apparemment d’un bug lié à la gestion des variables d’environnement qui n’a à priori pas encore été corrigé.

En revanche, lorsque l’on se place directement dans le répertoire « system32 » du disque dur, les commandes sont reconnues sans problème, puis-qu’aucune variable d’environnement n’est utilisée dans ce chemin.

J’attire votre attention sur le fait que ce qui suit va impliquer de modifier le registre système. Toute mauvaise manipulation peut engendrer des soucis sur votre machine. Il est donc recommandé de faire une copie de sauvegarde du registre avant de vous lancer. Je ne pourrai être tenu responsable en cas de dommage subi par votre ordinateur.

1 – Lancez l’éditeur de registre en mode administrateur.

2 – Placez vous dans la branche HKEY_CURRENT_USER\Software\Microsoft\Command Processor.

3 – Créez une nouvelle valeur de type Chaîne nommée « Autorun ».

4 – Dans le champ « valeur » de ce nouvel objet, entrez CD /d C:\Windows\System32.

5 – Fermez l’éditeur de registre et réessayez d’entrer une commande qui ne fonctionnait pas auparavant dans l’invite de commande.

Ceci à pour effet de simplement vous placer dans le répertoire system32 de windows au lancement de la console.