Automasi rangkaian. Kes dari kehidupan seseorang

Hai Habr!

Dalam artikel ini kami ingin bercakap tentang automasi infrastruktur rangkaian. Gambar rajah kerja rangkaian yang beroperasi dalam satu syarikat kecil tetapi sangat membanggakan akan dibentangkan. Semua perlawanan dengan peralatan rangkaian sebenar adalah rawak. Kami akan melihat kes yang berlaku dalam rangkaian ini, yang boleh menyebabkan penutupan perniagaan untuk masa yang lama dan kerugian kewangan yang serius. Penyelesaian untuk kes ini sangat sesuai dengan konsep "Automasi infrastruktur rangkaian". Menggunakan alat automasi, kami akan menunjukkan cara anda boleh menyelesaikan masalah kompleks dengan berkesan dalam masa yang singkat, dan kami akan memikirkan mengapa masalah ini harus diselesaikan dengan cara ini dan bukan sebaliknya (melalui konsol).

Penafian

Alat utama kami untuk automasi ialah Ansible (sebagai alat automasi) dan Git (sebagai repositori untuk buku permainan Ansible). Saya ingin segera membuat tempahan bahawa ini bukan artikel pengenalan, di mana kita bercakap tentang logik Ansible atau Git, dan menerangkan perkara asas (contohnya, apakah roletaskimodules, fail inventori, pembolehubah dalam Ansible, atau apa yang berlaku apabila anda masukkan arahan git push atau git commit). Cerita ini bukan tentang cara anda boleh berlatih Ansible dan mengkonfigurasi NTP atau SMTP pada peralatan anda. Ini adalah cerita tentang bagaimana anda boleh menyelesaikan masalah rangkaian dengan cepat dan lebih baik tanpa ralat. Ia juga dinasihatkan untuk mempunyai pemahaman yang baik tentang cara rangkaian berfungsi, khususnya susunan protokol TCP/IP, OSPF, BGP. Kami juga akan mengambil pilihan Ansible dan Git daripada persamaan. Jika anda masih perlu memilih penyelesaian khusus, kami amat mengesyorkan membaca buku “Kebolehprograman dan Automasi Rangkaian. Kemahiran untuk Jurutera Rangkaian Generasi Seterusnya" oleh Jason Edelman, Scott S. Lowe, dan Matt Oswalt.

Sekarang ke titik.

Pernyataan masalah

Cuba kita bayangkan satu situasi: pukul 3 pagi, anda sedang tidur lena dan bermimpi. Panggilan telefon. Pengarah teknikal memanggil:

- Ya?
— ###, ####, #####, kelompok tembok api telah jatuh dan tidak meningkat!!!
Anda menggosok mata anda, cuba memahami apa yang berlaku dan bayangkan bagaimana ini boleh berlaku. Di telefon anda boleh mendengar rambut di kepala pengarah koyak, dan dia meminta untuk menghubungi semula kerana jeneral memanggilnya di talian kedua.

Setengah jam kemudian, anda mengumpul nota pengenalan pertama daripada syif bertugas, membangunkan semua orang yang boleh dikejutkan. Akibatnya, pengarah teknikal tidak berbohong, segala-galanya adalah seperti itu, kelompok utama firewall telah jatuh, dan tiada pergerakan badan asas yang membawanya kepada derianya. Semua perkhidmatan yang ditawarkan oleh syarikat tidak berfungsi.

Pilih masalah mengikut citarasa anda, semua orang akan mengingati sesuatu yang berbeza. Sebagai contoh, selepas kemas kini semalaman tanpa beban yang berat, semuanya berfungsi dengan baik, dan semua orang tidur dengan gembira. Trafik mula mengalir, dan penimbal antara muka mula melimpah kerana pepijat dalam pemacu kad rangkaian.

Jackie Chan boleh menggambarkan keadaan dengan baik.

Automasi rangkaian. Kes dari kehidupan seseorang

Terima kasih, Jackie.

Bukan situasi yang sangat menyenangkan, bukan?

Mari tinggalkan rangkaian kita bro dengan fikiran sedihnya buat seketika.

Mari kita bincangkan bagaimana acara akan berkembang lebih jauh.

