Ma vielle TL-WA901ND de 2018 est morte. J’aimais bien son alimentation POE qui me permet de n’avoir que le câble réseau à tirer. Surtout que son emplacement n’est pas à proximité d’une prise de courant.
Préférant partir sur du matériel d’occasion je regarde sur LeBonCoin ce qui existe en matière de borne Wifi POE à un prix raisonnable.
Je tombe sur une borne Cisco Aironet de la série 2600 pour 12€. A ça j’ajoute un injecteur POE toujours de chez Cisco pour 10€. Soit un total avec les frais de transport et d’assurance LBC de 34€.
Prise en main
C’est le moment de ressortir son adaptateur USB/RS232 et un des fameux câbles bleu ciel DB9/RJ45, et ce vieux minicom.
La configuration sera la suivante :
- Serial Device: /dev/ttyUSB0
- Bps/Par/Bits: 9600 8N1
- Hardware Flow Control : No
- Software Flow Control : No
Première surprise, la borne n’a pas été « reset to factory settings » par le vendeur, et dans la console je vois plein de référence à un grand groupe média français. Je sais d’où viennent les bornes 😉 . Et comme je n’ai pas le login/password de la console, il va falloir que je le fasse.
Reset to factory settings
Pour ça rien de compliquer, on débranche le câble RJ45 de la prise POE, on appuie sur le petit bouton « mode » d’à coté, on remet le câble RJ45 et on attend que la console nous invite à le relâcher. Puis on supprime le fichier private-multiple-fs de la flash.
ap: dir flash:
ap: delete flash:private-multiple-fs
ap: reset
La borne va rebooter. Tenter de charger sa configuration et ne la trouvant pas effectuer une restauration de la configuration par défaut. Vous verrez le message suivant dans la console série.
Failed to load configuration from flash. Resetting to default config
Une fois que la borne s’est réinitialisée, vous pouvez vous logger avec le compte Cisco/Cisco. Et passer « enable » toujours avec le mot de passe Cisco.
Un seul firmware pour les gouverner tous (ou pas)
Deuxième surprise, la borne est animée par un firmware ap3g2-rcvk9w8-tar.124-25e.JA1, c’est à dire que la borne n’est pas autonome et s’intègre dans un système de gestion de type CAPWAP. D’ailleurs elle cherche en permanence un :CISCO-CAPWAP-CONTROLLER"…domain server (255.255.255.255)
Après quelques recherches j’apprends que les Cisco Aironet peuvent être animées par 3 firmwares différents, et que celui-ci indique le mode de fonctionnement de la borne.
| Firmeware | Mode de fonctionnement |
| k9w8 | full lightweight IOS |
| k9w7 | autonomous IOS |
| rcvk9w8 | lightweight recovery image |
Donc je dois trouver un firmware de la famille k9w7 et flasher la borne avec celui-ci.
Il me reste à trouver le bon firmware. La page Cisco indique que la dernière version « Autonomous AP IOS Software » disponible pour ce matériel qui est EOL est la ap3g2-k9w7-tar.153-3.JF15. Malheureusement il faut avoir un compte Cisco et le bon contrat de support associé pour pouvoir la télécharger.
En cherchant sur Internet la plus récente que je trouve est la p3g2-k9w7-tar.153-3.JF10. Pour mon utilisation cela fera l’affaire, mais messieurs de chez Cisco, pour du matos EOL ce serait sympa de permettre de télécharger ces images, au moins les « Autonomous AP IOS Software », surtout dans une démarche visant à donner une seconde vie à ce matériel.
TFTP is my friend
C’est le moment d’installer un serveur tfptd sur mon poste de travail. Je choisi tftpd-hpa qui existe pour ma distribution, et qui à surtout le mérite de pouvoir créer les fichiers lors d’un transfert depuis un switch, ou dans mon cas la borne Cisco vers le serveur tftp. J’installe le paquet, je modifie la configuration comme suit :
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create"
Et je relance le service.
The Good Firmware
Pour flasher la borne, je copie l’archive ap3g2-k9w7-tar.153-3.JF10.tar dans le répertoire /srv/tftp.
Ensuite je me connecte sur la borne via la console sur le port série.
C’est oldschool à souhait, j’adore 😀
Je dois configurer un peu la borne pour qu’elle puisse joindre mon serveur TFTP.
Username: CiscoPassword: Cisco
> enable
Password: Cisco
# debug capwap console cli
# configure terminal(config)# ip tftp blocksize 8192
(config)# ip default-gateway 192.168.0.254
(config)# interface BVI1
(config-if)# ip address 192.168.0.178 255.255.255.0
(config-if)# end
(config)# end
# ping 192.168.0.85
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.85, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/8 ms
# write memory
# archive download-sw /overwrite /reload tftp://192.168.0.85/ap3g2-k9w7-tar.153-3.JF10.tar
[...]
# reload
La commande debug capwap console cli permet d’activer l’accès aux commande IOS, et donc les commandes qui suivent.
La commande ip tftp blocksize 8192 permet de fixer un problème de timeout faisant échouer le téléchargement de l’archive.
La commande ping me permet de vérifier que la borne arrive à joindre le serveur tftp.
La commande write memory copie la running-config dans la startup-config. Pour le novice cela sauvegarde la configuration actuelle pour un prochain reload
Après le reload la console affiche le prompte : « ap> », je peux donc passer « enable » avec le mot de passe Cisco, et vérifier la version installée.
ap> enable
Password: Cisco
# show version
Cisco IOS Software, C2600 Software (AP3G2-K9W7-M), Version 15.3(3)JF10, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2019 by Cisco Systems, Inc.
Compiled Thu 13-Jun-19 16:28 by prod_rel_team
ROM: Bootstrap program is C2600 boot loader
BOOTLDR: C2600 Boot Loader (AP3G2-BOOT-M) LoaderVersion 12.4(25e)JAY, RELEASE SOFTWARE (fc1)
aironet uptime is 2 minutes
System returned to ROM by power-on
System image file is "flash:/ap3g2-k9w7-mx.153-3.JF10/ap3g2-k9w7-xx.153-3.JF10"
Last reload reason
Configuration de la borne
La joie de la configuration via le port série 🙂
ap> enable
Password: Cisco
ap# configure terminal
ap(config)# hotstname aironet
ap(config)# interface bvI 1
ap(config-if)# ip address 192.168.0.178 255.255.255.0
ap(config-if)# end
ap(config)# ip default-gateway 192.168.0.254
ap(config)# dot11 ssid MonSSIDaMoi
ap(config-ssid)# guest-mode
ap(config-ssid)# authentication open
ap(config-ssid)# authentication key-management wpa version 2
ap(config-ssid)# wpa-psk ascii MaSuperPassPhraseSuperSecrete
ap(config-ssid)# end
ap(config)# interface dot11Radio 0
ap(config-if)# encryption mode ciphers aes-ccm
ap(config-if)# ssid MonSSIDaMoi
ap(config-if)# channel least-congested
ap(config-if)# no shutdown
ap(config-if)# end
ap(config)# end
ap(config)# dot11 ssid MonSSIDaMoi5GHz
ap(config-ssid)# guest-mode
ap(config-ssid)# authentication open
ap(config-ssid)# authentication key-management wpa version 2
ap(config-ssid)# wpa-psk ascii MaSuperPassPhraseSuperSecrete
ap(config-ssid)# end
ap(config)# interface dot11Radio 1
ap(config-if)# encryption mode ciphers aes-ccm
ap(config-if)# ssid MonSSIDaMoi5GHz
ap(config-if)# channel 36
ap(config-if)# no shutdown
ap(config-if)# end
ap(config)# end
ap# write memory
Le premier bloc configure l’accès réseau à la borne.
Les blocs 2 et 3 configurent un premier SSID sur l’interface Radio 4.2GHz
Les blocs 4 et 5 configurent une deuxième SSID sur l’interface Radio 5Ghz.
Sauvegarder cette configuration
# aironet#copy running-config tftp://192.168.0.85/my_runing_config
Address or name of remote host [192.168.0.85]?
Destination filename [my_runing_config]?
!!
2305 bytes copied in 0.120 secs (19208 bytes/sec)
Aller voir dans /srv/tfptp vous retouverez votre configuration dans le fichier my_runing_config
Have fun
Références :
- Understanding Access Point OS Images
- Resetting Cisco CAPWAP/LWAP Access Point to Factory Defaults
- Converting a Cisco Aironet AP to Standalone Autonomous Mode
- TFTP Timeout while updating Cisco IOS
- Configure Cisco Access Point using CLI with WPAv2 Authentication
- Converting Cisco Wireless Access Point from Lightweight Mode to Autonomous Mode and Vice Versa
- Access Point Conversion (LAP to AAP and vice versa)