أتمتة الشبكة. حالة الحياة

مرحبا يا هابر!

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

تنصل

أدوات الأتمتة الرئيسية لدينا هي Ansible (كوسيلة للأتمتة) و Git (كمستودع لكتب Plays Ansible). أريد على الفور إبداء تحفظ بأن هذه ليست مقالة لتقصي الحقائق ، حيث نتحدث عن منطق Ansible أو Git ، وشرح الأشياء الأساسية (على سبيل المثال ، ما هي الأدوار / المهام / الوحدات / ملفات المخزون / المتغيرات في Ansible ، أو ما يحدث عند إدخال أوامر git push أو git ارتكاب). لا تدور هذه القصة حول كيفية الممارسة في Ansible ، قم بتكوينها على أجهزة NTP أو SMTP. هذه قصة حول كيف يمكنك بسرعة ويفضل بدون أخطاء حل مشكلة في الشبكة. من المستحسن أيضًا أن يكون لديك فكرة جيدة عن كيفية عمل الشبكة ، على وجه الخصوص ، ما هو مكدس بروتوكول TCP / IP ، OSPF ، BGP. اختيار Ansible و Git هو أيضا غير وارد. إذا كان لا يزال لديك خيار حل معين ،نوصي بشدة بقراءة كتاب برمجة الشبكة والأتمتة. مهارات مهندس شبكات الجيل التالي "بقلم جيسون إيدلمان وسكوت إس لوي ومات أوسوالت.


الآن إلى النقطة.

صياغة المشكلة


تخيل الموقف: 3 صباحًا ، تنام بشكل سليم وتحلم. المكالمة إلى الهاتف. المدير الفني يتصل:

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

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

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

يمكن أن يصف الوضع بشكل جيد جاكي شان.



شكرا جاكي.

الوضع ليس لطيفا جدا ، أليس كذلك؟

دعنا نغادر لوقت شبكتنا إخوانه بأفكاره الحزينة.

سنناقش كيف ستتطور الأحداث أكثر.

نقدم الترتيب التالي لعرض المواد

  1. ضع في اعتبارك مخطط الشبكة وقم بتحليل كيفية عملها ؛
  2. سنصف كيف نقوم بنقل الإعدادات من جهاز توجيه إلى آخر باستخدام Ansible ؛
  3. دعونا نتحدث عن أتمتة البنية التحتية لتكنولوجيا المعلومات بشكل عام.

مخطط الشبكة ووصفها


مخطط





تأمل منطق منظمتنا. لن نذكر مصنعي معدات معينين ، وهذا لا يهم داخل المقالة (القارئ اليقظ نفسه سيحسب نوع المعدات المستخدمة) . هذه مجرد واحدة من المزايا الجيدة للعمل مع Ansible ، عند الإعداد ، بشكل عام ، لا نهتم بنوع المعدات. فقط لفهم ، هذه المعدات من البائعين المعروفين مثل Cisco و Juniper و Check Point و Fortinet و Palo Alto ... يمكنك استبدال الإصدار الخاص بك.

لدينا مهمتان رئيسيتان لنقل حركة المرور:

  1. ضمان نشر خدماتنا التي هي من أعمال الشركة ؛
  2. توفير الاتصال بالفروع ، ومركز بيانات بعيد ومنظمات خارجية (شركاء وعملاء) ، وكذلك الوصول إلى الإنترنت من خلال المكتب المركزي.

لنبدأ بالعناصر الأساسية:

  1. جهازي توجيه حدود (BRD-01 ، BRD-02) ؛
  2. مجموعة جدار الحماية (FW-CLUSTER) ؛
  3. Kernel Switch (L3-CORE) ؛
  4. جهاز توجيه سيصبح شريان الحياة (في عملية حل المشكلة ، سننقل إعدادات الشبكة من FW-CLUSTER إلى الطوارئ) (الطوارئ) ؛
  5. مفاتيح لإدارة البنية التحتية للشبكة (L2-MGMT) ؛
  6. الآلة الافتراضية مع Git and Ansible (VM-AUTOMATION) ؛
  7. جهاز كمبيوتر محمول يختبر ويطور كتب التشغيل لـ Ansible (كمبيوتر محمول - أتمتة).

تم تكوين بروتوكول توجيه OSPF ديناميكي على الشبكة مع المناطق التالية:

  • المنطقة 0 - المنطقة التي يتم فيها تضمين أجهزة التوجيه المسؤولة عن حركة المرور في منطقة التبادل ؛
  • المنطقة 1 - المنطقة التي يتم تضمين أجهزة التوجيه المسؤولة عن عمل خدمات الشركة ؛
  • المنطقة 2 - المنطقة التي يتم فيها تضمين أجهزة التوجيه المسؤولة عن حركة مرور إدارة التوجيه ؛
  • المنطقة N - مناطق شبكة الفروع.

