Expect

 

Expect est un outil d’automation, extension du langage de script Tcl qui permet de tester des applications interactives, notamment “Telnet”, “SSH”, “FTP”…

 

Il est notamment possible avec ce langage de faire un script qui permet de connecter automatiquement en Telnet sur un switch et de passer des commandes automatiquement, comme par exemple intégrer certains ports d’un switch dans un VLAN pour une occasion particulière, puis de faire un autre script qui permet de retirer ces ports du VLAN.

Comme pour les scripts en Powershell, les scripts en Expect sont pratiques pour éviter d’avoir à passer des commandes tous les jours. Il suffira juste d’exécuter le script sous une machine virtuelle Linux.

 

Exemple de script Expect :

  • Le script permet d’empêcher tous paquets allant du port 38 vers le port 35.
  • La commande “set timeout” établit le temps minimal à attendre entre chaque commande avant de considérer que le script a arrêté de fonctionner. Si au bout de 10 secondes, une commande ne passe pas, alors le script s’arrêtera.
  • Spawn telnet xxx permet de faire apparaître une machine telnet à l’adresse IP indiqué après.
  • On prévient ensuite le script qu’il doit s’attendre à une demande de login de la part de telnet, on envoie donc ensuite la réponse qui est l’identifiant correspondant au switch. La même chose devra être fait pour le mot de passe.
  • On indique ensuite les commandes que l’on souhaite passer sur le switch.
  • Une fois toutes les commandes indiquées, la ligne “expect eof” indique au script qu’il est terminé (eof signifiant End Of File, littéralement “fin du fichier”).