şəbəkə avtomatlaşdırılması. Birinin həyatından bir hadisə

Hey Habr!

Bu yazıda şəbəkə infrastrukturunun avtomatlaşdırılmasından danışmaq istərdik. Kiçik, lakin çox qürurlu bir şirkətdə fəaliyyət göstərən şəbəkənin iş diaqramı təqdim olunacaq. Real şəbəkə avadanlığı ilə bütün uyğunluqlar təsadüfi olur. Bu şəbəkədə baş vermiş və uzun müddət biznesin dayanmasına və ciddi maliyyə itkilərinə səbəb ola biləcək bir hadisəyə baxacağıq. Bu işin həlli “Şəbəkə infrastrukturunun avtomatlaşdırılması” konsepsiyasına çox uyğun gəlir. Avtomatlaşdırma vasitələrindən istifadə edərək, mürəkkəb problemləri qısa müddətdə necə effektiv şəkildə həll edə biləcəyinizi göstərəcəyik və bu problemlərin niyə başqa şəkildə deyil (konsol vasitəsilə) bu şəkildə həll edilməli olduğunu düşünəcəyik.

Məsuliyyətdən imtina

Avtomatlaşdırma üçün əsas alətlərimiz Ansible (avtomatlaşdırma vasitəsi kimi) və Git-dir (Ansible oyun kitabları üçün depo kimi). Dərhal qeyd etmək istərdim ki, bu giriş məqaləsi deyil, burada biz Ansible və ya Git-in məntiqi haqqında danışırıq və əsas şeyləri izah edirik (məsələn, rol tapşırığı modulları, inventar faylları, Ansible-da dəyişənlər nədir və ya zaman nə baş verir? git push və ya git commit əmrlərini daxil edirsiniz). Bu hekayə Ansible ilə necə məşq edə biləcəyiniz və avadanlığınızda NTP və ya SMTP konfiqurasiyası haqqında deyil. Bu, bir şəbəkə problemini səhvsiz necə tez və tercihen həll edə biləcəyiniz haqqında bir hekayədir. Şəbəkənin necə işlədiyini, xüsusən də TCP/IP, OSPF, BGP protokol yığınının nə olduğunu yaxşı başa düşmək də məsləhətdir. Ansible və Git seçimini də tənlikdən çıxaracağıq. Hələ də müəyyən bir həll seçmək lazımdırsa, “Şəbəkə proqramlaşdırması və avtomatlaşdırma” kitabını oxumağı tövsiyə edirik. Jason Edelman, Scott S. Lowe və Matt Oswalt tərəfindən "Gələcək nəsil şəbəkə mühəndisi üçün bacarıqlar".

İndi mətləbə.

Problem problemi

Gəlin bir vəziyyəti təsəvvür edək: səhər saat 3-də sən sıx yuxudasan və yuxu görürsən. Telefon zəngi. Texniki direktor çağırır:

- Bəli?
— ###, ####, #####, firewall klasteri düşüb və qalxmır!!!
Gözlərinizi ovuşdurursunuz, nə baş verdiyini anlamağa və bunun necə baş verə biləcəyini təsəvvür etməyə çalışırsınız. Telefonda direktorun başındakı tüklərin cırıldığını eşidirsən və o, ikinci xətt üzrə general ona zəng etdiyi üçün geri zəng etməyi xahiş edir.

Yarım saatdan sonra növbətçiliyin ilk giriş qeydlərini yığdınız, oyandıra bilən hər kəsi oyaddınız. Nəticədə, texniki direktor yalan danışmadı, hər şey olduğu kimidir, firewallların əsas klasteri düşdü və heç bir əsas bədən hərəkəti onu özünə gətirmir. Şirkətin təklif etdiyi bütün xidmətlər işləmir.

Zövqünüzə uyğun bir problem seçin, hər kəs fərqli bir şey xatırlayacaq. Məsələn, ağır bir yük olmadığı bir gecədə yeniləmədən sonra hər şey yaxşı işlədi və hər kəs xoşbəxt yatdı. Trafik axmağa başladı və şəbəkə kartının drayverindəki səhv səbəbindən interfeys buferləri daşmağa başladı.

Ceki Çan vəziyyəti yaxşı təsvir edə bilər.

şəbəkə avtomatlaşdırılması. Birinin həyatından bir hadisə

Təşəkkür edirəm, Jackie.

Çox xoş bir vəziyyət deyil, elə deyilmi?

Bir az da onun qəmli düşüncələri ilə şəbəkəmizdən ayrılaq qardaş.

Hadisələrin bundan sonra necə inkişaf edəcəyini müzakirə edək.

