Objectifs de certification
CCNA 200-301
5.3 Configurer l’accès aux périphériques avec des mots de passe
Méthode Cisco IOS CLI
Ce document est une initiation à la méthode de configuration des commutateurs et des routeurs Cisco. On y évoque la hiérarchie des modes de configuration utilisateur, privilégié et de configuration. On y énonce les facilités de configuration, d’aide, de raccourcis clavier et différentes astuces.
1. Introduction
Un grand nombre de produits Cisco (routeurs, commutateurs, point d’accès, pare-feux, etc.) sont hautement configurables en ligne de commande (CLI) IOS. Le document “Cisco IOS Internetwork Operating System” évoque les différentes variantes du système d’exploitation Cisco Systems.
Quels sont les points à remarquer en tant qu’utilisateur d’un périphérique qui fonctionne en Cisco IOS ?
Une commande validée est immédiatement exécutée en mémoire vive. Les commandes répondent à une certaine logique qui généralement suit celle des protocoles mis en oeuvre.
Les tâches de diagnostic sont simples et explicites.
Une aide performante accompagne ce mode de configuration.
Certaines configurations peuvent comporter un grand nombre de lignes, mais sont susceptibles de subir des automations (exécution de scripts, traitement du texte, copier/coller en console, téléchargement de configuration en FTP ou TFTP, etc.). L’IOS évolue avec les besoins des clients qui demandent de configurations robustes et lisibles. Par exemple, les valeurs par défaut n’apparaissent pas explicitement dans la configuration. La lecture est simplifiée, mais la connaissance des protocoles et du produit devient cruciale. Il s’agit d’un très bon exercice des professionnels du domaine, car ce type d’environnement est souvent rencontré.
Il existe d’autres modes de configuration que la ligne de commande tels que par un navigateur Web ou un logiciel JAVA exécuté en local ou à distance tel que Cisco Security Device Manager (SDM). Mais ces facilités nécessitent la plupart du temps une configuration TCP/IP préalable qu’il faudra exécuter en ligne de commande. Ces modes de configuration établissent un tunnel TCP/IP sécurisé pour exécuter les commandes à distance grâce à un logiciel client et pour transférer des fichiers.
Ces méthodes de configuration et de gestion en ligne de commande sont identiques sur un routeur ou un commutateur faisant fonctionner l’IOS Cisco. On peut considérer que l’on est proche d’un environnement de type “shell” proche d’autres systèmes d’exploitation bien connus. On peut aussi considérer que le CLI Cisco IOS est une compétence encore très recherchée aujourd’hui.
2. Hiérarchie CLI
On se base sur l’invite pour se situer dans un mode. Il faut les droits d’administration (mode privilège) pour exécuter des tâches de diagnostic ou de gestion. Toutes les commandes de configuration de la machine s’exécutent en mode de configuration globale. Toutes les commandes spécifiques pour les interfaces, le routage, des services (dhcp, nat, firewall, …) ont leur mode configuration particulier.
On trouve au moins trois niveaux hiérarchiques CLI principaux :
- Mode utilisateur (User EXEC mode) : session, diagnostic
- Mode privilège (Priviliged EXEC mode) : Administration et gestion (commandes show, debug, copy, erase, …)
- Mode configuration globale (Global Configuration mode)
- Modes de configuration spécifiques
2.1. Passage en mode privilège
Switch>enable
Switch#
C’est le mode “root” du commutateur qui donne au plus au niveau de privilège sur le périphérique Cisco (level 15).
Dans ce mode aucune commande de configuration n’est admise.
Il supporte uniquement des commandes :
- d’information :
debug
,show
,telnet
,ssh
, … - de diagnostic :
ping
, … - de gestion :
telnet
,ssh
,erase
,copy
, …
2.2. Passage en mode de configuration globale
Pour configurer le commutateur, il est nécessaire de passer en configuration globale. Ce mode ne supporte aucunes des commandes du mode privilège.
Switch#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#
2.3. Configuration d’une interface
Switch(config)#interface G0/0
Switch(config-if)#
2.4. Passage aux modes inférieurs
Switch(config-if)#exit
Switch(config)#exit
Switch#
3. Aide, autocomplétion, historique, raccourcis, confort
3.1. Aide
Une aide est accessible via le point d’interrogation ?
.
Switch#show ?
aaa Show AAA values
access-expression List access expression
access-lists List access lists
acircuit Access circuit info
adjacency Adjacent nodes
aliases Display alias commands
alps Alps information
ancp ANCP information
apollo Apollo network information
appletalk AppleTalk information
application Application Routing
arap Show Appletalk Remote Access statistics
archive Archive functions
arp ARP table
async Information on terminal lines used as router interfaces
authentication Shows Auth Manager stats, registrations or sessions
auto Show Automation Template
backup Backup status
banner Display banner information
beep Show BEEP information
bfd BFD protocol info
bgp BGP information
--More--
Switch#show vlan ?
access-log VACL Logging
access-map Vlan access-map
brief VTP all VLAN status in brief
dot1q Display dot1q parameters
filter VLAN filter information
group VLAN group(s) information
id VTP VLAN status by VLAN id
ifindex SNMP ifIndex
internal VLAN internal usage
mtu VLAN MTU information
name VTP VLAN status by VLAN name
private-vlan Private VLAN information
remote-span Remote SPAN VLANs
summary VLAN summary information
| Output modifiers
<cr>
Switch#show vlan name ?
WORD A VTP VLAN name
3.2. Autocomplétion
Les commandes s’autocomplètent avec la touche de tabulation.
#sh <tabulation>
devient #show
switch#sh
switch#show
3.3. Signalement d’erreurs
L’environnement indique l’endroit d’une erreur.
Switch#show cown
^
% Invalid input detected at '^' marker.
3.4. Commandes abrégées
Les commandes s’abrègent s’il n’y a pas d’ambiguïté.
Switch#conf t
au lieu de #configure terminal
Switch#sh ip int b
au lieu de show ip interface brief
Switch#copy r s
au lieu de copy run start
ou copy running-config startup-config
Sans confirmation :
Switch#wr
au lieu de write memory
Dernier exemple sur les interfaces
Switch(config)#int g0/0
au lieu de (config)#interface GigabitEthernet 0/0
3.5. Ambiguïté
- En cas d’ambiguïté, l’environnement propose les choix.
Switch#con t
% Ambiguous command: "con t"
Switch#con
Switch#con
Switch#con?
configure connect
Switch#con
3.6. Raccourcis clavier
Raccourcis clavier (Emacs) : on peut faire défiler l’historique des commandes avec les flèches du haut et du bas, on peut revenir au mode privilège directement (CTRL-Z), etc.
Séquence | Description |
---|---|
CTRL-A | Début de ligne |
CTRL-E | Fin de ligne |
CTRL-P ou bas | Commande précédente |
CTRL-N ou haut | Commande suivante |
CTRL-F ou droite | Curseur vers la droite |
CTRL-B ou gauche | Curseur vers la gauche |
CTRL-Z | Retour au mode privilège |
CRTL-C | Interruption |
CTRL-SHIFT-6 / CTRL-SHIFT§ | Interruption forcée |
TAB | Complète un commande |
Backspace | Efface un caractère vers la gauche |
CTRL-R | Réaffichage de la ligne |
CTRL-U | Efface la ligne |
CTRL-W | Efface un mot |
ESC-b | recule d’un mot |
ESC-f | Avance d’un mot |
4. Facilités à configurer
4.1. Commande do
La commande do
permet d’exécuter une commande du mode privilège dans un autre mode.
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#show run
^
% Invalid input detected at '^' marker.
Switch(config)#do show run
Building configuration...
4.2. Apparition des logs
Par défaut les logs apparaissent dans la console, mais pas en terminal distant.
Dans une session Telnet ou SSH, les logs apparaissent suite à la commande :
Switch#terminal monitor
4.3. Messages synchronisés de la console
On peut recevoir des messages du routeur qui trouble l’entrée des commandes. Voici une illustration :
Switch#confi
%SYS-5-CONFIG_I : Configured from console by consolegure
Enter configuration commands, one per line. End with CNTL/Z.
Switch#
Pour éviter ce problème, on peut demander un logging synchronous sur la console :
Switch(config)#line con 0
Switch(config-line)#logging synchronous
Voici l’éventuel résultat :
Switch#confi
%SYS-5-CONFIG_I : Configured from console by console
Switch#configure
4.4. Désactivation des recherches DNS
Sans résolution DNS, une frappe erronée ne correspondant pas à une commande peut être interprétée en mode privilège comme une tentative de connexion distante SSH et bloquer un certain temps la console :
Switch#zozo
On désactive la recherche DNS avec la commande :
Switch(config)# no ip domain-lookup
ou
Switch(config)# no ip domain lookup
4.5. Filtrer les sorties des commandes show
et more
La commande show
offre énormément d’informations sur un système Cisco. La commande more
permet d’afficher un fichier à la manière de la commande Unix.
A condition de bien connaître les sorties et de savoir ce que l’on cherche précisément, Cisco IOS propose une fonctionnalité de traitement des sorties à la manière des redirections (pipe) Bash ou PowerShell. Le tube (pipe) redirige la sortie pour être traitée par un programme begin
, include
ou encore count
parmi d’autres.
#show running-config | ?
append Append redirected output to URL (URLs supporting append operation
only)
begin Begin with the line that matches
count Count number of lines which match regexp
exclude Exclude lines that match
format Format the output using the specified spec file
include Include lines that match
redirect Redirect output to URL
section Filter a section of output
tee Copy output to URL
Ces programmes ressemblent fort à des programmes Unix qui attendent un motif comme critère de filtrage. Ce motif est exprimé sous forme d’expression rationnelle (RegExp, Regular Expression).
#show running-config | begin ?
LINE Regular Expression
Par exemple, pour afficher le statut des interfaces uniquement sur GigabitEthernet0/0
#show ip interface brief | include GigabitEthernet0/0
GigabitEthernet0/0 unassigned YES unset up up
Par exemple, pour commencer une sortie sur un motif.
#show running-config | begin interface GigabitEthernet1/0
interface GigabitEthernet1/0
media-type rj45
negotiation auto
spanning-tree portfast edge
!
interface GigabitEthernet1/1
media-type rj45
negotiation auto
spanning-tree portfast edge
!
interface GigabitEthernet1/2
media-type rj45
negotiation auto
spanning-tree portfast edge
!
interface GigabitEthernet1/3
media-type rj45
negotiation auto
spanning-tree portfast edge
!
interface GigabitEthernet2/0
media-type rj45
negotiation auto
--More--