Migrer des bornes lourdes en bornes légères

Le réseau évolue, se complexifiant et se centralisant, aux moyens de contrôleurs. Le WiFi est une des premières technologies à avoir évoluer afin de centraliser son intelligence autour d'un contrôleur.

Chez CISCO on retrouve une gamme de contrôleurs WLC 55XX destinés à gérer un ensemble de bornes légères.

Dans ce tutoriel nous allons migrer des bornes WiFi 1242AG de 2006 en bornes légères et les relier à un contrôleur WLC 5500 (version 7) de 2013

Différences bornes lourdes et légères

La principale différence entre bornes lourdes et légères, hormis l'autonomie vs la centralisation de l'intelligence, est au niveau réseau.

Les bornes lourdes CISCO se basent sur des agrégats de VLAN en 802.1Q avec un VLAN d'administration et autant de VLAN tagués que de SSID (voire plus si les VLANs sont dynamiques via Radius).

Les bornes légères montent un tunnel (CAPWAP) entre la borne et le contrôleur, faisant transiter l'ensemble du trafic par celui-ci, que ce soit le trafic administratif ou celui des clients.

Prérequis: DHCP

Si vos bornes sont configurées en IP statiques, vous devez configurer votre réseau afin de distribuer des IP via DHCP.

Configurez donc un réseau en IP dynamiques afin de provisionner vos bornes.

Prérequis: configuration de la découverte de contrôleur via DHCP ou DNS

Afin de permettre à vos bornes de trouver le contrôleur vous devez générer une chaîne et l'ajouter à l'option 43 de votre DHCP. Vous trouverez de la documentation sur cette chaîne ici.

Attention: il se peut que cette option ne fonctionne pas correctement sur certains DHCP UNIX. CISCO prévoit une méthode de découverte alternative via un enregistrement DNS.

Pour utiliser cette méthode, ajoutez simplement un enregistrement DNS de type A nommé CISCO-CAPWAP-CONTROLLER dans la zone DNS associée à votre subnet DHCP, par exemple CISCO-CAPWAP-CONTROLLER.example.org si le subnet DHCP définit example.org comme suffixe DNS.

nsupdate
> update add CISCO-CAPWAP-CONTROLLER.example.org. 86400 A 10.0.0.1
> send
> quit

Prérequis: pare-feux

Les bornes légères montant un tunnel CAPWAP avec le contrôleur, n'oubliez pas d'autoriser les flux.

Migration

Etape 1: changement d'IOS

L'IOS d'une borne lourde ne peut pas se connecter à un contrôleur WiFi. Il vous faudra le changer pour utiliser un IOS de borne légère.

Afin d'identifier si un IOS est utilisé pour une borne légère ou lourde, il faut regarder le nom du fichier et sa taille:

-rw-r--r--   1 root      wheel  5570560 Sep 17 17:43 c1240-k9w7-tar.124-10b.JDA3.tar
-rw-r--r--   1 root      wheel  2631680 Sep 17 18:11 c1240-rcvk9w8-tar.124-21a.JA2.tar

Dans l'exemple ci-dessus, l'IOS original de la borne lourde est le plus gros. De plus, la chaîne rcvk9w8 définit que l'IOS est dédié à une borne légère, a contrario de k9w7.

Note: vous n'êtes pas obligé d'utiliser un IOS de borne légère légal pour effectuer votre migration, le WLC remplacera l'IOS par un plus récent et original, adapté à la borne lorsque la borne le contactera. Néanmoins, si possible, utilisez un IOS original pour votre migration.

On va maintenant changer l'IOS de la borne (évitez les coupures électriques pendant cette manipulation !!!) et supprimer la startup-config de la borne lourde (ce fichier de configuration n'est pas utilisée par les bornes légères)

delete /recursive /force flash:c1240-k9w7-tar.124-10b.JDA3
archive download-sw /overwrite /reload tftp://10.0.0.50/c1240-rcvk9w8-tar.124-21a.JA2.tar
erase startup-config

Vous pouvez désormais redémarrer votre borne.

reload

Etape 2: configuration du port du commutateur

Reconfigurons maintenant le port du commutateur.

switch(configure-if)# no switchport trunk allowed vlan
switch(configure-if)# no switchport trunk native vlan
switch(configure-if)# no switchport trunk encapsulation dot1q
switch(configure-if)# switchport mode access
switch(configure-if)# switchport access vlan 18
switch(configure-if)# shutdown
switch(configure-if)# no shutdown

On retire l'encapsulation et on déclare le VLAN 18, correspondant à notre réseau de bornes légères en DHCP. Enfin on redémarre le port afin d'être certain que la borne est dans le nouveau réseau.

C'est tout, votre borne devrait désormais demander une IP puis contacter le contrôleur.

