โปรแกรมวาด Network Topology แบบอัตโนมัติด้วยการ Crawl บน Network

ไล่วาด Network Topology ด้วยโปรแกรมของผม

Nopnithi Khaokaew (Game)
2 min readJul 8, 2019

— — — — — — — — — — — — — — —
สารบัญเนื้อหาทั้งหมด (My Contents)
— — — — — — — — — — — — — — —

— — — — — — — — — — — — — — — — — — — — — — — -

ฝากคอร์ส Python for Network Automation ผมด้วยครับ

— — — — — — — — — — — — — — — — — — — — — — — -

โปรแกรมนี้อาจมีประโยชน์จริง ๆ สำหรับบางกรณีเท่านั้น ทว่าเหตุผลที่ผมเขียนโปรแกรมนี้ขึ้นมาก็เพื่อ “ฝึกทักษะด้าน programming” เป็นหลักครับ

โปรแกรมทำงานยังไง? ลองดูเหตุการณ์สมมุตินี้

สมมุติว่าคุณสามารถ SSH เข้าไปยัง R2 ได้แค่ตัวเดียวผ่านทาง MGMT network ถ้าหากคุณอยากรู้ว่า network topology ทั้งหมดหน้าตาเป็นยังไงคุณจะทำอย่างไรครับ?

แน่นอนว่าคุณก็อาจจะต้องใช้ show command ใน CLI เพื่อดูว่าใน R2 นั้นมี interface อะไรบ้าง จากนั้นก็ไล่ telnet/SSH จาก R2 ไปยัง router ตัวอื่น ๆ บน network

ถ้า network นี้มี router สัก 20 ตัวคุณคงต้องนั่งมือหงิก telnet/SSH ไล่ไปทีละ hop เพื่อวาด network diagram ออกมา อ๋อ…ยังไม่ได้พูดถึง human error ที่อาจจะเกิดขึ้นอีกนะ

ทั้งหมดทั้งมวลนี้โปรแกรม Network Spider ของผมทำได้อย่างง่ายดาย ลองไปดูได้ในวิดีโอด้านล่างนี้เลยครับ

Development tools

  • Python
  • HTML
  • Javascript

Algorithm ที่ผมใช้

DFS หรือ Depth-First Search นั้นคือการ traverse ไปตามกราฟในแนวลึก ถ้าใครสนใจลองศึกษาเพิ่มเติมได้ครับ เริ่มจากลิงค์ด้านล่างนี้ก่อนเลยก็ได้

วิดีโอตัวอย่างการทำงานของโปรแกรม

ป.ล. โปรแกรมนี้ไม่ได้ใช้ NETCONF หรือ RESTCONF นะครับ ยังคง interface กับอุปกรณ์ผ่าน CLI เช่นเดิม

— — — — — — — — — — — — — — —
สารบัญเนื้อหาทั้งหมด (My Contents)
— — — — — — — — — — — — — — —

--

--

Nopnithi Khaokaew (Game)
Nopnithi Khaokaew (Game)

Written by Nopnithi Khaokaew (Game)

Cloud Solutions Architect & Hobbyist Developer | 6x AWS Certified, CKA, CKAD, 2x HashiCorp Certified (Terraform, Vault), etc.

No responses yet