Materialın təqdimatının aşağıdakı ardıcıllığını təklif edirik

  1. Şəbəkə diaqramına baxaq və onun necə işlədiyini görək;
  2. Ansible istifadə edərək parametrləri bir marşrutlaşdırıcıdan digərinə necə köçürməyimizi təsvir edəcəyik;
  3. Bütövlükdə İT infrastrukturunun avtomatlaşdırılmasından danışaq.

Şəbəkə diaqramı və təsviri

Sxem

şəbəkə avtomatlaşdırılması. Birinin həyatından bir hadisə

Təşkilatımızın məntiqi diaqramını nəzərdən keçirək. Biz xüsusi avadanlıq istehsalçılarının adını çəkməyəcəyik, bu məqalənin məqsədləri üçün bunun əhəmiyyəti yoxdur (Diqqətli oxucu hansı avadanlıqdan istifadə olunduğunu təxmin edəcək). Bu, Ansible ilə işləməyin yaxşı üstünlüklərindən yalnız biridir; qurarkən, ümumiyyətlə, onun hansı avadanlıq olduğuna əhəmiyyət vermirik. Sadəcə başa düşmək üçün bu, Cisco, Juniper, Check Point, Fortinet, Palo Alto kimi tanınmış istehsalçıların avadanlığıdır... siz öz seçiminizi əvəz edə bilərsiniz.

Trafikin hərəkəti üçün iki əsas vəzifəmiz var:

  1. Şirkətin fəaliyyəti olan xidmətlərimizin dərc olunmasını təmin etmək;
  2. Filiallar, uzaq məlumat mərkəzi və üçüncü tərəf təşkilatları (tərəfdaşlar və müştərilər) ilə əlaqəni təmin etmək, həmçinin mərkəzi ofis vasitəsilə filialların İnternetə çıxışını təmin etmək.

Əsas elementlərdən başlayaq:

  1. İki sərhəd marşrutlaşdırıcısı (BRD-01, BRD-02);
  2. Firewall Cluster (FW-CLUSTER);
  3. Əsas keçid (L3-CORE);
  4. Həyat xəttinə çevriləcək marşrutlaşdırıcı (problemi həll etdikcə biz şəbəkə parametrlərini FW-CLUSTER-dən Fövqəladə Hallara köçürəcəyik) (TƏCİLİ);
  5. Şəbəkə infrastrukturunun idarə edilməsi üçün açarlar (L2-MGMT);
  6. Git və Ansible ilə virtual maşın (VM-AUTOMATION);
  7. Ansible (Laptop-Automation) üçün oyun kitablarının sınaqdan keçirilməsi və hazırlanması həyata keçirilən noutbuk.

Şəbəkə aşağıdakı sahələrə malik dinamik OSPF marşrutlaşdırma protokolu ilə konfiqurasiya edilmişdir:

  • Sahə 0 – EXCHANGE zonasında trafikin hərəkətinə cavabdeh olan marşrutlaşdırıcıların daxil olduğu sahə;
  • Sahə 1 – şirkət xidmətlərinin fəaliyyətinə cavabdeh olan marşrutlaşdırıcıları əhatə edən sahə;
  • Sahə 2 – marşrutun idarə olunması trafikinə cavabdeh olan marşrutlaşdırıcıları əhatə edən sahə;
  • Sahə N – filial şəbəkələrinin sahələri.

Sərhəd marşrutlaşdırıcılarında müvafiq təyin edilmiş AS ilə eBGP tam görünüşü quraşdırılmış virtual marşrutlaşdırıcı (VRF-INTERNET) yaradılır. iBGP VRF-lər arasında konfiqurasiya edilmişdir. Şirkətin bu VRF-İNTERNET-də dərc olunan ağ ünvanlar hovuzu var. Ağ ünvanların bəziləri birbaşa FW-CLUSTER-ə (şirkətin xidmətlərinin fəaliyyət göstərdiyi ünvanlar), bəziləri EXCHANGE zonasından (xarici IP ünvanları tələb edən şirkət daxili xidmətləri və ofislər üçün xarici NAT ünvanları) yönləndirilir. Sonra, trafik ağ və boz ünvanlarla (təhlükəsizlik zonaları) L3-CORE-da yaradılmış virtual marşrutlaşdırıcılara gedir.

İdarəetmə şəbəkəsi xüsusi açarlardan istifadə edir və fiziki olaraq ayrılmış şəbəkəni təmsil edir. İdarəetmə şəbəkəsi də təhlükəsizlik zonalarına bölünür.
Fövqəladə Router fiziki və məntiqi olaraq FW-CLUSTER-i təkrarlayır. İdarəetmə şəbəkəsinə baxanlar istisna olmaqla, bütün interfeyslər qeyri-aktivdir.

Avtomatlaşdırma və onun təsviri

