otomatisasi jaringan. Kasus saka urip siji

Hey Habr!

Ing artikel iki, kita arep ngomong babagan otomatisasi infrastruktur jaringan. Diagram kerja jaringan sing beroperasi ing siji perusahaan cilik nanging bangga banget bakal ditampilake. Kabeh cocog karo peralatan jaringan nyata acak. Kita bakal ndeleng kasus sing kedadeyan ing jaringan iki, sing bisa nyebabake mateni bisnis kanggo wektu sing suwe lan kerugian finansial sing serius. Solusi kanggo kasus iki cocog banget karo konsep "Otomasi infrastruktur jaringan". Nggunakake alat otomatisasi, kita bakal nuduhake carane sampeyan bisa ngatasi masalah rumit kanthi efektif ing wektu sing cendhak, lan kita bakal nggambarake kenapa masalah kasebut kudu dirampungake kanthi cara iki lan ora liya (liwat konsol).

Nolak tanggung jawab

Piranti utama kanggo otomatisasi yaiku Ansible (minangka alat otomatisasi) lan Git (minangka gudang kanggo playbook Ansible). Aku kaya kanggo langsung nggawe leladen sing iki dudu artikel pambuko, ngendi kita ngomong bab logika Ansible utawa Git, lan nerangake bab dhasar (contone, apa roletaskimodules, file inventaris, variabel ing Ansible, utawa apa mengkono nalika sampeyan ngetik git push utawa git commit printah). Crita iki ora babagan carane sampeyan bisa latihan Ansible lan ngatur NTP utawa SMTP ing peralatan sampeyan. Iki minangka crita babagan carane sampeyan bisa kanthi cepet lan luwih becik ngatasi masalah jaringan tanpa kesalahan. Sampeyan uga saranake kanggo duwe pangerten apik carane jaringan dianggo, utamané apa TCP / IP, OSPF, BGP protokol tumpukan. Kita uga bakal njupuk pilihan Ansible lan Git metu saka persamaan. Yen sampeyan isih kudu milih solusi tartamtu, disaranake maca buku "Network Programmability and Automation. Skills for the Next-Generation Network Engineer" dening Jason Edelman, Scott S. Lowe, lan Matt Oswalt.

Saiki kanggo bisnis.

Formulasi masalah

Coba bayangake kahanan: jam 3 esuk, sampeyan lagi turu lan ngimpi. Telpon. Direktur teknis nelpon:

- Ya?
— ###, ####, #####, kluster firewall wis tiba lan ora munggah!!!
Sampeyan gosok mata, nyoba mangertos apa sing kedadeyan lan mbayangno kepiye kedadeyan kasebut. Ing telpon sampeyan bisa krungu rambute ing sirah direktur tearing, lan takon kanggo nelpon maneh amarga jenderal nelpon dheweke ing baris kapindho.

Setengah jam mengko, sampeyan ngumpulake cathetan pambuka pisanan saka shift tugas, tangi kabeh sing bisa tangi. Akibaté, direktur teknis ora ngapusi, kabeh kaya saiki, kluster utama firewall wis ambruk, lan ora ana gerakan awak dhasar sing nggawa dheweke menyang pikirane. Kabeh layanan sing ditawakake perusahaan ora bisa digunakake.

Pilih masalah kanggo rasa sampeyan, saben wong bakal ngelingi sing beda. Contone, sawise nganyari sewengi tanpa beban abot, kabeh bisa digunakake, lan kabeh wong turu seneng. Lalu lintas wiwit mili, lan buffer antarmuka wiwit kebanjiran amarga bug ing driver kertu jaringan.

Jackie Chan bisa nggambarake kahanan kasebut kanthi apik.

otomatisasi jaringan. Kasus saka urip siji

Matur nuwun, Jackie.

Ora kahanan sing nyenengake, ta?

Ayo ninggalake jaringan kita bro karo pikiran sedih kanggo sawetara wektu.

Ayo dadi rembugan carane acara bakal berkembang luwih.

