Mon boulot déménage, et se débarrasse de ses vieilleries. Certaines d'entre elles ne sont pas si vieilles et peuvent être utiles, comme des bornes WiFi Cisco Aironet 2802i. Ici il s'agit de modèles AIR-AP2802I-E-K9, destinées à être utilisées avec un contrôleur Wireless Controller. Mais il est possible de les reflasher avec un firmware Mobility Express, ce qui leur donne un rôle de contrôleur intégré.

Notons déjà que les Aironet 2802i sont PoE uniquement, il faudra donc prévoir un switch PoE ou un power injector. Il y a aussi des commandes à entrer en console, il faut donc aussi un câble console RJ45-USB.

Une fois le matériel réuni, il faut brancher la borne sur le réseau sur le port PoE, et sur l'ordinateur d'où on va effectuer la configuration avec le câble console.

Aironet2802i

Une fois connecté au port console, on voit plein d'infos défiler, et la borne finit par boucler sur la recherche du contrôleur :

[*11/24/2017 00:10:41.0293] CAPWAP State: Discovery
[*11/24/2017 00:10:41.0312] Discovery Request sent to 255.255.255.255, discovery type UNKNOWN(0)

Mais nous on va la convertir en contrôleur/point d'accès, donc on va chez Cisco récupérer les logiciels requis. Ça se passe sur https://software.cisco.com/download/home, on cherche Aironet 2800, ce qui nous propose Aironet 2800i Access Point. On peut alors choisir le type de logiciel, et on veut Cisco Mobility Express. Le site nous propose la dernière version, au moment de la rédaction de cet article, la 8.10.185.0.

Déjà, télécharger les deux fichiers proposés, le .tar et le .zip. Le .tar sert à convertir les bornes Lightweight en Mobility Express, et le .zip est un dépôt pour la mise à jour du firmware.

Mais !

Cisco dans sa grande générosité ne donne qu'un seul pauvre gigaoctet de stockage, il n'est donc pas possible de mettre à jour la borne et la convertir en Mobility Express en même temps...

Attention, si le version du logiciel de le borne est inférieure à 8.5, il sera nécessaire de la mettre à jour à une version 8.5 avant d'installer une version 8.10, dû à des incompatibilités du logiciel CAPWAP. La borne indiquerait Unable to load image part1/part.bin lors du démarrage et lancerait l'image de la partition secondaire.

On va effectuer la conversion dans un premier temps. Il faut déterminer la version du logiciel de la borne. Pour ce faire, il faut se connecter en console, via le câble, par un émulateur de terminal, comme PuTTY.

PuTTY est un émulateur de terminal, qui permet de se connecter aux ports console série des appareils réseaux (entre autres). On peut télécharger la dernière version ici.

Par défaut il se lance en mode SSH, et il faut sélectionner Serial sous Connection type: pour passer en mode série :

aironet putty1

Il faut alors indiquer sur quel port série est connecté notre appareil, dans Serial line. Pour connaître le numéro du port série dans Windows, il faut lancer le Gestionnaire de périphériques. Dans la section Ports (COM & LPT), le nom et modèle du câble série figure, avec le nom du port associé, COMx, où x est le numéro du port. Dans l'exemple ça sera COM1.

On va aussi s'assurer que les paramètres sont corrects, pour les appareils Cisco, le port console a une vitesse de 9600 bauds, avec 8 bits de données, un bit d'arrêt, pas de parité et un contrôle de flux XON/XOFF. Ce sont les mêmes paramètres par défaut dans PuTTY, on peut le vérifier dans Connection / Serial :

aironet putty2

Une fois les paramètres saisis, appuyer sur Open pour lancer la connexion.

Dans la console, appuyer sur la touche Entrée, pour obtenir le prompt de l'IOS de la borne. Taper ensuite en pour passer en mode privilégié :

> en
#

A l'invite, taper show ver pour obtenir la version actuelle de la borne :

