Aller au contenu principal
Xsec

Aide, autocomplétion, supervision, raccourcis

Publié le 11 min de lecture

Mis à jour le

Partie 4 sur 6
Dans cette série41 min de lecture au total
  1. COUCHE 2 Vlan, Spanning-tree, Trunk, EtherChannel et encapsulation Dot1Q
  2. COUCHE 3 Routage statique, RIPv2, OSPF, NAT
  3. La hiérarchie du CLI Cisco
  4. Aide, autocomplétion, supervision, raccourcis
  5. Configuration des switchs Alcatel
  6. Accès distants

Le CLI Cisco n’a ni souris, ni menu, ni message d’aide contextuelle. Tout se joue sur une invite de commande et quelques conventions, les mêmes depuis des décennies. Les connaître transforme une session pénible en travail rapide.

Cet article suit le déroulé d’une session réelle : d’abord savoir où l’on se trouve, puis taper vite et juste, rendre la console supportable, lire ce que l’équipement a dans le ventre, et enfin modifier puis sauvegarder.

Se repérer : les modes du CLI

Tout commence par l’invite. Elle indique deux choses en permanence : le nom de l’équipement, et le mode dans lequel vous vous trouvez. Ce mode détermine quelles commandes sont acceptées, et c’est la première cause de « commande invalide » chez les débutants.

InviteModeCe qu’on y faitComment y entrer
Switch>utilisateurconsultation très limitéemode d’arrivée par défaut
Switch#privilégiétous les show, redémarrage, sauvegardeenable
Switch(config)#configuration globaleréglages de l’équipement entierconfigure terminal
Switch(config-if)#configuration d’interfaceréglages d’un port précisinterface FastEthernet0/1
Switch(config-line)#configuration de ligneconsole, VTY, accès distantline console 0

On descend dans la hiérarchie en nommant ce que l’on veut configurer, et on remonte avec exit, d’un cran à la fois. CTRL + Z ramène directement au mode privilégié depuis n’importe quelle profondeur.

Switch>
enable
Switch#configure terminal
Switch(config)#interface FastEthernet0/1
Switch(config-if)#exit
Switch(config)#
TipLire l'invite avant de chercher l'erreur

Une commande refusée est bien plus souvent une commande tapée dans le mauvais mode qu’une commande mal orthographiée. show running-config ne passe pas en (config)#, ip address ne passe pas en #. Le réflexe utile est de lire l’invite avant de relire la commande.

Une fois le mode identifié, reste à taper la commande, et l’équipement offre plusieurs aides pour cela.

Taper moins et se tromper moins

Le point d’interrogation

? affiche les options disponibles à l’endroit où vous êtes dans la commande.

Router#
show ?
aaa Show AAA values
access-lists List access lists
arp Arp table
cdp CDP information
class-map Show QoS Class Map
clock Display the system clock
controllers Interface controllers status
crypto Encryption module
debugging State of each debugging option
dhcp Dynamic Host Configuration Protocol status
dot11 IEEE 802.11 show information
file Show filesystem information
flash: display information about flash: file system
flow Flow information
frame-relay Frame-Relay information
history Display the session command history
hosts IP domain-name, lookup style, nameservers, and host table
interfaces Interface status and configuration
ip IP information
ipv6 IPv6 information
license Show license information
line TTY line information
--More--

Le --More-- signale que la liste dépasse la hauteur de la fenêtre. Entrée fait défiler ligne par ligne, Espace écran par écran, et Q interrompt l’affichage.

TipLe ? fonctionne aussi en cours de mot

Tapé collé à un début de mot, sh?, il liste les commandes commençant par ces lettres. Tapé après un espace, show ?, il liste les arguments possibles. C’est la documentation intégrée de l’équipement, disponible même sans réseau.

L’autocomplétion

La touche TAB complète une commande dès qu’elle n’est plus ambiguë : sh devient show, int devient interface. Tant que plusieurs commandes partagent le même début, il faut taper une lettre de plus pour lever l’ambiguïté.

Les abréviations

Il n’est même pas nécessaire de compléter : le CLI accepte toute abréviation non ambiguë telle quelle.

AbréviationCommande complète
conf tconfigure terminal
sh runshow running-config
sh ip int bshow ip interface brief
wrwrite memory
int g0/0interface GigabitEthernet0/0
no shutno shutdown
WarningLes abréviations dépannent, elles ne documentent pas

