Sto tentando di impostare socket client / server in Cisco EEM 3.0 TCL con IOS versione 12.4 (24) T8 (questo è stato recentemente aggiornato per determinare se il problema era ver EEM).
Ho i seguenti due script Tcl di esempio (rif: 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 è assegnato a un loopback.
Quando visualizzo le porte di ascolto tramite il comando "show open host host open-doors", la porta del server 12345 è in ascolto, ma lo script client non produce alcun output. Un telnet al router (tramite un'interfaccia fisica) alla porta 12345 comporta il rifiuto di una connessione. Nessun ACL è abilitato.
Questi script funzionano da un computer Windows XP che esegue ActiveTCL 8.5.
Si tratta di un bug o di una funzione di sicurezza all'interno di EEM 3.0? Sono necessari ulteriori comandi o impostazioni per abilitare i socket TCP in EEM 3.0?