Я пытаюсь настроить сокеты клиент / сервер в Cisco EEM 3.0 TCL с версией IOS 12.4 (24) T8 (это было недавно обновлено, чтобы определить, была ли проблема EEM ver).
У меня есть следующие два примера сценариев Tcl (ссылка: 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 назначен на петлю.
Когда я показываю порты прослушивания с помощью команды show open-plane host open-ports, серверный порт 12345 прослушивает, но клиентский скрипт не выдает никаких выходных данных. Телнет к маршрутизатору (через физический интерфейс) к порту 12345 приводит к отказу в соединении. ACL не включены.
Эти сценарии работают с компьютера под управлением Windows XP с ActiveTCL 8.5.
Это ошибка или функция безопасности в EEM 3.0? Требуются ли какие-либо дополнительные команды или настройки для включения сокетов TCP в EEM 3.0?