Cisco et ses commandes utiles
Présentation de quelques astuces et commandes pratiques sur l'IOS de Cisco.
Ce post a pour objectif de présenter quelques astuces et commandes pratiques sur l'IOS de Cisco.
TCLSH
Le TCLSH de Cisco permet de créer des scripts et d'appliquer un ensemble de configuration sur un routeur en même temps.
TCLSH se veut être la commande la plus pratique lorsqu'il s'agit modifier une configuration d'un routeur sans prendre le risque de perdre la main sur l'équipement.
Exemple de script tclsh :
En mode enable, on rentre dans le mode de configuration tclsh :
router#tclsh foreach i { 1.1.1.1 2.2.2.2 3.3.3.3 } { ping $i source vlan3 }
Le script se lance ensuite et effectue un ping de la listes des adresses IPs depuis l'interface vlan3.
Si nous souhaitons modifier l'interface WAN d'un routeur (nombre de pairs, adresse IP de l'interconnexion etc.) sans perdre la main, il nous faut écrire un fichier texte avec l'ensemble de la configuration souhaitée, puis enregistrer ce fichier dans la mémoire run.
Exemple de modification du nombre de paires sur une interface SDSL :
routeur#tclsh router(tcl)#puts [open "flash:script.txt" w+] { no int eth0 controller shdsl 0 no dsl-group 0 pairs 0, 1 efm-bond dsl-group 0 pairs 0, 1, 2, 3 efm-bond exit interface Ethernet0 no ip address ! interface Ethernet0.1 encapsulation dot1Q 2900 ip virtual-reassembly in pppoe enable group global pppoe-client dial-pool-number 1 service-policy output c2e ! tclquit
On vérifie ensuite la bonne présence du fichier dans la mémoire flash :
more flash:script.txt
On demande au routeur de redémarrer dans 5 minutes :
reload in 5
On peut maintenant copier le contenu du fichier script dans la running-config, si la configuration est conforme on annule le redémarrage, sinon on laisse le routeur redémarré.
copy flash:script.txt running-config
Port Mirroring
Si l'on souhaite mirrorer l'ensemble de flux entrants de l'interface 5.18 vers l'interface 5/10 :
monitor session 1 source interface Gi5/18 monitor session 1 filter packet-type good rx monitor session 1 destination interface Gi5/10
On réplique seulement les paquets entrants de l'interface 5/18, si l'on souhaite mirrorer seulement les flux sortants il s'agit de l'argument tx, si l'on souhaite les flux entrants et sortants il s'agit de both.
Attention, cette commande n'est pas présente sur tous les IOS
NAT/Dnat
Dnat : (Redirection de port de destination)
Il faut d'abord définir une interface inside et une interface outside.
interface vlan 1 description LAN ip nat inside ! interface fa4 description WAN ip nat outside
L'interface d'entrée est inside, l'interface de sortie est outside.
ip nat inside source static tcp 172.26.156.254 22 interface Virtual-PPP1 2222
On redirige l'ensemble des flux à destination de l'adresse IP de l'interface Virtual-PPP1 sur le port 2222, vers un équipement interne 172.26.156.254 sur le port 22.
NAT : (Source NAT)
Dans ce cas, l'interface LAN est inside et l'interface de sortie Virtual-PPP1 est outside.
ip nat inside source list 99 interface Virtual-PPP1 (interface de sortie) overload
Ici on effectue une redirection de port de l'access-list 99 sur l'interface Virtual-PPP1. (ie. l'ACL 99 correspondant à 192.168.90.0/24 est naté sur l'adresse IP de l'interface Virtual-PPP1 en modifiant le port source.)
Monitorer les flux sur une interface
ip flow top-talkers est la commande de Cisco permettant d'afficher des statistiques détaillées sur l'utilisation du réseau. Ces statistiques correspondent à l'IP et au port source et destination.
Exemple de monitoring des flux entre le LAN et l’extérieur (ici Dialer 0)
routeur#configure terminak ip flow-top-talkers sort-by bytes top 50 cache-timeout 30000 interface Dialer 0 ip flow egress interface vlan 1 ip flow ingress end
On affiche ensuite la table top-talkers :
router#show ip flow top-talkers SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Bytes Vl1 192.168.1.2 Vl1 8.8.8.8 06 E4CD 0BB7 904 Vl1 192.168.1.2 Vl1 90.34.20.1 06 F7DF 01BB 77 Vl1 192.168.1.2 Vl1 189.102.20.13 06 F7DF 01BB 40 3 of 50 top talkers shown. 3 flows processed.
Cette solution permet seulement d'obtenir les flux à un instant T, pour avoir un historique il faudra mettre en place un serveur netflow.
Mise en place d'une ACL pour limiter le trafic sur une IP spécifique :
conf t access-list 107 permit ip any host 213.139.127.144(@IP à limité, adresse source tout le réseau LAN) access-list 107 permit ip host 213.139.127.144 any (dans les deux sens) rate-limit input access-group 107 150000(150kbit/s) 1500(normalburst) 2000(maximum burst) conform-action transmit exceed-action drop (drop si c'est au dessus) rate-limit output access-group 107 150000 1500 2000 conform-action transmit exceed-action drop (dans les deux sens) show access-lists pour voir si des matchs ont lieux (connexion) show ip-top-talkers pour vérifier
Archive
La commande archive sous IOS permet de versionner les configurations, très pratique lorsque nous ne sommes pas sûr du résultat ou que l'on souhaite voir les différences entre version.
Archive permet d'éviter le reload in 5 puisque lors d'une modification de la configuration du routeur, nous pouvons revenir en arrière si nous ne confirmons pas les changements. (Comme le commit confirm sous JunOS)
Pour la mise en place nous devons activer la fonctionnalité archive puis indiquer l'emplacement de sauvegarde et le nombre de sauvegarde maximum:
router# conf t router(config)#archive log config path flash: maximum 5 write-memory
write-memory permettra d'enregistrer la configuration dès lors que nous effectuons un wr.
La commande suivante demande au routeur de faire un retour arrière dans 5 minutes, le temps d'appliquer la configuration souhaitée.
config t revert timer 5
Si la modification nous convient, on annule le rollback avec :
configure confirm