Kami mencadangkan susunan pembentangan bahan berikut

  1. Mari lihat gambarajah rangkaian dan lihat cara ia berfungsi;
  2. Kami akan menerangkan cara kami memindahkan tetapan dari satu penghala ke penghala yang lain menggunakan Ansible;
  3. Mari kita bercakap tentang automasi infrastruktur IT secara keseluruhan.

Gambar rajah rangkaian dan penerangan

Skim ini

Automasi rangkaian. Kes dari kehidupan seseorang

Mari kita pertimbangkan rajah logik organisasi kita. Kami tidak akan menamakan pengeluar peralatan tertentu; untuk tujuan artikel ini ia tidak penting (Pembaca yang penuh perhatian akan meneka jenis peralatan yang digunakan). Ini hanyalah salah satu kelebihan baik bekerja dengan Ansible; semasa menyediakan, kami biasanya tidak mengambil berat jenis peralatan itu. Sekadar memahami, ini adalah peralatan daripada vendor terkenal, seperti Cisco, Juniper, Check Point, Fortinet, Palo Alto...anda boleh menggantikan pilihan anda sendiri.

Kami mempunyai dua tugas utama untuk mengalihkan trafik:

  1. Memastikan penerbitan perkhidmatan kami, yang merupakan perniagaan syarikat;
  2. Menyediakan komunikasi dengan cawangan, pusat data jauh dan organisasi pihak ketiga (rakan kongsi dan pelanggan), serta capaian cawangan ke Internet melalui pejabat pusat.

Mari kita mulakan dengan elemen asas:

  1. Dua penghala sempadan (BRD-01, BRD-02);
  2. Kluster Firewall (FW-CLUSTER);
  3. Suis teras (L3-TERAS);
  4. Penghala yang akan menjadi talian hayat (semasa kami menyelesaikan masalah, kami akan memindahkan tetapan rangkaian dari FW-CLUSTER ke KECEMASAN) (KECEMASAN);
  5. Suis untuk pengurusan infrastruktur rangkaian (L2-MGMT);
  6. Mesin maya dengan Git dan Ansible (VM-AUTOMATION);
  7. Komputer riba di mana ujian dan pembangunan buku main untuk Ansible (Automasi Komputer Riba) dijalankan.

Rangkaian dikonfigurasikan dengan protokol penghalaan OSPF dinamik dengan kawasan berikut:

  • Kawasan 0 – kawasan yang termasuk penghala yang bertanggungjawab untuk menggerakkan trafik dalam zon PERTUKARAN;
  • Kawasan 1 – kawasan yang merangkumi penghala yang bertanggungjawab untuk pengendalian perkhidmatan syarikat;
  • Kawasan 2 – kawasan yang merangkumi penghala yang bertanggungjawab untuk penghalaan trafik pengurusan;
  • Kawasan N – kawasan rangkaian cawangan.

Pada penghala sempadan, penghala maya (VRF-INTERNET) dicipta, di mana paparan penuh eBGP dipasang dengan AS yang diperuntukkan sepadan. iBGP dikonfigurasikan antara VRF. Syarikat itu mempunyai kumpulan alamat putih yang diterbitkan pada VRF-INTERNET ini. Sesetengah alamat putih dihalakan terus ke FW-CLUSTER (alamat di mana perkhidmatan syarikat beroperasi), sesetengahnya dihalakan melalui zon EXCHANGE (perkhidmatan syarikat dalaman yang memerlukan alamat IP luaran dan alamat NAT luaran untuk pejabat). Seterusnya, trafik pergi ke penghala maya yang dibuat pada L3-CORE dengan alamat putih dan kelabu (zon keselamatan).

Rangkaian Pengurusan menggunakan suis khusus dan mewakili rangkaian khusus secara fizikal. Rangkaian pengurusan juga dibahagikan kepada zon keselamatan.
Penghala KECEMASAN secara fizikal dan logik menduplikasi FW-CLUSTER. Semua antara muka padanya dilumpuhkan kecuali yang melihat ke dalam rangkaian pengurusan.

Automasi dan penerangannya

