الأتمتة للصغار. الجزء صفر. تخطيط

انتهى نظام SDSM، لكن الرغبة في الكتابة التي لا يمكن السيطرة عليها لا تزال قائمة.

الأتمتة للصغار. الجزء صفر. تخطيط

لسنوات عديدة، عانى شقيقنا من القيام بأعمال روتينية، وتشابك أصابعه قبل الالتزام، وقلة النوم بسبب التراجعات الليلية.
لكن الأوقات المظلمة تقترب من نهايتها.

مع هذه المقالة سأبدأ سلسلة حول كيفية القيام بذلك أنا تظهر الأتمتة.
على طول الطريق، سوف نفهم مراحل الأتمتة، وتخزين المتغيرات، وإضفاء الطابع الرسمي على التصميم، وRestAPI، وNETCONF، وYANG، وYDK، وسنقوم بالكثير من البرمجة.
أنا يعني أن أ) أنها ليست حقيقة موضوعية، ب) أنها ليست النهج الأفضل دون قيد أو شرط، ج) رأيي، حتى أثناء الانتقال من المادة الأولى إلى المادة الأخيرة، يمكن أن يتغير - لأكون صادقًا، من مرحلة المسودة إلى مرحلة النشر، وأعدت كتابة كل شيء تماما مرتين.

محتوى

  1. الأهداف
    1. الشبكة تشبه كائنًا واحدًا
    2. اختبار التكوين
    3. الإصدار
    4. المراقبة والشفاء الذاتي للخدمات

  2. أموال
    1. نظام التخزين
    2. نظام إدارة مساحة IP
    3. نظام وصف خدمة الشبكة
    4. آلية تهيئة الجهاز
    5. نموذج التكوين الحيادي للبائع
    6. واجهة برنامج التشغيل الخاصة بالمورد
    7. آلية توصيل التكوين للجهاز
    8. CI / CD
    9. آلية النسخ الاحتياطي والبحث عن الانحرافات
    10. نظام مراقبة

  3. اختتام

سأحاول إجراء ADSM بتنسيق مختلف قليلاً عن SDSM. ستستمر المقالات الكبيرة والمفصلة والمرقّمة في الظهور، وسأنشر بينها ملاحظات صغيرة من التجربة اليومية. سأحاول محاربة الكمالية هنا وعدم لعق كل واحد منهم.

كم هو مضحك أنه في المرة الثانية عليك أن تسلك نفس المسار.

في البداية، اضطررت إلى كتابة مقالات حول الشبكات بنفسي لأنها لم تكن موجودة على RuNet.

الآن لم أتمكن من العثور على وثيقة شاملة من شأنها تنظيم أساليب الأتمتة وتحليل التقنيات المذكورة أعلاه باستخدام أمثلة عملية بسيطة.

ربما أكون مخطئا، لذا يرجى تقديم روابط لمصادر مفيدة. ومع ذلك، فإن هذا لن يغير من إصراري على الكتابة، لأن الهدف الرئيسي هو أن أتعلم شيئا بنفسي، وتسهيل الحياة على الآخرين هو مكافأة ممتعة تداعب جين تبادل الخبرات.

سنحاول أن نأخذ مركز بيانات LAN DC متوسط ​​الحجم ونعمل على وضع مخطط الأتمتة بالكامل.
سأقوم ببعض الأشياء تقريبًا لأول مرة معك.

لن أكون أصليًا في الأفكار والأدوات الموضحة هنا. ديمتري فيجول لديه ممتاز قناة مع تيارات حول هذا الموضوع.
وسوف تتداخل المقالات معهم في العديد من الجوانب.

تحتوي شبكة LAN DC على 4 وحدات DC وحوالي 250 محولًا وستة أجهزة توجيه واثنين من جدران الحماية.
ليس الفيسبوك، ولكن يكفي لجعلك تفكر بعمق في الأتمتة.
ومع ذلك، هناك رأي مفاده أنه إذا كان لديك أكثر من جهاز واحد، فإن الأتمتة مطلوبة بالفعل.
في الواقع، من الصعب أن نتخيل أن أي شخص يمكنه الآن العيش بدون حزمة من نصوص الركبة على الأقل.
على الرغم من أنني سمعت أن هناك مكاتب يتم فيها الاحتفاظ بعناوين IP في Excel، ويتم تكوين كل جهاز من آلاف أجهزة الشبكة يدويًا وله تكوين فريد خاص به. هذا، بالطبع، يمكن اعتباره فنًا حديثًا، لكن مشاعر المهندس سوف تتعرض للإهانة بالتأكيد.

الأهداف