على أجهزة التوجيه الحدودية ، تم إنشاؤه باستخدام جهاز توجيه افتراضي (VRF-INTERNET) ، حيث تم رفع عرض eBGP الكامل باستخدام AS المعين المقابل. بين VRFs تم تكوين iBGP. تمتلك الشركة مجموعة من العناوين البيضاء التي يتم نشرها على شبكات VRF-INTERNET. يتم توجيه بعض العناوين البيضاء مباشرة إلى FW-CLUSTER (العناوين التي تعمل عليها خدمات الشركة) ، ويتم توجيه بعضها عبر منطقة التبادل (خدمات الشركة الداخلية التي تتطلب عناوين IP خارجية وعناوين NAT خارجية للمكاتب). علاوة على ذلك ، تصل حركة المرور إلى أجهزة التوجيه الافتراضية التي تم إنشاؤها على L3-CORE بعناوين بيضاء ورمادية (مناطق الأمان).

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

الأتمتة ووصفها


اكتشفنا كيف تعمل الشبكة. دعنا الآن نلقي نظرة على الخطوات ، ماذا سنفعل لنقل حركة المرور من FW-CLUSTER إلى الطوارئ:

  1. تعطيل الواجهات على مفتاح kernel (L3-CORE) التي تربطه بـ FW-CLUSTER ؛
  2. قم بتعطيل الواجهات على مفتاح L2-MGMT الأساسي الذي يربطه بـ FW-CLUSTER ؛
  3. تكوين موجه EMERGENCY (افتراضيًا ، يتم تعطيل جميع الواجهات عليه ، باستثناء تلك المرتبطة بـ L2-MGMT):

  • ندرج واجهات على الطوارئ.
  • تكوين عنوان IP الخارجي (لـ NAT) ، والذي كان على FW-Cluster ؛
  • نقوم بإنشاء طلبات gARP بحيث تتغير عناوين الخشخاش في جداول ARP L3-CORE من FW-Cluster إلى الطوارئ.
  • BRD-01, BRD-02;
  • NAT;
  • EMERGENCY OSPF Area 1;
  • EMERGENCY OSPF Area 2;
  • Area 1 10;
  • Area 1 10;
  • ip-, L2-MGMT ( , FW-CLUSTER);
  • gARP , arp- L2-MGMT - FW-CLUSTER EMERGENCY.

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



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


في هذه المرحلة ، أدركنا ما يجب القيام به ، وقمنا بتطوير دليل التشغيل ، وإجراء الاختبارات ، ونحن الآن جاهزون لإطلاقه.

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

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

بعد ذلك ، نقرأ نتيجة عمليات Ansible playbook (استبدلنا عناوين IP لأغراض التآمر):

[xxx@emergency ansible]$ ansible-playbook -i /etc/ansible/inventories/prod_inventory.ini /etc/ansible/playbooks/emergency_on.yml 

PLAY [------->Emergency on VCF] ********************************************************

TASK [vcf_junos_emergency_on : Disable PROD interfaces to FW-CLUSTER] *********************
changed: [vcf]

PLAY [------->Emergency on MGMT-CORE] ************************************************

TASK [mgmt_junos_emergency_on : Disable MGMT interfaces to FW-CLUSTER] ******************
changed: [m9-03-sw-03-mgmt-core]

PLAY [------->Emergency on] ****************************************************

TASK [mk_routeros_emergency_on : Enable EXT-INTERNET interface] **************************
changed: [m9-04-r-04]

TASK [mk_routeros_emergency_on : Generate gARP for EXT-INTERNET interface] ****************
changed: [m9-04-r-04]

TASK [mk_routeros_emergency_on : Enable static default route to EXT-INTERNET] ****************
changed: [m9-04-r-04]

TASK [mk_routeros_emergency_on : Change NAT rule to EXT-INTERNET interface] ****************
changed: [m9-04-r-04] => (item=12)
changed: [m9-04-r-04] => (item=14)
changed: [m9-04-r-04] => (item=15)
changed: [m9-04-r-04] => (item=16)
changed: [m9-04-r-04] => (item=17)

TASK [mk_routeros_emergency_on : Enable OSPF Area 1 PROD] ******************************
changed: [m9-04-r-04]

TASK [mk_routeros_emergency_on : Enable OSPF Area 2 MGMT] *****************************
changed: [m9-04-r-04]