Kami mengetahui cara rangkaian berfungsi. Sekarang mari kita lihat langkah demi langkah tentang perkara yang akan kita lakukan untuk memindahkan trafik dari FW-CLUSTER ke KECEMASAN:

  1. Kami melumpuhkan antara muka pada suis teras (L3-CORE) yang menyambungkannya ke FW-CLUSTER;
  2. Kami melumpuhkan antara muka pada suis kernel L2-MGMT yang menyambungkannya kepada FW-CLUSTER;
  3. Kami mengkonfigurasi penghala KECEMASAN (secara lalai, semua antara muka dilumpuhkan padanya, kecuali yang dikaitkan dengan L2-MGMT):

  • Kami mendayakan antara muka pada KECEMASAN;
  • Kami mengkonfigurasi alamat IP luaran (untuk NAT) yang terdapat pada Kluster FW;
  • Kami menjana permintaan gARP supaya alamat popi dalam jadual arp L3-CORE ditukar daripada Kluster FW kepada KECEMASAN;
  • Kami mendaftarkan laluan lalai sebagai statik kepada BRD-01, BRD-02;
  • Buat peraturan NAT;
  • Naikkan kepada OSPF KECEMASAN Kawasan 1;
  • Naikkan kepada OSPF KECEMASAN Kawasan 2;
  • Kami menukar kos laluan di Kawasan 1 kepada 10;
  • Kami menukar kos laluan lalai di Kawasan 1 kepada 10;
  • Kami menukar alamat IP yang dikaitkan dengan L2-MGMT (kepada yang ada pada FW-CLUSTER);
  • Kami menjana permintaan gARP supaya alamat popia dalam jadual arp L2-MGMT ditukar daripada FW-CLUSTER kepada EMERGENCY.

Sekali lagi, kita kembali kepada rumusan asal masalah. Pukul tiga pagi, tekanan yang sangat besar, kesilapan di mana-mana peringkat boleh membawa kepada masalah baru. Bersedia untuk menaip arahan melalui CLI? ya? Ok, sekurang-kurangnya pergi bilas muka anda, minum kopi dan kumpulkan kekuatan anda.
Bruce, tolong bantu mereka.

Automasi rangkaian. Kes dari kehidupan seseorang

Nah, kami terus meningkatkan automasi kami.
Di bawah ialah gambar rajah cara buku main berfungsi dalam istilah Ansible. Skim ini mencerminkan perkara yang kami nyatakan di atas, ia hanyalah pelaksanaan khusus dalam Ansible.
Automasi rangkaian. Kes dari kehidupan seseorang

Pada peringkat ini, kami menyedari perkara yang perlu dilakukan, membangunkan buku permainan, menjalankan ujian, dan kini kami bersedia untuk melancarkannya.

Satu lagi penyimpangan lirik kecil. Kemudahaan cerita tidak seharusnya mengelirukan anda. Proses menulis buku permainan tidak semudah dan secepat yang disangka. Ujian mengambil masa yang agak lama, pendirian maya dicipta, penyelesaiannya diuji berkali-kali, kira-kira 100 ujian telah dijalankan.

Mari kita lancarkan... Ada perasaan bahawa segala-galanya berlaku dengan sangat perlahan, ada kesilapan di suatu tempat, sesuatu tidak akan berfungsi pada akhirnya. Perasaan melompat dengan payung terjun, tetapi payung terjun tidak mahu membuka langsung ... ini adalah perkara biasa.

Seterusnya, kami membaca hasil operasi buku permainan Ansible yang dilakukan (alamat IP telah diganti untuk tujuan kerahsiaan):

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

Selesai!

Sebenarnya, ia belum cukup bersedia, jangan lupa tentang penumpuan protokol penghalaan dinamik dan memuatkan sejumlah besar laluan ke dalam FIB. Kita tidak boleh mempengaruhi ini dalam apa cara sekalipun. Kami tunggu. Ia berjaya. Sekarang dah siap.

Dan di kampung Vilabagio (yang tidak mahu mengautomasikan persediaan rangkaian) mereka terus mencuci pinggan mangkuk. Bruce (diakui, sudah berbeza, tetapi tidak kurang hebatnya) cuba memahami berapa banyak lagi konfigurasi manual peralatan yang akan berlaku.

Automasi rangkaian. Kes dari kehidupan seseorang