الآن سوف نقوم بتحديد الأهداف الأكثر تجريدًا:

  • الشبكة تشبه كائنًا واحدًا
  • اختبار التكوين
  • إصدار حالة الشبكة
  • المراقبة والشفاء الذاتي للخدمات

لاحقاً في هذا المقال سننظر إلى الوسائل التي سنستخدمها، وفي ما يلي سننظر إلى الأهداف والوسائل بالتفصيل.

الشبكة تشبه كائنًا واحدًا

العبارة المميزة للسلسلة، على الرغم من أنها قد لا تبدو للوهلة الأولى ذات أهمية كبيرة: سنقوم بتكوين الشبكة، وليس الأجهزة الفردية.
في السنوات الأخيرة، شهدنا تحولًا في التركيز نحو التعامل مع الشبكة ككيان واحد، ومن هنا جاءت فكرة الشبكات المعرفة بالبرمجيات, الشبكات الموجهة بالنية и الشبكات المستقلة.
بعد كل شيء، ما الذي تحتاجه التطبيقات عالميًا من الشبكة: الاتصال بين النقطتين A وB (حسنًا، أحيانًا +B-Z) والعزل عن التطبيقات والمستخدمين الآخرين.

الأتمتة للصغار. الجزء صفر. تخطيط

وهكذا فإن مهمتنا في هذه السلسلة هي بناء نظام، والحفاظ على التكوين الحالي الشبكة بأكملها، والتي تم تقسيمها بالفعل إلى التكوين الفعلي لكل جهاز وفقًا لدوره وموقعه.
نظام تعني إدارة الشبكة أننا نتصل بها لإجراء تغييرات، وهي بدورها تحسب الحالة المطلوبة لكل جهاز وتقوم بتكوينها.
وبهذه الطريقة، نقوم بتقليل الوصول اليدوي إلى واجهة سطر الأوامر (CLI) إلى الصفر تقريبًا - يجب إضفاء الطابع الرسمي على أي تغييرات في إعدادات الجهاز أو تصميم الشبكة وتوثيقها - وبعد ذلك فقط يتم تعميمها على عناصر الشبكة الضرورية.

على سبيل المثال، إذا قررنا أنه من الآن فصاعدًا، يجب أن تعلن محولات الحامل في قازان عن شبكتين بدلاً من شبكة واحدة، فإننا

  1. أولاً نقوم بتوثيق التغييرات في الأنظمة
  2. إنشاء التكوين المستهدف لجميع أجهزة الشبكة
  3. نطلق برنامج تحديث تكوين الشبكة، الذي يحسب ما يجب إزالته على كل عقدة، وما يجب إضافته، ويعيد العقد إلى الحالة المطلوبة.

وفي الوقت نفسه، نقوم بإجراء التغييرات يدويًا فقط في الخطوة الأولى.

اختبار التكوين

معروفأن 80٪ من المشكلات تحدث أثناء تغييرات التكوين - والدليل غير المباشر على ذلك هو أنه خلال عطلة رأس السنة الجديدة يكون كل شيء هادئًا عادةً.
لقد شهدت شخصيًا العشرات من حالات التوقف العالمية بسبب خطأ بشري: أمر خاطئ، تم تنفيذ التكوين في الفرع الخطأ، نسي المجتمع، تم هدم MPLS عالميًا على جهاز التوجيه، وتم تكوين خمس قطع من الأجهزة، لكن الخطأ لم يحدث لاحظت في اليوم السادس، أن التغييرات القديمة التي أجراها شخص آخر قد تم ارتكابها. هناك طن من السيناريوهات.

ستسمح لنا الأتمتة بارتكاب أخطاء أقل، ولكن على نطاق أوسع. وبهذه الطريقة، لا يمكنك حظر جهاز واحد فقط، بل الشبكة بأكملها في وقت واحد.

منذ زمن سحيق، قام أجدادنا بفحص صحة التغييرات التي تم إجراؤها بعين ثاقبة، وكرات فولاذية ووظائف الشبكة بعد طرحها.
هؤلاء الأجداد الذين أدى عملهم إلى التوقف عن العمل وخسائر كارثية تركوا عددًا أقل من النسل ويجب أن يموتوا بمرور الوقت، لكن التطور عملية بطيئة، وبالتالي لا يزال الجميع لا يختبرون التغييرات في المختبر أولاً.
ومع ذلك، في طليعة التقدم هم أولئك الذين قاموا بأتمتة عملية اختبار التكوين وتطبيقه الإضافي على الشبكة. بمعنى آخر، لقد استعرت إجراء CI/CD (التكامل المستمر، والنشر المستمر) من المطورين.
في أحد الأجزاء، سننظر في كيفية تنفيذ ذلك باستخدام نظام التحكم في الإصدار، على الأرجح Github.

