ACL beralih secara detail

ACL (Access Control List) pada perangkat jaringan dapat diimplementasikan baik perangkat keras atau perangkat lunak, atau lebih umum perangkat keras dan ACL berbasis perangkat lunak. Dan jika semuanya harus jelas dengan ACL berbasis perangkat lunak, ini adalah aturan yang disimpan dan diproses dalam RAM (mis., Di Control Plane), dengan semua batasan yang mengikuti dari ini, maka kita akan memahami bagaimana ACL berbasis perangkat keras diimplementasikan dan bekerja. artikel kami. Sebagai contoh, kita akan menggunakan switch seri Extreme Networks ExtremeSwitching.



Karena kami tertarik pada ACL berbasis perangkat keras, implementasi internal Data Plane, atau chipset yang sebenarnya digunakan (ASIC), sangat penting bagi kami. Switch dari semua lini produk Extreme Networks dibangun di atas Broadcom's ASICs, dan sebagian besar informasi di bawah ini juga akan berlaku untuk switch lain di pasar dan diimplementasikan pada ASICs yang sama.

Seperti dapat dilihat dari gambar di atas, "ContentAware Engine", secara terpisah untuk "ingress" dan "egress", bertanggung jawab atas operasi ACL dalam chipset. Secara arsitektur, mereka sama, hanya "jalan keluar" yang kurang terukur, dan kurang fungsional. Secara fisik, kedua "ContentAware Engine" adalah memori TCAM plus logika yang terkait, dan setiap pengguna atau aturan ACL sistem adalah bit-mask sederhana yang ditulis untuk memori ini. Itulah sebabnya pemrosesan lalu lintas chipset dilakukan berdasarkan per unit dan tanpa penurunan kinerja.

Secara fisik, Ingress / Egress TCAM yang sama, pada gilirannya, secara logis dibagi menjadi beberapa segmen (tergantung pada jumlah memori dan platform), yang disebut "potongan ACL". Sebagai contoh, hal yang sama terjadi dengan HDD yang sama secara fisik pada laptop Anda ketika Anda membuat beberapa drive logis di dalamnya - C: \>, D: \>. Setiap ACL-slice, pada gilirannya, terdiri dari sel-sel memori, dalam bentuk "string" di mana "aturan" ditulis (aturan / bit mask).


Rincian TCAM menjadi ACL-slices memiliki logika tertentu di bawahnya. Di masing-masing slice ACL, hanya "aturan" yang kompatibel yang dapat ditulis. Jika salah satu "aturan" tidak kompatibel dengan yang sebelumnya, maka akan ditulis ke yang berikutnya dalam rangka ACL-slice, tidak peduli berapa banyak garis bebas di bawah "aturan" tetap di yang sebelumnya.

Dari mana datangnya kompatibilitas atau ketidakcocokan aturan ACL ini? Faktanya adalah bahwa satu "baris" TCAM, di mana "aturan" ditulis, memiliki panjang 232 bit dan dibagi menjadi beberapa bidang - Tetap, Field1, Field2, Field3. 232 bit atau 29 byte memori TCAM cukup untuk menulis bit-mask dari MAC atau alamat IP tertentu, tetapi jauh lebih sedikit daripada header paket Ethernet lengkap. Pada masing-masing ACL-slice ASIC menghasilkan pencarian independen sesuai dengan bit-mask yang ditetapkan pada F1-F3. Secara umum, pencarian ini dapat dilakukan pada header Ethernet 128 byte pertama. Sebenarnya, justru karena pencarian dapat dilakukan dengan 128 byte, dan hanya 29 byte yang dapat direkam, untuk pencarian yang benar, offset harus diatur relatif ke awal paket. Offset untuk masing-masing ACL-slice diatur ketika aturan pertama ditulis untuknya, dan jika kebutuhan untuk offset lain ditemukan ketika menulis aturan berikutnya, maka aturan ini dianggap tidak sesuai dengan yang pertama dan ditulis ke slice ACL berikutnya.

Tabel di bawah ini menunjukkan urutan kompatibilitas kondisi yang ditentukan dalam ACL. Setiap baris terpisah berisi bit-mask yang kompatibel satu sama lain dan tidak kompatibel dengan garis lain.


Setiap paket individual yang diproses oleh ASIC menjalankan pencarian paralel di setiap ACL-slice. Validasi dilakukan sebelum kecocokan pertama dalam ACL-slice, tetapi beberapa kecocokan diperbolehkan untuk paket yang sama dalam ACL-slice yang berbeda. Setiap "aturan" individu memiliki tindakan yang sesuai yang harus dilakukan jika kondisi (bit-mask) cocok. Jika pertandingan terjadi di beberapa irisan ACL sekaligus, maka di blok "Resolusi Konflik Aksi", berdasarkan prioritas slice ACL, keputusan dibuat yang mana harus dilakukan. Jika "tindakan" (izin / penolakan) dan "tindakan-modifier" (count / QoS / log / ...) ditulis dalam ACL, maka dalam kasus beberapa pertandingan hanya "aksi" prioritas tinggi akan dieksekusi, sedangkan "aksi-modifier" akan dilakukan semua selesai. Contoh di bawah ini menunjukkan bahwa kedua penghitung akan ditingkatkan dan semakin "prioritas" eksekusi dijalankan.


β€œPanduan Solusi ACL” dengan informasi lebih rinci tentang bagaimana ACL tersedia untuk umum di extremenetworks.com . Setiap pertanyaan yang muncul atau tetap dapat selalu ditanyakan kepada staf kantor kami - cis@extremenetworks.com .

Source: https://habr.com/ru/post/id486070/


All Articles