TASK [mk_routeros_emergency_on : Change OSPF Area 1 interfaces costs to 10] *****************
changed: [m9-04-r-04] => (item=VLAN-1001)
changed: [m9-04-r-04] => (item=VLAN-1002)
changed: [m9-04-r-04] => (item=VLAN-1003)
changed: [m9-04-r-04] => (item=VLAN-1004)
changed: [m9-04-r-04] => (item=VLAN-1005)
changed: [m9-04-r-04] => (item=VLAN-1006)
changed: [m9-04-r-04] => (item=VLAN-1007)
changed: [m9-04-r-04] => (item=VLAN-1008)
changed: [m9-04-r-04] => (item=VLAN-1009)
changed: [m9-04-r-04] => (item=VLAN-1010)
changed: [m9-04-r-04] => (item=VLAN-1011)
changed: [m9-04-r-04] => (item=VLAN-1012)
changed: [m9-04-r-04] => (item=VLAN-1013)
changed: [m9-04-r-04] => (item=VLAN-1100)

TASK [mk_routeros_emergency_on : Change OSPF area1 default cost for to 10] ******************
changed: [m9-04-r-04]

TASK [mk_routeros_emergency_on : Change MGMT interfaces ip addresses] ********************
changed: [m9-04-r-04] => (item={u'ip': u'..n.254', u'name': u'VLAN-803'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+1.254', u'name': u'VLAN-805'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+2.254', u'name': u'VLAN-807'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+3.254', u'name': u'VLAN-809'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+4.254', u'name': u'VLAN-820'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+5.254', u'name': u'VLAN-822'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+6.254', u'name': u'VLAN-823'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+7.254', u'name': u'VLAN-824'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+8.254', u'name': u'VLAN-850'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+9.254', u'name': u'VLAN-851'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+10.254', u'name': u'VLAN-852'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+11.254', u'name': u'VLAN-853'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+12.254', u'name': u'VLAN-870'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+13.254', u'name': u'VLAN-898'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+14.254', u'name': u'VLAN-899'})

TASK [mk_routeros_emergency_on : Generate gARPs for MGMT interfaces] *********************
changed: [m9-04-r-04] => (item={u'ip': u'..n.254', u'name': u'VLAN-803'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+1.254', u'name': u'VLAN-805'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+2.254', u'name': u'VLAN-807'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+3.254', u'name': u'VLAN-809'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+4.254', u'name': u'VLAN-820'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+5.254', u'name': u'VLAN-822'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+6.254', u'name': u'VLAN-823'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+7.254', u'name': u'VLAN-824'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+8.254', u'name': u'VLAN-850'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+9.254', u'name': u'VLAN-851'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+10.254', u'name': u'VLAN-852'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+11.254', u'name': u'VLAN-853'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+12.254', u'name': u'VLAN-870'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+13.254', u'name': u'VLAN-898'})
changed: [m9-04-r-04] => (item={u'ip': u'..n+14.254', u'name': u'VLAN-899'})

PLAY RECAP ************************************************************************

منجز!

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

وفي قرية Vilabaggio (التي لا تريد أتمتة إعداد الشبكة) ، يواصلون غسل الأطباق. يحاول بروس (وإن كان مختلفًا بالفعل ، ولكن ليس أقل برودة) معرفة مقدار إعادة تكوين المعدات يدويًا.



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

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

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

يمكن للجميع الكتابة إلينا والحصول على شفرة المصدر لجميع التعليمات البرمجية المكتوبة ، جنبًا إلى جنب مع جميع الكتب المصورة. جهات الاتصال في الملف الشخصي.

الموجودات


في رأينا ، أن العمليات التي يمكن أتمتتها لم تتبلور بعد. بناءً على ما واجهناه وما يناقشه زملاؤنا الغربيون ، لا تزال الموضوعات التالية مرئية:

  • توفير الجهاز ؛
  • جمع البيانات؛
  • إعداد التقارير
  • استكشاف الأخطاء وإصلاحها؛
  • الالتزام

إذا كان هناك اهتمام ، يمكننا مواصلة المناقشة حول أحد الموضوعات المعينة.

أريد أيضًا التكهن قليلاً بالأتمتة. ماذا يجب أن يكون في فهمنا:

  • يجب أن يعيش النظام بدون رجل ، بينما يحسن الإنسان. يجب ألا يعتمد النظام على الشخص ؛
  • يجب أن تكون العملية خبيرة. لا توجد فئة من المتخصصين الذين يؤدون مهام روتينية. هناك خبراء قاموا بأتمتة الروتين بأكمله ، وحل المشاكل المعقدة فقط ؛
  • يتم تنفيذ المهام الروتينية / القياسية تلقائيًا "عن طريق الزر" ، ولا يتم إهدار الموارد. دائمًا ما تكون نتيجة هذه المهام قابلة للتنبؤ بها ومفهومة.


وماذا يجب أن تؤدي هذه النقاط إلى:

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

مؤلفو المقالة: ألكسندر مانوف (CCIE RS ، CCIE SP) و Pavel Kirillov. نحن مهتمون بمناقشة واقتراح حلول حول موضوع أتمتة البنية التحتية لتكنولوجيا المعلومات.

All Articles