Kita nyaranake urutan presentasi materi ing ngisor iki

  1. Ayo katon ing diagram jaringan lan ndeleng cara kerjane;
  2. Kita bakal njlèntrèhaké cara nransfer setelan saka siji router menyang liyane nggunakake Ansible;
  3. Ayo ngobrol babagan otomatisasi infrastruktur IT kanthi sakabehe.

Diagram lan deskripsi jaringan

Skema

otomatisasi jaringan. Kasus saka urip siji

Ayo nimbang diagram logis organisasi kita. Kita ora bakal menehi jeneng produsen peralatan tartamtu; kanggo tujuan artikel iki ora masalah (Maca sing teliti bakal ngira apa jenis peralatan sing digunakake). Iki mung minangka salah sawijining kaluwihan sing apik kanggo nggarap Ansible; nalika nyiyapake, umume kita ora peduli apa jenis peralatan kasebut. Cukup kanggo mangerteni, iki peralatan saka vendor kondhang, kayata Cisco, Juniper, Check Point, Fortinet, Palo Alto ... sampeyan bisa ngganti pilihan sampeyan dhewe.

Kita duwe rong tugas utama kanggo mindhah lalu lintas:

  1. Priksa manawa publikasi layanan kita, sing dadi bisnis perusahaan;
  2. Nyedhiyani komunikasi karo cabang, pusat data remot lan organisasi pihak katelu (mitra lan klien), uga akses cabang menyang Internet liwat kantor pusat.

Ayo dadi miwiti karo unsur dhasar:

  1. Router tapel wates (BRD-01, BRD-02);
  2. Kluster Firewall (FW-CLUSTER);
  3. Ngalih inti (L3-CORE);
  4. Router sing bakal dadi lifeline (nalika ngatasi masalah kasebut, kita bakal nransfer setelan jaringan saka FW-CLUSTER menyang EMERGENCY) (DARURAT);
  5. Ngalih kanggo manajemen infrastruktur jaringan (L2-MGMT);
  6. Mesin virtual karo Git lan Ansible (VM-AUTOMATION);
  7. Laptop sing nguji lan ngembangake playbook kanggo Ansible (Laptop-Automation) ditindakake.

Jaringan kasebut dikonfigurasi nganggo protokol routing OSPF dinamis kanthi wilayah ing ngisor iki:

  • Area 0 - wilayah sing kalebu router sing tanggung jawab kanggo mindhah lalu lintas ing zona EXCHANGE;
  • Wilayah 1 - wilayah sing kalebu router sing tanggung jawab kanggo operasi layanan perusahaan;
  • Area 2 - wilayah sing kalebu router sing tanggung jawab kanggo ngatur lalu lintas rute;
  • Area N - area jaringan cabang.

Ing router tapel wates, router virtual (VRF-INTERNET) digawe, ing eBGP tampilan lengkap diinstal kanthi AS sing ditugasake. iBGP diatur antarane VRFs. Perusahaan iki duwe alamat putih sing diterbitake ing VRF-INTERNET iki. Sawetara alamat putih langsung diarahake menyang FW-CLUSTER (alamat ing ngendi layanan perusahaan beroperasi), sawetara diarahake liwat zona EXCHANGE (layanan perusahaan internal sing mbutuhake alamat IP eksternal, lan alamat NAT eksternal kanggo kantor). Sabanjure, lalu lintas menyang router virtual sing digawe ing L3-CORE kanthi alamat putih lan abu-abu (zona keamanan).

Jaringan Manajemen nggunakake switch darmabakti lan makili jaringan darmabakti fisik. Jaringan manajemen uga dipérang dadi zona keamanan.
Router DARURAT fisik lan logis duplikat FW-CLUSTER. Kabeh antarmuka dipateni kajaba sing katon ing jaringan manajemen.

Otomasi lan deskripsi

