Usiłuję skonfigurować gniazda klienta / serwera w Cisco EEM 3.0 TCL z IOS w wersji 12.4 (24) T8 (to zostało niedawno zaktualizowane, aby ustalić, czy przyczyną problemu była wersja EEM).
Mam dwa następujące przykładowe skrypty Tcl (zob .: 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 jest przypisany do pętli zwrotnej.
Kiedy pokazuję porty nasłuchujące za pomocą polecenia „pokaż otwarte porty hosta płaszczyzny sterowania”, port serwera 12345 nasłuchuje, ale skrypt klienta nie generuje żadnych danych wyjściowych. Telnet do routera (przez interfejs fizyczny) do portu 12345 powoduje odmowę połączenia. Żadne listy ACL nie są włączone.
Te skrypty działają z komputera z systemem Windows XP z systemem ActiveTCL 8.5.
Czy jest to błąd lub funkcja bezpieczeństwa w EEM 3.0? Czy wymagane są dodatkowe polecenia lub ustawienia, aby włączyć gniazda TCP w EEM 3.0?