# show ver
[--- blabla légal Cisco ---]
5-barbados-CCO]re, (ap3g3), [cheetah-build1:/local/build/JENKINS/workspace/8.2MR Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2015 by Cisco Systems, Inc. Compiled Tue Mar 14 13:33:13 PDT 2017 ROM: Bootstrap program is U-Boot boot loader BOOTLDR: U-Boot boot loader Version 2013.01-ged7ddad (Jun 07 2017 - 17:31:48) uptime is 0 days, 0 hours, 3 minutes Last reload time : Fri Nov 24 23:59:59 UTC 2017 Last reload reason : 1: reload command cisco AIR-AP2802I-E-K9 ARMv7 Processor rev 1 (v7l) with 1030580/712916K bytes of memory. Processor board ID FDW2147D3BW AP Running Image : 8.2.151.0 Primary Boot Image : 8.2.151.0 Backup Boot Image : 0.0.0.0 2 Gigabit Ethernet interfaces 2 802.11 Radios Radio Driver version : 9.0.5.5-W8964 Radio FW version : 9.1.8.1 NSS FW version : Base ethernet MAC Address : XX:XX:XX:XX:XX:XX Part Number : 73-100821-05 PCA Assembly Number : 000-00000-00 PCA Revision Number : PCB Serial Number : XXXXXXXXXXX Top Assembly Part Number : XXX-XXXXXX-XX Top Assembly Serial Number : XXXXXXXXXXX Top Revision Number : B0 Product/Model Number : AIR-AP2802I-E-K9

Si la version renvoie :

AP Image type : MOBILITY EXPRESS IMAGE
AP Configuration : MOBILITY EXPRESS CAPABLE

La borne possède déjà un logiciel Mobility Express, il suffit de taper la commande suivante pour l'activer et redémarrer :

# ap-type mobility-express 

Ici on voit que les champs AP Image type : et AP Configuration : sont absents, il va falloir installer le logiciel.

Et là on a une version 8.2, on va devoir la mettre à jour avec une 8.5 dans un premier temps. Télécharger le paquet .tar Mobility Express d'une version 8.5 chez Cisco, et le placer dans un répertoire au choix. Ici, si on a une borne en version 8.2.151.0, il faut télécharger le paquet AIR-AP2800-K9-ME-8-5-151-0.tar, par exemple.

Télécharger Tftpd64, le lancer, pointer Current directory sur le répertoire précédent, et sélectionner dans Server interface l'interface réseau de l'ordinateur correspondant au réseau local. Ici l'adresse de l'ordinateur sera 192.168.100.10.

Aironet2802i 2

Dans mon cas, le DHCP de la maison a donné une IP à la borne. Dans le cas où la borne n'a pas reçu d'adresse IP, il faut lui attribuer à la main, choisissez une adresse inutilisée de votre réseau :

# capwap ap ip 192.168.100.100 255.255.255.0 192.168.100.1

On peut alors lancer la conversion :

# ap-type mobility-express tftp://192.168.100.10/AIR-AP2800-K9-ME-8-5-151-0.tar

La borne télécharge le nouveau logiciel, l'installe et redémarre :

Updating image version...
[11/25/2017 00:40:27.5000] UBIFS: un-mount UBI device 0, volume 1
[11/25/2017 00:40:27.5700] UBIFS: background thread "ubifs_bgt0_1" stops
activate part2, set BOOT to part2
AP primary version: 8.5.121.0
Archive done.
[*11/25/2017 00:40:28.8442] AP Type changed: CAPWAP to ME. AP Mode changed to flexconnect. AP Rebooting...
[*11/25/2017 00:40:28.8493] AP Rebooting: Reset Request from Controller(AP Type Changed from CAPWAP to ME)

Une fois la borne redémarrée - c'est long, ça prend dix minutes entre le boot initial et la fin du lancement de Mobility Express et il y a une longue pause après l'invite d'authentification de l'IOS, elle diffuse un SSID CiscoAirProvision, avec le mot de passe password, où on peut se connecter et configurer la borne dans un navigateur. Tapez n'importe quelle adresse pour être redirigé vers mobilityexpress.cisco, qui donne l'interface de configuration de Mobility Express.

Il faut définir le nom et le mot de passe d'administration de Mobility Express, le mot de passe doit être de six caractères minimum, comportant un caractère majuscule, un chiffre et un symbole :

aironetme1

L'écran suivant permet la configuration système de Mobility Express. Il lui faut le nom du système (ici Cisco), le pays de fonctionnement (pour les fréquences autorisées), la date et l'heure, un serveur NTP au besoin, et surtout, l'adresse d'administration de Mobility Express, une adresse libre du réseau (ici 192.168.100.253, masque 255.255.255.0, passerelle 192.168.100.1). Il est également possible d'activer un DHCP pour le réseau d'administration, mais ici on parle d'une utilisation domestique, sans VLAN dédié, donc on va le désactiver pour ne pas causer de collisions avec le routeur de la maison.

aironetme2

L'étape suivante est la création du réseau sans fil. Il faut renseigner le nom du réseau (SSID), ici Cisco, sécurité WPA2 Personal, un mot de passe (à confirmer), et sélectionner le VLAN associé (ici Management VLAN, on n'en a pas d'autre). On n'active toujours pas de DHCP, et réseau invité au choix.

aironetme3

Enfin, l'assistant propose des options d'optimisation radio, qu'on peut activer. Laisser la densité de clients en Typical (à moins d'avoir particulièrement peu de clients ou d'en avoir vraiment beaucoup - Cisco a un papier très complet sur le sujet), et le type de trafic en Data (si vous avez de la voix sur WiFi, vous n'avez pas besoin de ce guide je pense 😅).