Saya juga ingin membincangkan satu perkara penting. Bagaimana kita boleh mendapatkan semuanya kembali? Selepas beberapa lama, kami akan menghidupkan semula FW-CLUSTER kami. Ini adalah peralatan utama, bukan sandaran, rangkaian mesti berjalan di atasnya.

Adakah anda merasakan bagaimana rangkaian mula kehabisan tenaga? Pengarah teknikal akan mendengar seribu hujah mengapa ini tidak boleh dilakukan, mengapa ini boleh dilakukan kemudian. Malangnya, ini adalah cara rangkaian berfungsi daripada sekumpulan tompok, kepingan dan sisa kemewahannya dahulu. Ia ternyata menjadi selimut patchwork. Tugas kami secara umum, bukan dalam situasi khusus ini, tetapi secara umum pada dasarnya, sebagai pakar IT, adalah untuk membawa kerja rangkaian kepada perkataan Inggeris yang indah "konsistensi", ia sangat pelbagai, ia boleh diterjemahkan sebagai: koheren , ketekalan, logik, kesepaduan, sistematik, kebolehbandingan, kesepaduan. Ini semua tentang dia. Hanya dalam keadaan ini rangkaian boleh diurus, kami memahami dengan jelas apa yang berfungsi dan bagaimana, kami memahami dengan jelas apa yang perlu diubah, jika perlu, kami dengan jelas tahu di mana hendak melihat jika masalah timbul. Dan hanya dalam rangkaian sedemikian anda boleh melakukan helah seperti yang baru kami terangkan.

Sebenarnya, buku permainan lain telah disediakan, yang mengembalikan tetapan kepada keadaan asalnya. Logik operasinya adalah sama (penting untuk diingat bahawa susunan tugas adalah sangat penting), untuk tidak memanjangkan artikel yang sudah agak panjang, kami memutuskan untuk tidak menyiarkan penyenaraian pelaksanaan playbook. Selepas melakukan latihan sedemikian, anda akan berasa lebih tenang dan lebih yakin pada masa hadapan, di samping itu, sebarang tongkat yang anda timbun di sana akan segera mendedahkan diri mereka.

Sesiapa sahaja boleh menulis kepada kami dan menerima sumber semua kod bertulis, bersama dengan semua buku paly. Kenalan dalam profil.

Penemuan

Pada pendapat kami, proses yang boleh diautomatikkan masih belum terhablur. Berdasarkan apa yang kami temui dan apa yang dibincangkan oleh rakan sekerja Barat kami, tema berikut dapat dilihat setakat ini:

  • Peruntukan peranti;
  • Pengumpulan data;
  • Pelaporan;
  • Penyelesaian masalah;
  • Pematuhan.

Jika ada minat, kita boleh teruskan perbincangan mengenai salah satu topik yang diberikan.

Saya juga ingin bercakap sedikit tentang automasi. Apa yang sepatutnya dalam pemahaman kita:

  • Sistem mesti hidup tanpa seseorang, sambil diperbaiki oleh seseorang. Sistem ini tidak seharusnya bergantung kepada manusia;
  • Operasi mesti pakar. Tiada kelas pakar yang melaksanakan tugas rutin. Terdapat pakar yang telah mengautomasikan keseluruhan rutin dan menyelesaikan masalah kompleks sahaja;
  • Tugas standard rutin dilakukan secara automatik "dengan satu sentuhan butang", tiada sumber yang dibazirkan. Hasil daripada tugasan sedemikian sentiasa boleh diramal dan difahami.

Dan apakah perkara ini harus membawa kepada:

  • Ketelusan infrastruktur IT (Kurang risiko operasi, pemodenan, pelaksanaan. Kurang masa henti setahun);
  • Keupayaan untuk merancang sumber IT (Sistem perancangan kapasiti - anda boleh melihat berapa banyak yang digunakan, anda boleh melihat berapa banyak sumber yang diperlukan dalam satu sistem, dan bukan melalui surat dan lawatan ke jabatan teratas);
  • Kemungkinan untuk mengurangkan bilangan kakitangan IT.

Pengarang artikel: Alexander Chelovekov (CCIE RS, CCIE SP) dan Pavel Kirillov. Kami berminat untuk membincangkan dan mencadangkan penyelesaian mengenai topik automasi infrastruktur IT.


Sumber: www.habr.com

Tambah komen