بمجرد أن تعتاد على فكرة شبكة CI/CD، بين عشية وضحاها ستبدو طريقة التحقق من التكوين من خلال تطبيقه على شبكة الإنتاج بمثابة جهل مبكر في العصور الوسطى بالنسبة لك. نوع من مثل ضرب رأس حربي بمطرقة.

استمرار عضوي للأفكار حول النظام تصبح إدارة الشبكة وCI/CD إصدارًا كاملاً للتكوين.

الإصدار

سنفترض أنه مع أي تغييرات، مهما كانت صغيرة، حتى على جهاز واحد غير ملحوظ، فإن الشبكة بأكملها تنتقل من حالة إلى أخرى.
ونحن دائمًا لا ننفذ أمرًا على الجهاز، بل نغير حالة الشبكة.
لذلك دعونا نسمي هذه الحالات الإصدارات؟

لنفترض أن الإصدار الحالي هو 1.0.0.
هل تغير عنوان IP الخاص بواجهة الاسترجاع على أحد المرجعيات؟ هذه نسخة ثانوية وسيتم ترقيمها 1.0.1.
لقد قمنا بمراجعة سياسات استيراد المسارات إلى BGP - بجدية أكبر - بالفعل 1.1.0
قررنا التخلص من IGP والتحول إلى BGP فقط - وهذا بالفعل تغيير جذري في التصميم - 2.0.0.

في الوقت نفسه، قد يكون لدى DCs المختلفة إصدارات مختلفة - الشبكة تتطور، ويتم تركيب معدات جديدة، وتتم إضافة مستويات جديدة من العمود الفقري في مكان ما، وليس في أماكن أخرى، وما إلى ذلك.

حول الإصدار الدلالي سنتحدث في مقال منفصل.

أكرر - أي تغيير (باستثناء أوامر التصحيح) هو تحديث للإصدار. ويجب إخطار المسؤولين بأي انحرافات عن الإصدار الحالي.

الأمر نفسه ينطبق على التراجع عن التغييرات - فهذا لا يعني إلغاء الأوامر الأخيرة، وهذا ليس تراجعًا عن استخدام نظام تشغيل الجهاز - فهو يؤدي إلى إحضار الشبكة بأكملها إلى إصدار جديد (قديم).

المراقبة والشفاء الذاتي للخدمات

لقد وصلت هذه المهمة البديهية إلى مستوى جديد في الشبكات الحديثة.
في كثير من الأحيان، يتبع كبار مقدمي الخدمات النهج المتمثل في ضرورة إصلاح الخدمة الفاشلة بسرعة كبيرة وإنشاء خدمة جديدة، بدلاً من معرفة ما حدث.
تعني كلمة "جدًا" أنك بحاجة إلى أن يتم تغطيتها بسخاء من جميع الجوانب من خلال المراقبة، والتي ستكشف في غضون ثوانٍ عن أدنى انحرافات عن القاعدة.
وهنا لم تعد المقاييس المعتادة، مثل تحميل الواجهة أو توفر العقدة، كافية. المراقبة اليدوية لهم من قبل الضابط المناوب ليست كافية أيضًا.
لأشياء كثيرة ينبغي أن يكون هناك الشفاء الذاتي - تحولت أضواء المراقبة إلى اللون الأحمر وذهبنا وقمنا بوضع الموز بأنفسنا في المكان الذي يؤلمنا.

ونحن هنا أيضًا لا نراقب الأجهزة الفردية فحسب، بل نراقب أيضًا صحة الشبكة بأكملها، سواء الصندوق الأبيض، وهو أمر مفهوم نسبيًا، أو الصندوق الأسود، وهو أكثر تعقيدًا.

ما الذي سنحتاجه لتنفيذ مثل هذه الخطط الطموحة؟

  • احصل على قائمة بجميع الأجهزة الموجودة على الشبكة وموقعها وأدوارها ونماذجها وإصدارات البرامج.
    kazan-leaf-1.lmu.net, Kazan, leaf, Juniper QFX 5120, R18.3.
  • لديك نظام لوصف خدمات الشبكة.
    IGP، BGP، L2/3VPN، السياسة، ACL، NTP، SSH.
  • تكون قادرة على تهيئة الجهاز.
    اسم المضيف، Mgmt IP، طريق Mgmt، المستخدمين، مفاتيح RSA، LLDP، NETCONF
  • قم بتكوين الجهاز وإحضار التكوين إلى الإصدار المطلوب (بما في ذلك الإصدار القديم).
  • تكوين الاختبار
  • تحقق بشكل دوري من حالة جميع الأجهزة بحثًا عن الانحرافات عن الأجهزة الحالية وأبلغ من يجب أن تكون.
    بين عشية وضحاها، أضاف شخص بهدوء قاعدة إلى قائمة التحكم بالوصول (ACL)..
  • عالمه فى أمرأة.