Kita ngerti cara kerja jaringan. Saiki ayo goleki langkah-langkah apa sing bakal ditindakake kanggo mindhah lalu lintas saka FW-CLUSTER menyang EMERGENCY:

  1. We mateni antarmuka ing ngalih inti (L3-CORE) sing nyambung menyang FW-CLUSTER;
  2. We mateni antarmuka ing switch kernel L2-MGMT sing nyambung menyang FW-CLUSTER;
  3. Kita ngatur dalan EMERGENCY (kanthi standar, kabeh antarmuka dipateni, kajaba sing ana gandhengane karo L2-MGMT):

  • Kita ngaktifake antarmuka ing EMERGENCY;
  • We ngatur alamat IP external (kanggo NAT) sing ana ing FW-Cluster;
  • We generate panjalukan gARP supaya alamat poppy ing tabel arp L3-CORE diganti saka FW-Cluster kanggo EMERGENCY;
  • We ndhaftar rute standar minangka statis kanggo BRD-01, BRD-02;
  • Nggawe aturan NAT;
  • Mundhakaken kanggo DARURAT OSPF Area 1;
  • Mundhakaken kanggo DARURAT OSPF Area 2;
  • We ngganti biaya rute ing Area 1 kanggo 10;
  • We ngganti biaya rute standar ing Area 1 kanggo 10;
  • Kita ngganti alamat IP sing digandhengake karo L2-MGMT (kanggo sing ana ing FW-CLUSTER);
  • We generate panjalukan gARP supaya alamat poppy ing tabel arp L2-MGMT diganti saka FW-CLUSTER kanggo EMERGENCY.

Maneh, kita bali menyang formulasi asli masalah kasebut. Jam telu esuk, stres gedhe, kesalahan ing tahap apa wae bisa nyebabake masalah anyar. Siap ngetik printah liwat CLI? iya ta? Oke, paling ora mbilas rai, ngombe kopi lan kumpulake kemauan.
Bruce, please bantuan wong.

otomatisasi jaringan. Kasus saka urip siji

Ya, kita terus nambah otomatisasi.
Ing ngisor iki diagram babagan cara playbook ing istilah Ansible. Skema iki nggambarake apa sing wis diterangake ing ndhuwur, mung implementasine khusus ing Ansible.
otomatisasi jaringan. Kasus saka urip siji

Ing tahap iki, kita ngerti apa sing kudu ditindakake, ngembangake playbook, nganakake tes, lan saiki wis siyap diluncurake.

Liyane digression lyrical cilik. Gampang crita kudu ora nyasarake sampeyan. Proses nulis playbook ora segampang lan cepet kaya sing dikira. Pengujian njupuk wektu sing cukup akeh, ngadeg virtual digawe, solusi kasebut dites kaping pirang-pirang, udakara 100 tes ditindakake.

Ayo diluncurake ... Ana rasa yen kabeh kedadeyan alon-alon, ana kesalahan ing endi wae, ana sing ora bakal bisa ditindakake. Perasaan mlumpat nganggo parasut, nanging parasut ora pengin mbukak langsung ... iki normal.

Sabanjure, kita maca asil operasi sing ditindakake ing playbook Ansible (alamat IP diganti kanggo tujuan rahasia):

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

Rampung!

Ing kasunyatan, iku ora cukup siap, aja lali bab konvergensi protokol nuntun dinamis lan loading nomer akeh rute menyang FIB. Kita ora bisa mengaruhi iki kanthi cara apa wae. We ngenteni. Iku bisa metu. Saiki wis siyap.

Lan ing desa Vilabajo (sing ora pengin ngotomatisasi persiyapan jaringan) dheweke terus ngumbah piring. Bruce (diakoni, wis beda, nanging ora kurang kelangan) nyoba kanggo ngerti carane luwih manual reconfiguration saka peralatan bakal njupuk Panggonan.

otomatisasi jaringan. Kasus saka urip siji