Les étapes suivantes sont habituelles lors de l'installation de bornes légères: mise à jour de l'IOS local, redémarrage et configuration de la borne.

Il ne vous reste plus qu'à ajouter la borne dans le bon groupe sur le WLC afin de la provisionner.

Erreurs possibles après migration

J'ai eu quelques cas étranges où la borne utilisait l'IOS temporaire de bornes légères mais refusait d'utiliser le DHCP. Afin de l'obliger à se reconfigurer en DHCP, tapez simplement les commandes suivantes:

clear lwapp private-config
clear lwapp ap ip address
clear lwapp ap ip default-gateway

Conclusion

Lorsque j'ai fait ce test j'étais sceptique quant au fonctionnement du système, au vu de l'écart d'âge entre les 1242 et le WLC. Néanmoins ce fût une bonne surprise de voir que CISCO n'a pas choisi l'obsolescence programmée de son matériel, bien qu'une voire deux générations de bornes WiFi soient passées.

En terme de fonctionnalités, la borne garde un niveau fonctionnel équivalent, pour une résilience légèrement moindre, mais un fonctionnement global de l'infrastructure meilleur (roaming, authentification, gestion des logs et des configurations...). Si vous utilisez des bornes lourdes, peut être est-il temps de vous orienter vers une solution légère ?

Configurer 802.1X sur un port

Introduction

Il est de plus en plus courant dans le monde de l'entreprise d'utiliser du 802.1X afin de sécuriser son réseau et le dynamiser. Cela nécessite une légère augmentation de la bande passante et un serveur dédié avec un CPU robuste et des accès aux données rapides. Nous allons voir rapidement comment mettre en place du 802.1X sur un switch CISCO

Création de la politique 802.1X

switch# conf t
switch(config)# aaa new-model
switch(config)# aaa authentication login default local-case
switch(config)# aaa authentication dot1x default group radius
switch(config)# aaa authorization network default group radius
switch(config)# dot1x system-auth-control
switch(config)# radius-server host 10.1.1.3 auth-port 2812 acct-port 1813 key 0 motdepasseradius
switch(config)# radius-server vsa send authentication
switch(config)# exit

Le mot de passe radius sera chiffré de manière réversible (niveau 7) ensuite.

Utilisation de la politique 802.1X sur un port

interface FastEthernet 1/0/1
 switchport mode access
 authentication event fail action authorize vlan 23
 authentication event no-response action authorize vlan 23
 authentication port-control auto
 dot1x pae authenticator
end

Ces commandes permettent d'utiliser 802.1X sur un port de switch. Linux et MAC OS le gèrent nativement, néanmoins quelques manipulations seront nécessaires sous Windows.

Les deux lignes stipulant le VLAN 23 permettent de basculer la machine dans ce VLAN lorsqu'elle n'est pas autorisée ou encore qu'il n'y a pas de réponse de la part du serveur radius.

Authentification Radius par adresse MAC

interface FastEthernet 1/0/1
 switchport mode access
 authentication event fail action authorize vlan 23
 authentication event no-response action authorize vlan 23
 authentication port-control auto
 mab eap
end

La configuration est quasiment identique, à une nuance près qu'on rajoute la ligne mab eap qui permet de définir l'option mac-address bypass qui nous intéresse ici. Si vous ne souhaitez pas utiliser EAP pour sécuriser les échanges vous pouvez indiquer uniquement mab.

Management de stack CISCO

Introduction

Je vous propose ici d'apprendre les rudiments du stacking. Nous étudierons ici comment bien remplacer un switch dans un stack. Pour l'ajout et la suppression nous y reviendrons plus tard.

Un stack de switch consiste à mettre en cascade les switch via le connecteur dédié, situé à l'arrière de l'équipement. Il existe deux types de stack CISCO, le stackwise, présent sur les séries 3750, et le flexstack, présent sur les séries 2960. La techonologie stackwise permet d'intégrer jusqu'à 9 switches dans la pile tandis que flexstack n'en permet que 5.

Dans le cadre d'un stack, il faut savoir que la configuration est copiée sur l'ensemble des switch, et qu'ils vont élire un maître, qui sera celui qui gèrera l'ensemble de la configuration et des mises à jour. Cette élection se fait via un indicateur de priorité (de 1 à 15, 15 étant la plus forte priorité), qui reste au sein du switch, même si vous supprimez la configuration de celui-ci ! En cas d'égalité de priorité, ce sera, soit le switch ayant démarré le premier, soit celui ayant la plus petite mac-address qui sera élu maître. Une fois cette élection effectuée, le maître ne changera pas, même si vous changez la priorité, à moins de débrancher le maître.

Connaître l'état du stack

Afin de connaître l'état de votre stack (ici des 3750) tapez la commande:

show platform stack manager all