أموال

يبدو الأمر معقدًا بدرجة كافية لبدء تحليل المشروع إلى مكونات.

وسيكون هناك عشرة منهم:

  1. نظام التخزين
  2. نظام إدارة مساحة IP
  3. نظام وصف خدمة الشبكة
  4. آلية تهيئة الجهاز
  5. نموذج التكوين الحيادي للبائع
  6. واجهة برنامج التشغيل الخاصة بالمورد
  7. آلية توصيل التكوين للجهاز
  8. CI / CD
  9. آلية النسخ الاحتياطي والبحث عن الانحرافات
  10. نظام مراقبة

وهذا، بالمناسبة، مثال على كيفية تغير وجهة النظر حول أهداف الدورة - كان هناك 4 مكونات في المسودة.

الأتمتة للصغار. الجزء صفر. تخطيط

في الرسم التوضيحي قمت بتصوير جميع المكونات والجهاز نفسه.
تتفاعل المكونات المتقاطعة مع بعضها البعض.
كلما كانت الكتلة أكبر، كلما زاد الاهتمام بهذا المكون.

المكون 1: نظام المخزون

من الواضح أننا نريد أن نعرف ما هي المعدات الموجودة وما هو متصل بها.
نظام المخزون هو جزء لا يتجزأ من أي مؤسسة.
في أغلب الأحيان، لدى المؤسسة نظام جرد منفصل لأجهزة الشبكة، والذي يحل مشاكل أكثر تحديدا.
كجزء من هذه السلسلة من المقالات، سوف نسميها DCIM - إدارة البنية التحتية لمركز البيانات. على الرغم من أن مصطلح DCIM نفسه، بالمعنى الدقيق للكلمة، يتضمن أكثر من ذلك بكثير.

ولأغراضنا، سنقوم بتخزين المعلومات التالية حول الجهاز فيه:

  • رقم المخزون
  • وصف العنوان
  • نموذج (هواوي CE12800، جونيبر QFX5120، الخ.)
  • المعلمات المميزة (اللوحات والواجهات وما إلى ذلك.)
  • دور (ورقة، العمود الفقري، جهاز التوجيه الحدود، الخ.)
  • موقع (المنطقة، المدينة، مركز البيانات، الرف، الوحدة)
  • الترابط بين الأجهزة
  • طوبولوجيا الشبكة

الأتمتة للصغار. الجزء صفر. تخطيط

من الواضح تمامًا أننا أنفسنا نريد أن نعرف كل هذا.
ولكن هل سيساعد هذا لأغراض الأتمتة؟
بالتأكيد.
على سبيل المثال، نحن نعلم أنه في مركز بيانات معين على مفاتيح Leaf، إذا كان Huawei، فيجب تطبيق قوائم ACL لتصفية حركة مرور معينة على شبكة VLAN، وإذا كان Juniper، فسيتم تطبيقها على الوحدة 0 من الواجهة المادية.
أو تحتاج إلى طرح خادم Syslog جديد لجميع الحدود في المنطقة.

سنقوم فيه بتخزين أجهزة الشبكة الافتراضية، على سبيل المثال أجهزة التوجيه الافتراضية أو عاكسات الجذر. يمكننا إضافة خوادم DNS وNTP وSyslog وبشكل عام كل ما يتعلق بالشبكة بطريقة أو بأخرى.

المكون 2: نظام إدارة مساحة IP

نعم، وفي الوقت الحاضر هناك فرق من الأشخاص الذين يقومون بتتبع البادئات وعناوين IP في ملف Excel. لكن النهج الحديث لا يزال عبارة عن قاعدة بيانات، ذات واجهة أمامية على nginx/Apache، وواجهة برمجة التطبيقات (API) ووظائف واسعة النطاق لتسجيل عناوين IP والشبكات المقسمة إلى VRFs.
IPAM - إدارة عنوان IP.

ولأغراضنا، سنقوم بتخزين المعلومات التالية فيه:

  • VLAN
  • VRF
  • الشبكات/الشبكات الفرعية
  • عنوان IP
  • ربط العناوين بالأجهزة والشبكات بالمواقع وأرقام VLAN

