Estoy intentando configurar sockets de cliente / servidor en Cisco EEM 3.0 TCL con IOS versión 12.4 (24) T8 (esto se actualizó recientemente para determinar si el problema era EEM ver).
Tengo los siguientes dos scripts de ejemplo Tcl (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 se asigna a un loopback.
Cuando muestro los puertos de escucha a través del comando "show control-plane host open-ports", el puerto del servidor de 12345 está escuchando, pero el script del cliente no produce ningún resultado. Un telnet al enrutador (a través de una interfaz física) al puerto 12345 da como resultado una conexión rechazada. No hay ACL habilitadas.
Estas secuencias de comandos funcionan desde una computadora con Windows XP que ejecuta ActiveTCL 8.5.
¿Es esto un error o una característica de seguridad dentro de EEM 3.0? ¿Se requieren comandos o configuraciones adicionales para habilitar los sockets TCP dentro de EEM 3.0?
fuente
Respuestas:
Comenzaría con los comandos de depuración. Yo comenzaría con
debug event manager tcl cli
Hay más información en el documento de mejores prácticas de EEM en https://supportforums.cisco.com/docs/DOC-12757 sobre depuración y solución de problemas.
fuente