Elles sont parfaites en session interactive. Dans un script, une procédure ou une capture destinée à un collègue, écrivez la commande complète : une abréviation ambiguë sur une autre version d’IOS produit une erreur difficile à comprendre pour qui relit.

Le rapport d’erreur

Quand une commande est refusée, l’équipement pointe l’endroit exact du problème avec un accent circonflexe.

Router#
sh ip routte
^
% Invalid input detected at '^' marker.

Le marqueur indique le premier caractère que l’analyseur n’a pas su interpréter. Ici, tout ce qui précède est valide, la faute est bien sur routte.

Les raccourcis clavier

SéquenceDescription
CTRL + ADébut de ligne
CTRL + EFin de ligne
CTRL + P ou Commande précédente
CTRL + N ou Commande suivante
CTRL + F ou Curseur à droite
CTRL + B ou Curseur à gauche
ESC + fAvancer d’un mot
ESC + bReculer d’un mot
CTRL + WEffacer le mot précédent
CTRL + UEffacer la ligne entière
CTRL + RRéafficher la ligne en cours
CTRL + ZRetour au mode privilégié
CTRL + CInterrompre la commande
CTRL + SHIFT + 6Interruption forcée, pour un ping ou un traceroute bloqué
TABCompléter la commande
NoteCe sont les raccourcis Emacs

CTRL+A début de ligne, CTRL+E fin de ligne, CTRL+P précédent, CTRL+N suivant : ce sont exactement les conventions d’Emacs, reprises par readline et donc par bash. Les réflexes acquis dans un terminal Linux se transposent directement sur un équipement Cisco.

Ces aides suffisent à taper vite. Encore faut-il que la console ne travaille pas contre vous.

Rendre la console utilisable

Trois comportements par défaut d’IOS gênent en permanence. Chacun se désactive en une commande.

La résolution DNS des fautes de frappe

En mode privilégié, une commande inconnue est interprétée comme un nom d’hôte à joindre. L’équipement tente alors une résolution DNS et bloque la console plusieurs dizaines de secondes.

Switch#
showe
Translating "showe"...domain server (255.255.255.255)
Switch(config)#
no ip domain-lookup
Warning

Cette commande désactive toute résolution de noms sur l’équipement, y compris celle dont vous pourriez avoir besoin pour un ping www.exemple.fr. Sur un équipement de production qui utilise réellement le DNS, préférez configurer un serveur joignable avec ip name-server plutôt que de tout couper.

Les messages qui coupent la saisie

Chaque changement d’état d’interface écrit un message sur la console, en plein milieu de ce que vous êtes en train de taper.

Terminal
%LINK-1-CHANGED: Interface FastEthernet0/1, changed state to up

Deux réponses possibles, et la seconde est presque toujours la bonne.

Switch(config)#
line console 0
logging synchronous

Les messages continuent de s’afficher, mais l’équipement réaffiche votre ligne en cours juste en dessous. Vous gardez l’information sans perdre votre saisie. C’est le réglage à appliquer par défaut sur toute console.

Switch(config)#
no logging console

Les messages ne s’affichent plus du tout. Confortable pendant une longue configuration, mais vous perdez aussi les alertes utiles, comme une interface qui refuse de monter. À réserver aux cas où le bruit est vraiment ingérable, et à réactiver ensuite.

La pagination

Le --More-- oblige à appuyer sur une touche à chaque écran, ce qui empêche de copier une configuration entière d’un seul bloc.

Switch#
terminal length 0

La valeur 0 supprime la pagination pour la session en cours uniquement. Elle revient à la normale à la reconnexion, ce qui en fait un réglage sans risque.

La console est maintenant docile. On peut lire l’équipement.

Lire la configuration de l’équipement

La configuration générale

Switch#
show running-config
Building configuration...
Current configuration : 1080 bytes
!
version 15.0
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Switch
!
!
!
!
!
!
spanning-tree mode pvst
spanning-tree extend system-id
!
interface FastEthernet0/1
!
interface FastEthernet0/2
--More--

Cette commande affiche la configuration active en mémoire : hostname, services, interfaces, spanning-tree, mots de passe. C’est le point de départ de tout diagnostic.

La configuration VLAN

Switch#
show vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig0/1, Gig0/2
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1 enet 100001 1500 - - - - - 0 0
1002 fddi 101002 1500 - - - - - 0 0
1003 tr 101003 1500 - - - - - 0 0
1004 fdnet 101004 1500 - - - ieee - 0 0
1005 trnet 101005 1500 - - - ibm - 0 0
--More--