aironetme4

Un dernier écran récapitule la configuration, et il faut appuyer sur Apply pour l'accepter et redémarrer.

aironetme5

Un dernier avertissement pour la route :

aironetme6

Il est aussi possible de se reconnecter en console en mode privilégié, et effectuer la configuration du contrôleur Mobility Express avec les informations de base, information de connexion, paramètres WiFi, adresse IP pour le contrôleur. Une fois Mobility Express démarré, s'il ne trouve pas de configuration initiale, il demande si on veut terminer l'installation dans la console. Si oui, il faudra répondre quasiment aux mêmes questions qu'en interface web :

Would you like to terminate autoinstall? [yes]:
Enter Administrative User Name (24 characters max): admin
Enter Administrative Password (3 to 24 characters): ******
Re-enter Administrative Password                 : ******

System Name [Cisco_xx:xx:xx] (31 characters max): Cisco

Enter Country Code list (enter 'help' for a list of countries) [US]: FR

Configure a NTP server now? [YES][no]: no
Configure the system time now? [YES][no]: no

Note! Default NTP servers will be used

Management Interface IP Address: 192.168.100.253
Management Interface Netmask: 255.255.255.0
Management Interface Default Router: 192.168.100.1
Cleaning up Provisioning SSID
Create Management DHCP Scope? [yes][NO]: no
Create Employee Network? [YES][no]: yes
Employee Network Name (SSID)?: Cisco
Employee VLAN Identifier? [MGMT][1-4095]: mgmt
Employee Network Security? [PSK][enterprise]: psk
Employee PSK Passphrase (8-38 characters)?: ciscocisco
Re-enter Employee PSK Passphrase: ciscocisco
Create Guest Network? [yes][NO]: no
Enable RF Parameter Optimization? [YES][no]: yes
Client Density [TYPICAL][Low][High]: typical
Traffic with Voice [NO][Yes]: no

Configuration correct? If yes, system will save it and reset. [yes][NO]: yes
Les valeurs en majuscules dans les possibilités de réponses sont les valeurs par défaut qui seront prises en compte si on appuie sur entrée.
 

La borne redémarre encore, et on peut s'y connecter à l'adresse du contrôleur définie avant. On va pouvoir la mettre à jour à la dernière version.

Décompresser le contenu du .zip de la version du logiciel souhaitée dans le répertoire du TFTP.

Dans Management / Software update, sélectionner TFTP, entrer l'adresse de l'ordinateur, et spécifier / en chemin, cocher la case Auto Restart et cliquer sur Save. Cliquer ensuite sur Update, et la page affiche la progression. Une fois le predownload terminé, la borne redémarre.

aironet1

On peut aussi mettre à jour le Mobility Express depuis le navigateur, en retournant dans Management / Software update. Passer le mode en HTTP, sélectionner le .tar de la version correspondante au firmware, cocher Auto Restart, et cliquer sur Update.

aironet2

La mise à jour s'effectue, la borne redémarre, et elle est prête à fonctionner avec le dernier logiciel à jour. 😉

J'ai eu des problèmes d'affichage dans l'interface web après les mises à jour, avec des libellés génériques, il faut alors vider le cache du navigateur pour charger les bonnes ressources.

Et si jamais la configuration est cochonnée, on peut réinitialiser la borne en appuyant sur le bouton Mode avant de l'allumer, et en maintenant le bouton pendant plus de 20 secondes. La console indique le nombre de secondes écoulées.