Aku uga pengin mikir babagan siji titik penting. Kepiye carane bisa bali kabeh? Sawise sawetara wektu, kita bakal urip maneh FW-CLUSTER. Iki minangka peralatan utama, dudu serep, jaringan kudu mbukak.

Apa sampeyan rumangsa kepiye para networker wiwit kobong? Direktur teknis bakal krungu sewu argumen kenapa iki ora kudu ditindakake, kenapa iki bisa ditindakake mengko. Sayange, iki cara jaringan bisa digunakake saka pirang-pirang patch, potongan, lan sisa-sisa kemewahan. Pranyata dadi selimut tambal sulam. Tugas kita ing umum, ora ing kahanan tartamtu iki, nanging ing umum ing asas, minangka spesialis IT, kanggo nggawa karya jaringan kanggo tembung Inggris ayu "konsistensi", iku banget multifaceted, bisa dijarwakake minangka: koherensi , konsistensi, logika, koherensi, sistematis, komparabilitas, koherensi. Iku kabeh babagan dheweke. Mung ing negara iki jaringan bisa diatur, kita ngerti kanthi jelas apa sing dianggo lan carane, kita ngerti kanthi jelas apa sing kudu diganti, yen perlu, kita ngerti kanthi jelas yen ana masalah. Lan mung ing jaringan kasebut sampeyan bisa nindakake trik kaya sing wis diterangake.

Bener, playbook liyane wis disiapake, sing ngasilake setelan kasebut menyang negara asline. Logika operasine padha (penting kanggo elinga yen urutan tugas penting banget), supaya ora ndawakake artikel sing wis rada dawa, kita mutusake ora ngirim dhaptar eksekusi playbook. Sawise nindakake latihan kasebut, sampeyan bakal rumangsa luwih tenang lan luwih percaya diri ing mangsa ngarep, uga kruk sing ditumpuk ing kana bakal langsung mbukak.

Sapa bisa nulis kanggo kita lan nampa sumber kabeh kode ditulis, bebarengan karo kabeh palybooks. Kontak ing profil.

temonan

Ing mratelakake panemume, pangolahan sing bisa otomatis durung crystallized. Adhedhasar apa sing wis ditemoni lan apa sing dirembug karo kanca-kanca Barat, tema ing ngisor iki katon nganti saiki:

  • Penyediaan piranti;
  • Pangumpulan data;
  • nglaporake;
  • Ngatasi masalah;
  • Kepatuhan.

Yen ana minat, kita bisa nerusake diskusi babagan salah sawijining topik sing diwenehake.

Aku uga pengin ngomong sethithik babagan otomatisasi. Apa sing kudu ana ing pemahaman kita:

  • Sistem kasebut kudu urip tanpa wong, nalika didandani dening wong. Sistem ngirim ora gumantung ing manungsa;
  • Operasi kudu ahli. Ora ana kelas spesialis sing nindakake tugas rutin. Ana ahli sing ngotomatisasi kabeh rutinitas lan mung ngrampungake masalah sing rumit;
  • Tugas standar rutin rampung kanthi otomatis "kanthi tutul tombol", ora ana sumber daya sing boroske. Asil saka tugas kasebut mesthi bisa diprediksi lan bisa dingerteni.

Lan apa sing kudu ditindakake titik kasebut:

  • Transparansi infrastruktur IT (Kurang risiko operasi, modernisasi, implementasine. Kurang downtime saben taun);
  • Kemampuan kanggo rencana sumber daya IT (Kapasitas-sistem planning - sampeyan bisa ndeleng carane akeh migunakaken, sampeyan bisa ndeleng carane akeh sumber daya sing dibutuhake ing sistem siji, lan ora dening huruf lan kunjungan menyang departemen ndhuwur);
  • Kemungkinan kanggo nyuda jumlah staf IT.

Penulis artikel: Alexander Chelovekov (CCIE RS, CCIE SP) lan Pavel Kirillov. Kita kasengsem ngrembug lan ngusulake solusi babagan topik otomatisasi infrastruktur IT.


Source: www.habr.com

Add a comment