الأتمتة للصغار. الجزء صفر. تخطيط

مرة أخرى، من الواضح أننا نريد التأكد من أنه عندما نقوم بتخصيص عنوان IP جديد لاسترجاع ToR، فإننا لن نتعثر في حقيقة أنه تم تعيينه بالفعل لشخص ما. أو أننا استخدمنا نفس البادئة مرتين في أطراف مختلفة من الشبكة.
ولكن كيف يساعد هذا في الأتمتة؟
بسهولة.
نطلب بادئة في النظام بدور الاسترجاعات، والتي تحتوي على عناوين IP المتاحة للتخصيص - إذا تم العثور عليها، فإننا نخصص العنوان، وإذا لم يتم العثور عليها، فإننا نطلب إنشاء بادئة جديدة.
أو عند إنشاء تكوين الجهاز، يمكننا معرفة ذلك من نفس النظام الذي يجب أن توجد فيه الواجهة VRF.
وعند بدء خادم جديد، يقوم البرنامج النصي بتسجيل الدخول إلى النظام، ويكتشف المحول الذي يوجد به الخادم، والمنفذ والشبكة الفرعية المخصصة للواجهة - وسيقوم بتخصيص عنوان الخادم منه.

يشير هذا إلى الرغبة في دمج DCIM وIPAM في نظام واحد حتى لا تتكرر الوظائف ولا تخدم كيانين متشابهين.
هذا ما سنفعله.

المكون 3. نظام لوصف خدمات الشبكة

إذا قام النظامان الأولان بتخزين المتغيرات التي لا تزال بحاجة إلى استخدامها بطريقة ما، فإن النظام الثالث يصف لكل دور جهاز كيفية تكوينه.
يجدر التمييز بين نوعين مختلفين من خدمات الشبكة:

  • بنية تحتية
  • عميل.

تم تصميم الأول لتوفير الاتصال الأساسي والتحكم في الجهاز. وتشمل هذه VTY، وSNMP، وNTP، وSyslog، وAAA، وبروتوكولات التوجيه، وCoPP، وما إلى ذلك.
يقوم الأخير بتنظيم الخدمة للعميل: MPLS L2/L3VPN، GRE، VXLAN، VLAN، L2TP، إلخ.
بالطبع، هناك أيضًا حالات حدودية - أين يمكن تضمين MPLS LDP وBGP؟ نعم، ويمكن استخدام بروتوكولات التوجيه للعملاء. ولكن هذا ليس مهما.

يتم تقسيم كلا النوعين من الخدمات إلى إعدادات أولية:

  • الواجهات المادية والمنطقية (tag/anteg، mtu)
  • عناوين IP وVRFs (IP، IPv6، VRF)
  • قوائم ACL وسياسات معالجة حركة المرور
  • البروتوكولات (IGP، BGP، MPLS)
  • سياسات التوجيه (قوائم البادئات والمجتمعات ومرشحات ASN).
  • خدمات المرافق (SSH، NTP، LLDP، Syslog...)
  • إلخ.

كيف سنفعل هذا بالضبط، ليس لدي أي فكرة بعد. سننظر في ذلك في مقال منفصل.

الأتمتة للصغار. الجزء صفر. تخطيط

إذا كان أقرب قليلا إلى الحياة، فيمكننا وصف ذلك
يجب أن يحتوي محول Leaf على جلسات BGP مع جميع محولات Spine المتصلة، واستيراد الشبكات المتصلة إلى العملية، وقبول الشبكات من بادئة معينة فقط من محولات Spine. الحد من CoPP IPv6 ND إلى 10 نقاط في الثانية، وما إلى ذلك.
بدورها، تعقد العمود الفقري جلسات مع جميع العملاء المتوقعين المتصلين، الذين يعملون كعاكسات جذرية، ولا تقبل منهم سوى طرق بطول معين ومع مجتمع معين.

المكون 4: آلية تهيئة الجهاز

تحت هذا العنوان، قمت بدمج العديد من الإجراءات التي يجب أن تحدث حتى يظهر الجهاز على الرادار ويمكن الوصول إليه عن بعد.

  1. إدخال الجهاز في نظام الجرد.
  2. حدد عنوان IP للإدارة.
  3. قم بإعداد الوصول الأساسي إليه:
    اسم المضيف، وعنوان IP للإدارة، والطريق إلى شبكة الإدارة، والمستخدمين، ومفاتيح SSH، والبروتوكولات - telnet/SSH/NETCONF

