ฉันกำลังพยายามตั้งค่าซ็อกเก็ตไคลเอ็นต์ / เซิร์ฟเวอร์ใน 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 control-plane host open-ports" พอร์ตเซิร์ฟเวอร์ของ 12345 กำลังฟัง แต่สคริปต์ไคลเอ็นต์ไม่สร้างเอาต์พุตใด ๆ telnet ไปยังเราเตอร์ (ผ่านอินเทอร์เฟซทางกายภาพ) ไปยังพอร์ต 12345 ส่งผลให้การเชื่อมต่อถูกปฏิเสธ ไม่มี ACL ที่เปิดใช้งาน
สคริปต์เหล่านี้ทำงานจากคอมพิวเตอร์ Windows XP ที่รัน ActiveTCL 8.5
นี่เป็นข้อบกพร่องหรือคุณลักษณะด้านความปลอดภัยภายใน EEM 3.0 หรือไม่ จำเป็นต้องมีคำสั่งหรือการตั้งค่าเพิ่มเติมเพื่อเปิดใช้งานซ็อกเก็ต TCP ภายใน EEM 3.0 หรือไม่