Dengan skrip Cisco ACI yang ajaib ini, Anda dapat dengan cepat mengkonfigurasi jaringan Anda.Pabrik jaringan untuk pusat data Cisco ACI telah ada selama lima tahun, tetapi tidak ada yang dikatakan tentang hal itu di Habr, jadi saya memutuskan untuk memperbaikinya sedikit. Saya akan memberi tahu Anda dari pengalaman saya sendiri apa itu, apa bagusnya, dan di mana ia menyapu.
Apa itu dan dari mana asalnya?
Pada saat pengumuman ACI (Application Centric Infrastructure) pada 2013, para pesaing menyerang pendekatan tradisional ke jaringan pusat data di tiga sisi sekaligus.
Di satu sisi, solusi SDN "generasi pertama" berbasis OpenFlow berjanji untuk membuat jaringan lebih fleksibel dan lebih murah secara bersamaan. Idenya adalah untuk membuat pengambilan keputusan, yang secara tradisional dilakukan oleh perangkat lunak berpemilik dari sakelar, pada pengontrol pusat.
Pengontrol ini akan memiliki visi tunggal tentang semua yang terjadi dan, berdasarkan ini, akan memprogram perangkat keras dari semua sakelar pada tingkat aturan untuk memproses aliran tertentu.
Di sisi lain, solusi jaringan overlay memungkinkan untuk menerapkan konektivitas dan kebijakan keamanan yang diperlukan tanpa perubahan pada jaringan fisik, membangun terowongan perangkat lunak antara host yang divirtualkan. Contoh paling terkenal dari pendekatan ini adalah keputusan dari Nicira, yang pada saat itu telah diakuisisi oleh VMWare sebesar $ 1,26 miliar dan memunculkan VMWare NSX saat ini. Untuk beberapa situasi, Nicira didirikan oleh orang yang sama yang sebelumnya berdiri di asal-usul OpenFlow, sekarang mengatakan bahwa
OpenFlow tidak cocok untuk membangun pabrik pusat data.
Dan akhirnya, chip switching yang tersedia di pasar terbuka (apa yang disebut silikon pedagang) telah mencapai tingkat kematangan di mana mereka telah menjadi ancaman nyata bagi produsen switch tradisional. Sebelumnya, masing-masing vendor sendiri mengembangkan chip untuk switch-nya, tetapi seiring berjalannya waktu, chip dari produsen pihak ketiga, terutama dari Bradcom, mulai mengurangi jarak dengan chip vendor dalam hal fungsi, dan dalam hal rasio harga / kinerja yang terlampaui. Oleh karena itu, banyak yang percaya bahwa hari-hari sakelar pada chip dari desain mereka sendiri diberi nomor.
ACI adalah "respons asimetris" dari Cisco (atau lebih tepatnya, Insieme, yang didirikan oleh mantan karyawannya), untuk semua hal di atas.
Apa bedanya dengan OpenFlow?
Dalam hal distribusi fungsi, ACI sebenarnya kebalikan dari OpenFlow.
Dalam arsitektur OpenFlow, controller bertanggung jawab untuk menentukan aturan terperinci (aliran)
dalam perangkat keras semua sakelar, yaitu, dalam jaringan besar, ia dapat bertanggung jawab untuk memelihara dan, yang paling penting, mengubah puluhan juta rekaman dalam ratusan titik dalam jaringan, oleh karena itu kinerja dan keandalannya dalam implementasi skala besar menjadi hambatan.
ACI menggunakan pendekatan yang berlawanan: pengontrol, tentu saja, juga ada, tetapi sakelar menerima kebijakan deklaratif tingkat tinggi darinya, dan sakelar itu sendiri menjadikannya ke dalam perincian pengaturan spesifik dalam perangkat keras. Pengontrol dapat di-boot ulang atau dimatikan sama sekali, dan tidak ada hal buruk yang akan terjadi pada jaringan, kecuali, tentu saja, kurangnya kontrol pada saat ini. Menariknya, ada situasi di ACI di mana OpenFlow masih digunakan, tetapi secara lokal di dalam host untuk pemrograman Open vSwitch.
ACI sepenuhnya dibangun pada transport overlay berdasarkan VXLAN, tetapi pada saat yang sama menyertakan transport IP yang mendasarinya sebagai bagian dari solusi tunggal. Cisco menyebut ini istilah "overlay terintegrasi." Sebagai titik terminasi untuk overlay di ACI, dalam kebanyakan kasus switch pabrik digunakan (mereka melakukan ini pada kecepatan saluran). Host tidak perlu mengetahui apa pun tentang pabrik, enkapsulasi, dll., Namun, dalam beberapa kasus (misalnya, untuk menghubungkan host OpenStack), lalu lintas VXLAN dapat diberikan kepada mereka.
Overlay digunakan dalam ACI tidak hanya untuk menyediakan konektivitas yang fleksibel melalui jaringan transportasi, tetapi juga untuk mengirimkan meta-informasi (digunakan, misalnya, untuk menerapkan kebijakan keamanan).
Chip Broadcom sebelumnya digunakan oleh Cisco dalam seri switch Nexus 3000. Keluarga Nexus 9000, yang dirilis khusus untuk mendukung ACI, awalnya menerapkan model hybrid yang disebut Merchant +. Switch secara bersamaan menggunakan chip Broadcom Trident 2 yang baru, dan chip pengembangan Cisco yang melengkapi itu, mewujudkan semua keajaiban ACI. Rupanya, ini memungkinkan untuk mempercepat output produk dan mengurangi label harga switch ke level yang dekat dengan model hanya untuk Trident 2. Pendekatan ini cukup untuk dua hingga tiga tahun pertama pasokan ACI. Selama masa ini, Cisco mengembangkan dan meluncurkan Nexus 9000 generasi berikutnya dengan chip sendiri dengan lebih banyak kinerja dan fitur, tetapi pada tingkat harga yang sama. Spesifikasi eksternal dalam hal interaksi di pabrik sepenuhnya dipertahankan. Pada saat yang sama, pengisian internal benar-benar berubah: sesuatu seperti refactoring, tetapi untuk besi.
Bagaimana Arsitektur Cisco ACI Bekerja
Dalam kasus yang paling sederhana, ACI dibangun di atas topologi jaringan Clos, atau, seperti yang sering mereka katakan, Spine-Leaf. Switch level tulang belakang bisa dari dua (atau satu, jika kita tidak peduli dengan toleransi kesalahan) hingga enam. Oleh karena itu, semakin banyak ada, semakin tinggi toleransi kesalahan (pengurangan bandwidth dan keandalan yang lebih rendah jika terjadi kecelakaan atau pemeliharaan satu Spine) dan kinerja keseluruhan. Semua koneksi eksternal menuju ke switch Tingkat-daun: ini adalah server, dan menghubungkan ke jaringan eksternal melalui L2 atau L3, dan menghubungkan pengontrol APIC. Secara umum, dengan ACI, tidak hanya konfigurasi, tetapi juga pengumpulan statistik, pemantauan kegagalan dan sebagainya - semuanya dilakukan melalui antarmuka pengendali, yang merupakan tiga dalam implementasi ukuran standar.
Anda tidak perlu lagi terhubung ke sakelar dengan konsol, bahkan untuk memulai jaringan: pengontrol itu sendiri mendeteksi sakelar dan mengumpulkan pabrik dari sakelar tersebut, termasuk pengaturan semua protokol layanan, oleh karena itu, sangat penting untuk mencatat nomor seri peralatan yang diinstal selama instalasi sehingga Anda tidak perlu menebak di mana sakelar masuk rak mana yang berada. Untuk memecahkan masalah, Anda dapat terhubung ke sakelar melalui SSH jika perlu: mereka menggunakan perintah show Cisco yang biasa dengan hati-hati.
Di dalam pabrik menggunakan transportasi IP, jadi tidak ada Spanning Tree dan kengerian lainnya di masa lalu di dalamnya: semua tautan terlibat, dan konvergensi jika terjadi kegagalan sangat cepat. Lalu lintas pabrik ditransmisikan melalui terowongan VXLAN. Lebih tepatnya, Cisco sendiri menyebut enkapsulasi iVXLAN, dan ini berbeda dari VXLAN biasa karena bidang yang disediakan di header jaringan digunakan untuk mengirimkan informasi overhead, terutama tentang hubungan lalu lintas ke grup EPG. Ini memungkinkan Anda untuk menerapkan aturan interaksi antar kelompok dalam peralatan, menggunakan nomor mereka dengan cara yang sama seperti alamat yang digunakan dalam daftar akses biasa.
Terowongan memungkinkan Anda meregangkan transportasi IP internal dan segmen L2, dan L3 (mis. VRF). Dalam hal ini, gateway default didistribusikan. Ini berarti bahwa setiap sakelar terlibat dalam merutekan lalu lintas yang memasuki pabrik. Dalam hal logika transfer lalu lintas, ACI mirip dengan pabrik yang berbasis VXLAN / EVPN.
Jika demikian, apa perbedaannya? Untuk sisanya!
Perbedaan nomor satu yang Anda temui dalam ACI adalah bagaimana server terhubung ke jaringan. Dalam jaringan tradisional, penyertaan server fisik dan mesin virtual masuk ke VLAN, dan semua yang lain menari darinya: konektivitas, keamanan, dll. ACI menggunakan desain yang oleh Cisco disebut EPG (End-point Group), dari mana tidak ada tempat untuk pergi. Apakah mungkin untuk menyamakannya dengan VLAN? Ya, tetapi dalam kasus ini ada kemungkinan kehilangan sebagian besar dari apa yang diberikan ACI.
Mengenai EPG, semua aturan akses dirumuskan, dan ACI menggunakan prinsip "daftar putih" secara default, yaitu, hanya lalu lintas yang diizinkan, transmisi yang diizinkan secara eksplisit. Artinya, kita dapat membuat EPG-groups "Web" dan "MySQL" dan mendefinisikan aturan yang memungkinkan interaksi di antara mereka hanya pada port 3306. Ini akan bekerja tanpa referensi ke alamat jaringan dan bahkan dalam subnet yang sama!
Kami memiliki pelanggan yang memilih ACI justru karena fitur ini, karena memungkinkan Anda untuk membatasi akses antar server (virtual atau fisik - tidak masalah) tanpa menyeret mereka di antara subnet, dan karenanya tanpa menyentuh pengalamatan. Ya, ya, kita tahu bahwa tidak ada yang menentukan alamat IP dalam konfigurasi aplikasi dengan tangan mereka, bukan?
Aturan lalu lintas ACI disebut kontrak. Dalam kontrak semacam itu, satu atau beberapa grup atau level dalam aplikasi multi-tier menjadi penyedia layanan (misalnya, layanan basis data), yang lain menjadi konsumen. Kontrak dapat dengan mudah melewati lalu lintas, atau dapat melakukan sesuatu yang lebih rumit, misalnya, mengarahkannya ke firewall atau penyeimbang, dan juga mengubah nilai QoS.
Bagaimana cara server masuk ke grup ini? Jika ini adalah server fisik atau sesuatu yang terhubung ke jaringan yang ada di mana kami membuat trunk VLAN, maka untuk menempatkannya di EPG Anda harus menunjuk ke port switch dan VLAN yang digunakan di sana. Seperti yang Anda lihat, VLAN muncul di tempat yang tidak dapat Anda lakukan tanpanya.
Jika server adalah mesin virtual, maka itu sudah cukup untuk merujuk ke lingkungan virtualisasi yang terhubung, dan kemudian semuanya akan terjadi dengan sendirinya: grup port (dalam hal VMWare) akan dibuat untuk menghubungkan VM, VLAN atau VXLAN yang diperlukan akan ditugaskan, mereka akan terdaftar pada port switch yang diperlukan, dll. Jadi, meskipun ACI dibangun di sekitar jaringan fisik, koneksi untuk server virtual terlihat jauh lebih sederhana daripada yang fisik. ACI sudah memiliki bundel dengan VMWare dan MS Hyper-V, serta dukungan untuk OpenStack dan RedHat Virtualization. Pada titik tertentu, dukungan bawaan untuk platform wadah muncul: Kubernetes, OpenShift, Cloud Foundry, dan itu berlaku untuk penegakan kebijakan dan pemantauan, yaitu, administrator jaringan dapat segera melihat host mana yang bekerja pada host mana dan grup mana yang mereka milik.
Selain dimasukkan dalam grup port tertentu, server virtual memiliki properti tambahan: nama, atribut, dll., Yang dapat digunakan sebagai kriteria untuk mentransfernya ke grup lain, misalnya, saat mengganti nama VM atau ketika memiliki tag tambahan. Cisco menyebut kelompok segmentasi mikro ini, walaupun pada umumnya, desain itu sendiri dengan kemampuan untuk menciptakan banyak segmen keamanan seperti EPG dalam subnet yang sama juga merupakan segmentasi mikro. Nah, vendor lebih tahu.
EPG sendiri adalah konstruksi yang murni logis yang tidak terikat pada sakelar, server, dll., Sehingga dengan mereka dan konstruksi yang didasarkan padanya (aplikasi dan penyewa) Anda dapat melakukan hal-hal yang sulit dilakukan pada jaringan biasa, misalnya, untuk dikloning. Akibatnya, katakanlah sangat mudah untuk membuat klon dari lingkungan produktif untuk mendapatkan lingkungan pengujian yang dijamin identik dengan yang produktif. Ini dapat dilakukan secara manual, tetapi lebih baik (dan lebih mudah) - melalui API.
Secara umum, logika kontrol di ACI benar-benar berbeda dari yang biasanya Anda temui
dalam jaringan tradisional dari Cisco yang sama: antarmuka perangkat lunak adalah yang utama, dan GUI atau CLI adalah yang sekunder, karena mereka bekerja melalui API yang sama. Oleh karena itu, hampir semua orang yang berurusan dengan ACI, setelah beberapa saat, mulai menavigasi model objek yang digunakan untuk kontrol, dan mengotomatisasi sesuatu untuk kebutuhan mereka. Cara termudah untuk melakukan ini adalah dari Python: ada alat siap pakai yang nyaman untuk itu.
Rake yang dijanjikan
Masalah utama adalah bahwa banyak hal dalam ACI dilakukan secara berbeda. Untuk mulai bekerja dengannya secara normal, Anda perlu mempelajari kembali. Ini terutama berlaku untuk tim operasi jaringan di pelanggan besar, di mana insinyur telah terlibat dalam "meresepkan VLAN" untuk aplikasi selama bertahun-tahun. Fakta bahwa sekarang VLAN tidak lagi VLAN, dan untuk meletakkan jaringan baru ke host yang tervirtualisasi, Anda tidak perlu membuat VLAN dengan tangan Anda sama sekali, benar-benar “menghancurkan” networkers tradisional dan memaksa Anda untuk berpegang teguh pada pendekatan yang sudah dikenal. Perlu dicatat bahwa Cisco mencoba sedikit mempermanis pil dan menambahkan CLI "seperti NXOS" ke controller, yang memungkinkan Anda untuk mengkonfigurasi dari antarmuka yang mirip dengan switch tradisional. Tetapi tetap saja, untuk mulai menggunakan ACI secara normal, Anda harus memahami cara kerjanya.
Dari sudut pandang harga pada jaringan ACI besar dan menengah, praktis tidak berbeda dari jaringan tradisional pada peralatan Cisco, karena switch yang sama digunakan untuk membangunnya (Nexus 9000 dapat bekerja baik dalam ACI dan dalam mode tradisional dan sekarang "pekerja keras" utama untuk proyek pusat data baru). Tetapi untuk pusat data dari dua sakelar, ketersediaan pengontrol dan arsitektur Spine-Leaf, tentu saja, membuat diri mereka terasa. Sebuah pabrik Mini ACI baru-baru ini muncul, di mana dua dari tiga pengendali digantikan oleh mesin virtual. Ini memungkinkan Anda untuk mengurangi perbedaan biaya, tetapi tetap ada. Jadi bagi pelanggan, pilihannya ditentukan oleh seberapa besar ia tertarik pada fungsi keamanan, integrasi dengan virtualisasi, satu titik manajemen dan banyak lagi.