Toutes les interfaces Fa0/1 à Fa0/24 et Gig0/1 à Gig0/2 appartiennent au VLAN 1, celui par défaut.

Note

Les VLANs 1002, 1003, 1004 et 1005 sont réservés par le système pour le Token Ring et le FDDI. Ces technologies étant obsolètes, ces VLANs ne sont jamais utilisés et ne peuvent pas être supprimés.

Filtrer les résultats

Une configuration de plusieurs centaines de lignes est illisible telle quelle. Le caractère | filtre la sortie de n’importe quelle commande show.

Router#
sh run | include interface
interface GigabitEthernet0/0/0
interface GigabitEthernet0/0/1
interface GigabitEthernet0/0/2
interface Vlan1

Quatre filtres couvrent la quasi-totalité des besoins :

FiltreEffetExemple
includene garde que les lignes contenant le motifsh run | include hostname
excluderetire les lignes contenant le motifsh run | exclude !
begindémarre l’affichage à la première ligne correspondantesh run | begin interface
sectionaffiche le bloc de configuration completsh run | section interface Fa0/1
Tipsection est le plus utile des quatre

include ne renvoie que la ligne correspondante, ce qui suffit rarement pour une interface dont la configuration tient sur cinq lignes. section renvoie tout le bloc, indentation comprise, et donne immédiatement le contexte complet.

La lecture faite, passons aux modifications.

Modifier, annuler et sauvegarder

Renommer l’équipement

Switch(config)#
hostname MON_SWITCH

Le changement est immédiat et visible dans l’invite, ce qui évite de configurer le mauvais équipement dans une salle qui en compte dix.

Protéger le mode privilégié

Switch(config)#
enable secret MON_MOT_DE_PASSE
Importantsecret et non password

enable password stocke le mot de passe en clair dans la configuration, lisible par quiconque exécute un show running-config. enable secret en stocke une empreinte. Les deux peuvent coexister, et dans ce cas c’est secret qui l’emporte. Il n’y a aucune raison d’utiliser enable password aujourd’hui.

Annuler avec no

Le préfixe no supprime, désactive ou efface toute commande précédemment saisie. C’est le mécanisme d’annulation universel d’IOS.

Router(config-if)#
no ip address 192.168.1.1 255.255.255.0

Retire l’adresse IP attribuée à l’interface.

Router(config)#
no router ospf 1

Désactive OSPF et supprime toute sa configuration.

Warning

no sur un bloc entier, comme no router ospf 1, efface d’un coup toutes les lignes qu’il contenait. Il n’existe pas d’annulation de l’annulation : la seule sortie de secours est la configuration sauvegardée, d’où l’intérêt de la section suivante.

Exécuter une commande d’un autre mode avec do

Les commandes show appartiennent au mode privilégié et sont refusées en configuration. Le préfixe do les exécute sans quitter le mode courant.

Switch(config)#
show run
^
% Invalid input detected at '^' marker.
Switch(config)#do show run
Building configuration...

Cela évite de faire l’aller-retour exit puis configure terminal, et donc de perdre le contexte d’interface dans lequel on travaillait.

Sauvegarder, l’étape que tout le monde oublie

Un équipement Cisco maintient deux configurations distinctes, et c’est la source d’erreur la plus coûteuse du CLI.

ConfigurationOù elle vitCe qui lui arrive au redémarrage
running-configen mémoire viveperdue
startup-configen mémoire non volatilerechargée telle quelle

Toutes les commandes de cet article modifient la running-config, et prennent effet immédiatement. Aucune ne survit à une coupure de courant tant qu’elle n’a pas été recopiée.

Switch#
copy running-config startup-config
Switch#
write memory

Les deux commandes font la même chose, la seconde étant l’abréviation historique, d’où le wr du tableau des abréviations. Pour vérifier ce qui sera réellement rechargé :

Switch#
show startup-config
TipNe pas sauvegarder peut être une stratégie

Sur une modification risquée à distance, comme un changement d’adressage ou une liste de contrôle d’accès, ne pas sauvegarder est une sécurité : si vous perdez la main sur l’équipement, un redémarrage restaure la dernière configuration fonctionnelle. Ne sauvegardez qu’une fois la connectivité confirmée.

Ces réflexes, modes, aide intégrée, filtres et sauvegarde, se retrouvent tels quels dans les autres articles de la série, qui les appliquent à la configuration des VLANs, du routage et des accès distants.

Utiliser avec une IA

Actions