الشبكات

NetAtlas

🗺️ ما هو:

NetAtlas محرّك بايثون يكتشف الشكل الحقيقي والحالي لشبكة Cisco من جداول جيران CDP وLLDP التي تحفظها الأجهزة أصلًا، ويرسمه مخطّطًا وجردًا بصيغة Markdown، ويوثّق الطوبولوجيا في git، ويبلّغ عن أي جهاز أو وصلة ظهرت أو اختفت منذ خط الأساس المعتمَد. مبني ومعروض على مختبر GNS3.

❓ المشكلة:

توثيق الشبكة يصبح قديمًا لحظة كتابته — تُعاد وصلة، يُضاف سويتش، يُنقل منفذ وصول، ويبقى المخطّط على الويكي يعرض شبكة الربع الماضي. ولا تملك أغلب الفرق الصغيرة طريقة آلية لمعرفة الشكل الفعلي لشبكتها الآن، ولا لملاحظة تغيّرها بصمت.

⚙️ ماذا يفعل:

يستعلم كل جهاز بذرة عن تفاصيل جيران CDP وLLDP وحقائق الواجهات (Netmiko/SSH، أو الطرفية في المختبر)

يحلّل جداول الجيران إلى تجاورات، مُوحّدًا أسماء الواجهات والأجهزة كي يتّفق CDP وLLDP وتُحتسب كل وصلة فيزيائية مرة واحدة

يبني رسمًا بيانيًا للشبكة كاملة — بما فيها أجهزة لم تكن في المخزون قط، وهي تمامًا الثغرة التي يخفيها التوثيق القديم

يرسم مخطّطًا (networkx + matplotlib) ويكتب جردًا وقائمة تجاور بصيغة Markdown، يُعاد توليدهما من الصفر كل تشغيل فلا يتقادمان

يوثّق الطوبولوجيا كخط أساس JSON، وفي التشغيلات اللاحقة يبلّغ عن كل جهاز ووصلة أُضيفت أو أُزيلت كانحراف

يسجّل كل تشغيل في سجلّ تدقيق

🧰 التقنيات:

الوصول للأجهزة — Netmiko (SSH)، والطرفية لمختبر GNS3

بيانات الجيران — CDP وLLDP‏ (show ... neighbors detail)

نموذج الرسم البياني — networkx

المخطّط — matplotlib (مع إصدار Graphviz DOT أيضًا)

إدارة الإصدارات — git (خط أساس الطوبولوجيا مُوثّق)

بناء المختبر — واجهة GNS3 v2 REST

التقنيات المستخدمة

PythonNetmikoCDP/LLDPnetworkxmatplotlibgitGNS3pytest
1

طوبولوجيا مختبر GNS3 (لوحة حيّة)

طوبولوجيا مختبر GNS3 (لوحة حيّة)

لوحة GNS3 الفعلية — R1 وR2 وR3 تشكّل النواة، وSW1 وSW2 سويتشا وصول بينهما trunk يُغلق الحلقة. الوصلات الخضراء تعني أن كل جهاز يعمل ومتصل. هذه هي الشبكة المُحاكاة التي يكتشفها NetAtlas.

2

اكتشاف الطوبولوجيا مباشرةً

اكتشاف الطوبولوجيا مباشرةً

يقرأ topo_engine.py جداول جيران CDP/LLDP لكل جهاز ويعيد بناء الشبكة من الصفر — خمسة أجهزة وخمس وصلات تطابق التوصيل تمامًا، دون رسم أي شيء يدويًا.

3

مخطّط مرسوم تلقائيًا

مخطّط مرسوم تلقائيًا

المخطّط الذي يرسمه NetAtlas بنفسه من الرسم البياني المُكتشَف — الراوترات دوائر والسويتشات مربّعات، وكل وصلة موسومة بالمنفذ على كل طرف. يُعاد توليده كل تشغيل فلا يتقادم.

4

جرد وقائمة تجاور بصيغة Markdown

جرد وقائمة تجاور بصيغة Markdown

يكتب التشغيل نفسه جردًا وقائمة تجاور بصيغة Markdown — التوثيق الحيّ الذي كان سيُصان يدويًا ويتقادم لحظة نقل أي كابل.

5

اعتماد خط الأساس وتوثيقه

اعتماد خط الأساس وتوثيقه

تُعتمد الطوبولوجيا المُكتشَفة كخط أساس JSON وتُوثّق، فيحفظ git الشكل المقصود للشبكة ليُقارَن به كل تشغيل لاحق.

6

كشف انحراف الطوبولوجيا

كشف انحراف الطوبولوجيا

تُخفض وصلة trunk بين SW1 وSW2 وتُعاد كشف الشبكة؛ فيبلّغ NetAtlas عن وصلة SW1 <-> SW2 المفقودة كانحراف مقابل خط الأساس، ويسجّل التشغيل في سجلّ التدقيق.

7

نجاح مجموعة الاختبارات

نجاح مجموعة الاختبارات

تغطّي المجموعة تحليل CDP وLLDP، وتوحيد أسماء الواجهات والأجهزة، ودمج CDP/LLDP، وبناء الرسم البياني وصحّته، ودورة اللقطة، ومقارنة الطوبولوجيا — كلها مقابل تجهيزات ثابتة، فلا حاجة لأي جهاز.