Я намагаюся налаштувати клієнтські / серверні розетки в Cisco EEM 3.0 TCL з IOS версії 12.4 (24) T8 (це нещодавно було оновлено, щоб визначити, чи була проблема у версії EEM).
У мене є наступні два приклади сценаріїв 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 призначено для зворотного зв'язку.
Коли я показую порти прослуховування за допомогою команди «показати контрольну площину хоста відкритих портів», порт сервера 12345 прослуховує, але клієнтський сценарій не видає жодного виводу. Телнет до маршрутизатора (через фізичний інтерфейс) для порту 12345 призводить до відмови в з’єднанні. Не ввімкнено ACL.
Ці сценарії працюють з комп'ютера під керуванням Windows XP під управлінням ActiveTCL 8.5.
Це помилка чи функція безпеки в EEM 3.0? Чи потрібні додаткові команди чи налаштування для включення TCP-розеток в межах EEM 3.0?