هناك ثلاث طرق:

  • كل شيء يدوي بالكامل. يتم إحضار الجهاز إلى الحامل، حيث سيقوم شخص عضوي عادي بإدخاله في الأنظمة، والاتصال بوحدة التحكم وتكوينه. يمكن أن تعمل على شبكات ثابتة صغيرة.
  • ZTP - التزويد بدون لمس. وصل الجهاز، ووقف، واستلم عنوانًا عبر DHCP، وانتقل إلى خادم خاص، وقام بتكوين نفسه.
  • البنية التحتية لخوادم وحدة التحكم، حيث يتم التكوين الأولي من خلال منفذ وحدة التحكم في الوضع التلقائي.

سنتحدث عن الثلاثة في مقال منفصل.

الأتمتة للصغار. الجزء صفر. تخطيط

المكون 5: نموذج التكوين الحيادي للبائع

حتى الآن، كانت جميع الأنظمة عبارة عن تصحيحات متباينة توفر متغيرات ووصفًا تعريفيًا لما نود رؤيته على الشبكة. ولكن عاجلاً أم آجلاً، سيتعين عليك التعامل مع التفاصيل.
في هذه المرحلة، لكل جهاز محدد، يتم دمج البدائيات والخدمات والمتغيرات في نموذج تكوين يصف فعليًا التكوين الكامل لجهاز معين، فقط بطريقة محايدة للبائع.
ماذا تفعل هذه الخطوة؟ لماذا لا تقوم على الفور بإنشاء تكوين للجهاز يمكنك تحميله ببساطة؟
في الواقع، هذا يحل ثلاث مشاكل:

  1. لا تتكيف مع واجهة معينة للتفاعل مع الجهاز. سواء كان ذلك CLI أو NETCONF أو RESTCONF أو SNMP - سيكون النموذج هو نفسه.
  2. لا تحتفظ بعدد القوالب/النصوص البرمجية حسب عدد البائعين على الشبكة، وإذا تغير التصميم، قم بتغيير نفس الشيء في عدة أماكن.
  3. قم بتحميل التكوين من الجهاز (النسخ الاحتياطي)، ووضعه في نفس النموذج تمامًا وقارن التكوين المستهدف مباشرة بالتكوين الموجود لحساب الدلتا وإعداد تصحيح التكوين الذي سيغير فقط الأجزاء الضرورية أو لتحديد الانحرافات.

الأتمتة للصغار. الجزء صفر. تخطيط

ونتيجة لهذه المرحلة، نحصل على تكوين مستقل عن البائع.

المكون 6. واجهة برنامج التشغيل الخاصة بالمورد

لا ينبغي أن تملق نفسك على أمل أنه في يوم من الأيام سيكون من الممكن تكوين ciska بنفس الطريقة تمامًا مثل Juniper، وذلك ببساطة عن طريق إرسال نفس المكالمات بالضبط إليهم. على الرغم من تزايد شعبية المربعات البيضاء وظهور الدعم لـ NETCONF وRESTCONF وOpenConfig، فإن المحتوى المحدد الذي تقدمه هذه البروتوكولات يختلف من بائع إلى بائع، وهذا أحد الاختلافات التنافسية بينهما التي لن يتنازلوا عنها بسهولة.
هذا تقريبًا نفس OpenContrail وOpenStack، اللذين يستخدمان RestAPI كواجهة NorthBound الخاصة بهما، ويتوقعان مكالمات مختلفة تمامًا.

لذا، في الخطوة الخامسة، يجب أن يأخذ النموذج المستقل عن البائع الشكل الذي سينتقل به إلى الأجهزة.
وهنا كل الوسائل جيدة (لا): CLI، NETCONF، RESTCONF، SNMP ببساطة.

لذلك، سنحتاج إلى برنامج تشغيل ينقل نتيجة الخطوة السابقة إلى التنسيق المطلوب لمورد معين: مجموعة من أوامر CLI، وبنية XML.

الأتمتة للصغار. الجزء صفر. تخطيط

المكون 7. آلية توصيل التكوين للجهاز

لقد أنشأنا التكوين، ولكن لا يزال يتعين تسليمه إلى الأجهزة - ومن الواضح أنه ليس يدويًا.
أولا، نحن نواجه سؤال ما هي وسيلة النقل التي سنستخدمها؟ واليوم لم يعد الاختيار صغيرًا:

  • سطر الأوامر (تيلنت، SSH)
  • SNMP
  • NETCONF
  • ريستكونف
  • REST API
  • OpenFlow (على الرغم من أنه أمر غريب لأنه وسيلة لتقديم FIB، وليس الإعدادات)

دعونا نضع النقاط هنا. CLI هو إرث. SNMP... السعال السعال.
لا يزال RESTCONF حيوانًا غير معروف، ولا يدعم أحد تقريبًا واجهة REST API. لذلك، سنركز على NETCONF في السلسلة.