Voici le résultat:

  Switch/Stack Mac Address : 000a.b87b.abcd
                                             H/W   Current
  Switch#  Role   Mac Address     Priority Version  State
  ----------------------------------------------------------
  *1       Master 000a.b87b.abcd     15     0       Ready
   2       Member 0018.7358.aaaa     5      0       Ready
   3       Member 001a.a22e.bbbb     1      0       Initializing
   4       Member 0018.7358.cccc     3      0       Ready
   5       Member 0018.19da.dddd     2      0       Ready
   6       Member 0018.7315.eeee     1      0       Ready

           Stack Port Status             Neighbors
  Switch#  Port 1     Port 2           Port 1   Port 2
  --------------------------------------------------------
    1        Ok         Ok                2        6
    2        Ok         Ok                3        1
    3        Ok         Ok                4        2
    4        Ok         Ok                5        3
    5        Ok         Ok                6        4
    6        Ok         Ok                1        5

Je ne vous ai pas mis la suite, suite qui n'est que composée de données peu explicites et utile dans le cadre de l'article.

Le premier table récapitulatif montre l'état du stack, avec les différentes adresses MAC des équipements, leur rôle (maître ou membre), la priorité, la version et pour terminer le statut du switch dans le stack.

Les états peuvent être:Ready : le switch est dans la pile et tout est correct

  • Ready : le switch est dans la pile et tout est correct
  • Removed : pas de switch dans le slot du stack
  • Progressing: le switch regarde l'état du stack et qui sont ses voisins
  • Initializing : le switch se synchronise avec les autres du stack

Remplacement du switch dans un stack

Lorsque vous voulez remplacer le switch d'un stack, que ce soit parce qu'il est défectueux, ou parce qu'il était non POE et qu'il doit être POE, il faut tout d'abord vous assurer que l'IOS du stack et celui du switch sont identiques, afin que la version du protocole de stacking soit la même. Vous pouvez brancher les deux switches entre eux par un port ethernet pour transférer l'IOS directement ou encore via TFTP par exemple.

Pour retirer le switch du stack, débranchez le électriquement tout d'abord, puis ensuite débranchez les deux ports stackwise.

Il faut savoir que la configuration qu'aura votre switch de remplacement ne sera pas celle du switch manquant. Il aura la configuration telle qu'elle est indiquée dans la startup-config de celui-ci pour le slot et les ports données du stack. Si vous avez rebrassé les prises sur les autres switches, vous pouvez supprimer la startup-config, ce qui permettra de ne pas avoir de conflit de configuration lors de l'intégration dans le stack

erase startup-config
reload

Si vous n'avez pas rebrassé les prises, copiez la startup-config du stack vers le switch de remplacement de la même manière que pour l'IOS, par exemple

copy tftp://192.168.1.2//srv/tftp/startup-config startup-config
reload

Une fois la cohérence de l'ensemble effectuée, insérez le switch à l'emplacement dédié, branchez les cables de stacking et ensuite électriquement. Suivant l'équipement, comptez entre 1 et 5 minutes avant l'intégration et la synchronisation de l'ensemble du stack. Vous pourrez vérifier l'avancement avec la commande citée en début d'article.

Port Mirroring

Un port miroir permet de dire à votre équipement réseau CISCO de dupliquer l'ensemble des paquets qui transitent depuis un port vers un autre port. Ceci est très utile dans le cas de monitoring réseau (IDS, netflow...).

Pour configurer un port miroir, tapez les commandes suivantes en mode privilégié :

conf t
monitor session 1 source interface gigabitEthernet 1/1
monitor session 1 destination interface gigabitEthernet 1/2

Vous pouvez également configurer le miroir d'un vlan complet

conf t
monitor session 1 source vlan 12
monitor session 1 destination interface gigabitEthernet 1/2

Basculer de Telnet vers SSHv2

Je vous propose dans ce tutoriel quelques explication pour passer de Telnet à SSH dans sa version 2

Pourquoi SSH version 2 ?

