J'essaye d'installer des sockets client / serveur dans Cisco EEM 3.0 TCL avec IOS version 12.4 (24) T8 (ceci a été récemment mis à niveau pour déterminer si le problème était EEM ver).
J'ai les deux exemples de scripts Tcl suivants (ref: http://wiki.tcl.tk/15315 )
Server.tcl:
::cisco::eem::event_register_none maxrun 120
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
proc accept {chan addr port} {
puts "$addr:$port says [gets $chan]"
puts $chan goodbye
close $chan
}
socket -server accept 12345
vwait forever
Client.tcl:
::cisco::eem::event_register_none maxrun 20
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
set chan [socket 10.0.0.2 12345]
puts $chan hello
flush $chan
puts "10.0.0.2:12345 says [gets $chan]"
close $chan
10.0.0.2 est affecté à un bouclage.
Lorsque je montre les ports d'écoute via la commande "show control-plane host open-ports", le port serveur de 12345 écoute, mais le script client ne produit aucune sortie. Un telnet au routeur (via une interface physique) au port 12345 entraîne une connexion refusée. Aucune ACL n'est activée.
Ces scripts fonctionnent à partir d'un ordinateur Windows XP exécutant ActiveTCL 8.5.
Est-ce un bug ou une fonction de sécurité dans EEM 3.0? Des commandes ou paramètres supplémentaires sont-ils requis pour activer les sockets TCP dans EEM 3.0?