Ich versuche, Client / Server-Sockets in Cisco EEM 3.0 TCL mit IOS Version 12.4 (24) T8 einzurichten (dies wurde kürzlich aktualisiert, um festzustellen, ob das Problem EEM ver war).
Ich habe die folgenden zwei Beispiel-Tcl-Skripte (siehe: 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 ist einem Loopback zugeordnet.
Wenn ich die Überwachungsports über den Befehl "show control-plane host open-ports" anzeige, überwacht der Server-Port von 12345, aber das Client-Skript erzeugt keine Ausgabe. Ein Telnet zum Router (über eine physische Schnittstelle) an Port 12345 führt dazu, dass eine Verbindung abgelehnt wird. Es sind keine ACLs aktiviert.
Diese Skripts funktionieren auf einem Windows XP-Computer mit ActiveTCL 8.5.
Ist dies ein Fehler oder eine Sicherheitsfunktion in EEM 3.0? Sind zusätzliche Befehle oder Einstellungen erforderlich, um TCP-Sockets in EEM 3.0 zu aktivieren?