Şəbəkənin necə işlədiyini anladıq. İndi gəlin trafiki FW-CLUSTER-dən Fövqəladə Hallara köçürmək üçün nə edəcəyimizə addım-addım nəzər salaq:

  1. Biz əsas keçiddə (L3-CORE) onu FW-CLUSTER-ə birləşdirən interfeysləri söndürürük;
  2. L2-MGMT nüvə keçidində onu FW-CLUSTER-ə birləşdirən interfeysləri söndürürük;
  3. Fövqəladə marşrutlaşdırıcını konfiqurasiya edirik (standart olaraq, L2-MGMT ilə əlaqəli olanlar istisna olmaqla, bütün interfeyslər deaktivdir):

  • Biz Fövqəladə Hallar üzrə interfeysləri işə salırıq;
  • FW-Cluster-də olan xarici IP ünvanını (NAT üçün) konfiqurasiya edirik;
  • Biz gARP sorğuları yaradırıq ki, L3-CORE arp cədvəllərindəki xaşxaş ünvanları FW-Cluster-dən EMERGENCY-ə dəyişdirilsin;
  • Biz standart marşrutu BRD-01, BRD-02-yə statik olaraq qeyd edirik;
  • NAT qaydaları yaradın;
  • Fövqəladə Hallar üçün ƏSG Sahəsi 1-ə qaldırın;
  • Fövqəladə Hallar üçün ƏSG Sahəsi 2-ə qaldırın;
  • Biz 1-ci sahədə marşrutların qiymətini 10-a dəyişdiririk;
  • Biz 1-ci sahədə standart marşrutun qiymətini 10-a dəyişirik;
  • L2-MGMT ilə əlaqəli IP ünvanlarını dəyişdiririk (FW-CLUSTER-də olanlara);
  • L2-MGMT arp cədvəllərindəki haşhaş ünvanlarının FW-CLUSTER-dən Fövqəladə vəziyyətə dəyişdirilməsi üçün gARP sorğuları yaradırıq.

Yenə də problemin orijinal formasına qayıdırıq. Səhər saat üç, böyük stress, istənilən mərhələdə səhv yeni problemlərə səbəb ola bilər. CLI vasitəsilə əmrlər yazmağa hazırsınız? Bəli? Yaxşı, heç olmasa get üzünü yu, kofe iç və iradəni topla.
Bruce, xahiş edirəm uşaqlara kömək edin.

şəbəkə avtomatlaşdırılması. Birinin həyatından bir hadisə

Yaxşı, biz avtomatlaşdırmamızı təkmilləşdirməyə davam edirik.
Aşağıda oyun kitabının Ansible baxımından necə işlədiyinə dair diaqram verilmişdir. Bu sxem yuxarıda təsvir etdiyimizi əks etdirir, sadəcə Ansible-da xüsusi bir tətbiqdir.
şəbəkə avtomatlaşdırılması. Birinin həyatından bir hadisə

Bu mərhələdə nə etmək lazım olduğunu başa düşdük, oyun kitabçası hazırladıq, testlər keçirdik və indi onu işə salmağa hazırıq.

Başqa bir kiçik lirik ekskursiya. Hekayənin asanlığı sizi yanıltmamalıdır. Oyun kitablarının yazılması prosesi göründüyü qədər sadə və sürətli deyildi. Test kifayət qədər çox vaxt apardı, virtual stend yaradıldı, həll dəfələrlə sınaqdan keçirildi, 100-ə yaxın sınaq keçirildi.

Başlayaq... Elə bir hiss var ki, hər şey çox ləng gedir, haradasa xəta var, axırda nəsə işləməyəcək. Paraşütlə tullanmaq hissi, amma paraşüt dərhal açılmaq istəmir... bu normaldır.

Sonra, Ansible oyun kitabının yerinə yetirilmiş əməliyyatlarının nəticəsini oxuyuruq (məxfilik məqsədilə IP ünvanları dəyişdirilib):