في الواقع، كما فهم القارئ بالفعل، فقد قررنا بالفعل في هذه المرحلة اختيار الواجهة - تم عرض نتيجة الخطوة السابقة بالفعل بتنسيق الواجهة التي تم اختيارها.

ثانيا، وما الأدوات التي سنفعل بها ذلك؟
هناك أيضًا خيار كبير هنا:

  • البرنامج النصي أو النظام الأساسي المكتوب ذاتيًا. دعونا نتسلح بـ ncclient و asyncIO ونفعل كل شيء بأنفسنا. ما هي تكلفة بناء نظام نشر من الصفر؟
  • Ansible بمكتبته الغنية بوحدات الشبكات.
  • الملح بعمله الهزيل مع الشبكة والاتصال بالنابالم.
  • في الواقع النابالم، الذي يعرف اثنين من البائعين، وهذا كل شيء، وداعا.
  • نورنير هو حيوان آخر سنقوم بتشريحه في المستقبل.

هنا لم يتم اختيار المفضل بعد - سوف نقوم بالبحث.

ما هو المهم هنا؟ عواقب تطبيق التكوين.
ناجحة أم لا. هل لا يزال هناك إمكانية الوصول إلى الأجهزة أم لا؟
يبدو أن الالتزام سيساعد هنا في التأكيد والتحقق من صحة ما تم تنزيله على الجهاز.
يؤدي هذا، بالإضافة إلى التنفيذ الصحيح لـ NETCONF، إلى تضييق نطاق الأجهزة المناسبة بشكل كبير - لا يدعم العديد من الشركات المصنعة عمليات الالتزام العادية. ولكن هذا مجرد واحد من المتطلبات الأساسية في طلب تقديم العروض. في النهاية، لا أحد يشعر بالقلق من عدم امتثال أي بائع روسي لشرط الواجهة 32*100GE. أم أنه قلق؟

الأتمتة للصغار. الجزء صفر. تخطيط

المكون 8. CI/CD

في هذه المرحلة، أصبح لدينا بالفعل التكوين جاهزًا لجميع أجهزة الشبكة.
أكتب "لكل شيء" لأننا نتحدث عن إصدار حالة الشبكة. وحتى إذا كنت بحاجة إلى تغيير إعدادات محول واحد فقط، فسيتم حساب التغييرات للشبكة بأكملها. من الواضح أنها يمكن أن تكون صفرًا بالنسبة لمعظم العقد.

ولكن، كما قيل أعلاه، نحن لسنا نوعا من البرابرة الذين يريدون نقل كل شيء مباشرة إلى الإنتاج.
يجب أن يمر التكوين الذي تم إنشاؤه أولاً عبر Pipeline CI/CD.

يرمز CI/CD إلى التكامل المستمر والنشر المستمر. هذا هو النهج الذي لا يقوم فيه الفريق فقط بإصدار إصدار رئيسي جديد كل ستة أشهر، ليحل محل الإصدار القديم تمامًا، ولكنه يقدم بشكل منتظم (نشر) وظائف جديدة في أجزاء صغيرة، يتم اختبار كل منها بشكل شامل من حيث التوافق والأمان والتوافق. الأداء (التكامل).

للقيام بذلك، لدينا نظام للتحكم في الإصدار يراقب تغييرات التكوين، ومختبر يتحقق مما إذا كانت خدمة العميل معطلة، ونظام مراقبة يتحقق من هذه الحقيقة، والخطوة الأخيرة هي نشر التغييرات على شبكة الإنتاج.

باستثناء أوامر تصحيح الأخطاء، يجب أن تمر جميع التغييرات على الشبكة عبر خط أنابيب CI/CD - وهذا هو ضماننا لحياة هادئة ومهنة طويلة وسعيدة.

الأتمتة للصغار. الجزء صفر. تخطيط

المكون 9. نظام النسخ الاحتياطي والكشف عن الشذوذ

حسنًا، ليست هناك حاجة للحديث عن النسخ الاحتياطية مرة أخرى.
سنقوم ببساطة بوضعها في البوابة وفقًا للتاج أو عند حدوث تغيير في التكوين.