Les raisons qui motivent le passage à SSH v2 sont multiples :

  • Chiffrement des transactions (Telnet ne crypte rien, pas même vos mots de passe, un simple sniffeur sur le réseau et hop c'est gagné !)
  • Utilisation du cryptage RSA plutôt que DSA, permettant de gagner en fiabilité, surtout qu'il s'agit de vos routeurs
  • Symbiose naturelle entre les protocoles SSH de tous vos systèmes Unix, Linux et Cisco.

Comment faire ?

Pour passer à la version 2 de SSH c'est très simple. SSH v2 s'appuyant sur un système de clés client-serveur, il vous faut tout d'abord une clé RSA.

Passez en menu configuration terminal de votre équipement et tapez :

crypto key gen rsa

Le système va vous préciser qu'il va générer une clé, répondez yes, puis ensuite le nombres de bits codant la clé (de 256 à 4096).

Je vous suggère __4096___ afin que ce soit quasi inviolable, néanmoins cela ralentira légèrement votre vitesse de traitement en console.

Ensuite on active le serveur SSH :

ip ssh ver 2

Et voilà le tour est joué, vous avez désormais du SSH sur votre équipement.

Pour les plus malins d'entre vous, voici un petit script à utiliser pour faire la transition directement depuis le mode enable:

Router#conf t
Router(config)#crypto key gen rsa
yes
2048
Router(config)#ip ssh ver 2
Router(config)#exit

Pour terminer on désactive telnet sur toutes les consoles virtuelles:

Router#conf t
Router(config)#line vty 0 4
Router(config-line)#transport input ssh
Router(config-line)#end

Agrégat de Liens

L'agrégat de lien est une notion essentielle dans un environnement complexe nécessitant de très hauts débits et de la redondance.

Que permet-il ?

L'agrégat de liens, comme son nom l'indique, permet de regrouper plusieurs liens afin de les assembler virtuellement. Admettons que vous ayez un serveur avec 2 liaison gigabit mais qu'une seule soit utilisée. Vous perdez déjà 1 gbit, et parfois, notamment pour un serveur de fichiers, la bande passante sature ! L'agrégat de lien vous permettra de regrouper les 2 liens physiques en un seul et au résultat vous aurez une liaison 2 gbits sur une seule carte réseau virtuelle.

Comment le mettre en oeuvre ?

Au niveau de votre OS, il faut avoir plusieurs cartes réseau professionnelles comme des cartes Broadcom.

Chez Broadcom, utilisez leur manager dédié et créez une TEAM afin de faire l’agrégat de plusieurs cartes.

ATTENTION ! La première carte de la team donnera généralement son adresse MAC à l’agrégat, donc faites attention à vos logiciels sous licences qui contrôlent celle-ci !

Passons maintenant au niveau CISCO.

Pour créer un aggrégat de lien vous devez créer une entité virtuelle nommée le port-channel. Le nombre de port-channel est limité par votre switch ou coeur de réseau et ils ont un nombre limité de ports physiques qu'ils peuvent agréger. (en général 4 ou 8).

conf t
int port-channel 1

Vous voilà dans l'interface port-channel. Pour la configurer, tapez tout d'abord switchport afin d'activer le management de l’agrégat puis tapez vos commandes classiques de configuration (mode access, trunk... encapsulation, etc...).

Pour ajouter des ports physiques à l'aggrégat, allez dans votre lien physique et tapez

channel-group 1 mode active

Votre port est donc ajouté à l’agrégat. Pensez également à bien vérifier que la configuration d'accès des ports physiques et logiques sont identiques, sinon vous risquez d'avoir des conflits.

Afin de vérifier le statut de votre port-channel voici une commande très utile :

core#show etherchannel 1 detail
Group state = L2
Ports: 2   Maxports = 8
Port-channels: 1 Max Port-channels = 1
Protocol:    -
Minimum Links: 0
                Ports in the group:
                -------------------
Port: Gi3/6
------------

Port state    = Up Mstr In-Bndl
Channel group = 1           Mode = On              Gcchange = -
Port-channel  = Po1         GC   =   -             Pseudo port-channel = Po1
Port index    = 0           Load = 0x00            Protocol =    -

Age of the port in the current state: 94d:12h:58m:28s

Port: Gi4/6
------------

Port state    = Up Mstr In-Bndl
Channel group = 1           Mode = On              Gcchange = -
Port-channel  = Po1         GC   =   -             Pseudo port-channel = Po1
Port index    = 1           Load = 0x00            Protocol =    -

Age of the port in the current state: 94d:13h:12m:37s

                Port-channels in the group:
                ---------------------------

Port-channel: Po1
------------

Age of the Port-channel   = 94d:13h:13m:00s
Logical slot/port   = 11/1          Number of ports = 2
GC                  = 0x00000000
Port state          = Port-channel Ag-Inuse
Protocol            =    -
Port security       = Disabled

Ports in the Port-channel:

Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
  0     00     Gi3/6    On                 0
  1     00     Gi4/6    On                 0

Time since last port bundled:    94d:12h:58m:31s    Gi3/6
Time since last port Un-bundled: 94d:12h:58m:38s    Gi3/6

Vous voyez ici les ports appartenant à l’agrégat, depuis combien de temps ils sont en ligne et leur statut.

Autre commande utile, le summary

core#sh etherch 1 sum
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator

        M - not in use, minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port

Number of channel-groups in use: 11
Number of aggregators:           11

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)          -        Gi3/6(P)    Gi4/6(P)

Ceci permet de voir l'état de l’agrégat. Ici tout se passe bien, le Po1 est en mode U, donc il est en ligne et fonctionnel.