[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 ************************************************************************

Bitti!

Əslində, o, tam hazır deyil, dinamik marşrutlaşdırma protokollarının yaxınlaşması və FIB-ə çoxlu sayda marşrutun yüklənməsi haqqında unutmayın. Biz buna heç bir şəkildə təsir edə bilmərik. Gözləyirik. Bu nəticə verdi. İndi hazırdır.

Vilabajo kəndində isə (şəbəkənin qurulmasını avtomatlaşdırmaq istəməyən) qabları yumağa davam edirlər. Bruce (etiraf etmək lazımdır ki, artıq fərqli, lakin daha az sərin deyil) avadanlığın əl ilə yenidən qurulmasının nə qədər çox olacağını anlamağa çalışır.

şəbəkə avtomatlaşdırılması. Birinin həyatından bir hadisə

Bir vacib məqamın üzərində də dayanmaq istərdim. Hər şeyi necə geri ala bilərik? Bir müddət sonra biz FW-CLUSTER-i yenidən həyata qaytaracağıq. Bu ehtiyat deyil, əsas avadanlıqdır, şəbəkə onun üzərində işləməlidir.

Şəbəkəçilərin necə yanmağa başladığını hiss edirsinizmi? Texniki direktor bunun niyə edilməməli olduğunu, niyə sonradan edilə biləcəyini minlərlə arqument eşidəcək. Təəssüf ki, şəbəkə bir dəstə yamaqdan, parçadan və keçmiş dəbdəbəsinin qalıqlarından belə işləyir. Yamaqlı yorğan olduğu ortaya çıxır. Bizim vəzifəmiz, ümumiyyətlə, bu konkret vəziyyətdə deyil, ümumiyyətlə, İT mütəxəssisləri olaraq, şəbəkənin işini gözəl ingilis sözü olan “consistency”ə çatdırmaqdır, çoxşaxəlidir, onu belə tərcümə etmək olar: coherence , ardıcıllıq, məntiq, ardıcıllıq, sistemlilik, müqayisəlilik, ardıcıllıq. Hər şey onun haqqındadır. Yalnız bu vəziyyətdə şəbəkə idarə edilə bilər, biz nəyin və necə işlədiyini aydın başa düşürük, nəyin dəyişdirilməli olduğunu aydın başa düşürük, lazım gələrsə, problemlər yaranarsa hara baxacağımızı aydın bilirik. Və yalnız belə bir şəbəkədə bayaq təsvir etdiyimiz kimi hiylələr edə bilərsiniz.

Əslində, parametrləri orijinal vəziyyətinə qaytaran başqa bir oyun kitabı hazırlanmışdır. Onun işləməsinin məntiqi eynidir (tapşırıqların ardıcıllığının çox vacib olduğunu xatırlamaq lazımdır), onsuz da kifayət qədər uzun bir məqaləni uzatmamaq üçün oyun kitabının icrasının siyahısını dərc etməmək qərarına gəldik. Bu cür məşqləri etdikdən sonra özünüzü daha sakit və gələcəkdə daha inamlı hiss edəcəksiniz, üstəlik, orada yığdığınız hər hansı bir qoltuq dəyənəyi dərhal özünü göstərəcəkdir.

İstənilən şəxs bizə yazıb bütün yazılı kodların mənbələrini, bütün palybooks ilə birlikdə ala bilər. Əlaqələr profildə.

Tapıntılar

Fikrimizcə, avtomatlaşdırıla bilən proseslər hələ kristallaşmamışdır. Qarşılaşdıqlarımıza və qərbli həmkarlarımızın müzakirə etdiklərinə əsasən, indiyə qədər aşağıdakı mövzular görünür:

  • Cihaz təminatı;
  • Məlumatların toplanması;
  • Hesabat;
  • Giderme;
  • Uyğunluq.

Maraq olarsa, verilən mövzulardan biri ilə bağlı müzakirəni davam etdirə bilərik.

Mən də bir az avtomatlaşdırma haqqında danışmaq istərdim. Bizim anlayışımızda nə olmalıdır:

  • Sistem insan tərəfindən təkmilləşərkən insansız yaşamalıdır. Sistem insanlardan asılı olmamalıdır;
  • Əməliyyat mütəxəssis olmalıdır. Rutin tapşırıqları yerinə yetirən mütəxəssislər sinfi yoxdur. Bütün iş rejimini avtomatlaşdıran və yalnız mürəkkəb problemləri həll edən mütəxəssislər var;
  • Rutin standart tapşırıqlar avtomatik olaraq “bir düyməyə toxunmaqla” yerinə yetirilir, heç bir resurs sərf olunmur. Bu cür tapşırıqların nəticəsi həmişə proqnozlaşdırıla bilən və başa düşüləndir.

Və bu məqamlar nəyə gətirib çıxarmalıdır:

  • İT infrastrukturunun şəffaflığı (İstismar, modernləşdirmə, həyata keçirmə risklərinin az olması. İldə daha az dayanma müddəti);
  • İT resurslarını planlaşdırma bacarığı (Potensial planlaşdırma sistemi - nə qədər istehlak edildiyini görə bilərsiniz, bir sistemdə nə qədər resurs tələb olunduğunu görə bilərsiniz, nəinki məktublar və yuxarı şöbələrə baş çəkməklə);
  • İT işçilərinin sayını azaltmaq imkanı.

Məqalənin müəllifləri: Alexander Chelovekov (CCIE RS, CCIE SP) və Pavel Kirillov. Biz İT infrastrukturunun avtomatlaşdırılması mövzusunda müzakirələr aparmaqda və həllər təklif etməkdə maraqlıyıq.


Mənbə: www.habr.com

Добавить комментарий