لكن الجزء الثاني أكثر إثارة للاهتمام - يجب على شخص ما مراقبة هذه النسخ الاحتياطية. وفي بعض الحالات، يجب على هذا الشخص أن يذهب ويعيد كل شيء كما كان، وفي حالات أخرى، مواء لشخص ما أن هناك خطأ ما.
على سبيل المثال، إذا ظهر مستخدم جديد غير مسجل في المتغيرات، فأنت بحاجة إلى إزالته بعيدًا عن الاختراق. وإذا كان من الأفضل عدم لمس قاعدة جدار الحماية الجديدة، فربما قام شخص ما للتو بتشغيل تصحيح الأخطاء، أو ربما لم يتم تسجيل الخدمة الجديدة، وهي خدمة فاشلة، وفقًا للوائح، لكن الأشخاص انضموا إليها بالفعل.

ما زلنا غير قادرين على الهروب من بعض الدلتا الصغيرة على نطاق الشبكة بأكملها، على الرغم من أي أنظمة أتمتة واليد الإدارية الفولاذية. لتصحيح المشكلات، لن يقوم أحد بإضافة التكوين إلى الأنظمة على أي حال. علاوة على ذلك، قد لا يتم تضمينها في نموذج التكوين.

على سبيل المثال، تعتبر قاعدة جدار الحماية لحساب عدد الحزم لكل عنوان IP محدد لتوطين مشكلة ما بمثابة تكوين مؤقت عادي تمامًا.

الأتمتة للصغار. الجزء صفر. تخطيط

المكون 10. نظام الرصد

في البداية، لم أكن أنوي تغطية موضوع المراقبة - فهو لا يزال موضوعًا ضخمًا ومثيرًا للجدل ومعقدًا. ولكن مع تقدم الأمور، اتضح أن هذا كان جزءًا لا يتجزأ من الأتمتة. ومن المستحيل تجاوزه، حتى بدون ممارسة.

يعتبر تطور الفكر جزءًا عضويًا من عملية CI/CD. بعد طرح التكوين على الشبكة، نحتاج إلى أن نكون قادرين على تحديد ما إذا كان كل شيء على ما يرام الآن.
ونحن لا نتحدث فقط وليس كثيرًا عن جداول استخدام الواجهة أو توفر العقدة، بل نتحدث أيضًا عن أشياء أكثر دقة - وجود المسارات الضرورية، والسمات عليها، وعدد جلسات BGP، وجيران OSPF، والأداء الشامل من الخدمات الزائدة.
هل توقفت سجلات النظام إلى الخادم الخارجي عن الإضافة، أم أن وكيل SFlow تعطل، أم أن الانخفاضات في قوائم الانتظار بدأت في النمو، أم أن الاتصال بين زوج من البادئات قد تعطل؟

وسوف نفكر في هذا في مقال منفصل.

الأتمتة للصغار. الجزء صفر. تخطيط

الأتمتة للصغار. الجزء صفر. تخطيط

اختتام

كأساس، اخترت أحد تصميمات شبكات مراكز البيانات الحديثة - L3 Clos Fabric مع BGP كبروتوكول توجيه.
هذه المرة سنقوم ببناء الشبكة على Juniper، لأن واجهة JunOs أصبحت الآن عبارة عن شاحنة صغيرة.

دعونا نجعل حياتنا أكثر صعوبة باستخدام الأدوات مفتوحة المصدر فقط وشبكة متعددة البائعين - لذلك بالإضافة إلى Juniper، سأختار شخصًا محظوظًا آخر على طول الطريق.

خطة المنشورات القادمة هي شيء من هذا القبيل:
أولاً سأتحدث عن الشبكات الافتراضية. أولاً، لأنني أريد ذلك، وثانياً، لأنه بدون ذلك، لن يكون تصميم شبكة البنية التحتية واضحاً للغاية.
ثم عن تصميم الشبكة نفسها: الهيكل، والتوجيه، والسياسات.
دعونا نجمع موقف المختبر.
دعونا نفكر في الأمر وربما نتدرب على تهيئة الجهاز على الشبكة.
ثم عن كل مكون بتفاصيل حميمة.

ونعم، أنا لا أعد بإنهاء هذه الدورة بحل جاهز. 🙂

وصلات مفيدة

  • قبل الخوض في هذه السلسلة، من المفيد قراءة كتاب ناتاشا سامويلينكو بايثون لمهندسي الشبكات. وربما تمر مسار.
  • سيكون من المفيد أيضًا القراءة RFC حول تصميم مصانع مراكز البيانات من الفيسبوك لبيتر لابوخوف.
  • ستمنحك وثائق البنية فكرة عن كيفية عمل Overlay SDN. نسيج التنغستن (سابقا فتح كونتريل).
شكرًا

المضيق الروماني. للتعليقات والتعديلات.
أرتيوم تشيرنوباي. بالنسبة لـ KDPV.

المصدر: www.habr.com

إضافة تعليق