Chuyển đổi ACL một cách chi tiết

ACL (Danh sách điều khiển truy cập) trên các thiết bị mạng có thể được triển khai cả về phần cứng và phần mềm, hay nói chung hơn là ACL dựa trên phần cứng và phần mềm. Và nếu mọi thứ đều rõ ràng với ACL dựa trên phần mềm - đây là các quy tắc được lưu trữ và xử lý trong RAM (tức là trên Mặt phẳng điều khiển), với tất cả các hạn chế tiếp theo, thì chúng ta sẽ hiểu cách triển khai ACL dựa trên phần cứng và hoạt động của chúng ta. bài báo. Ví dụ: chúng tôi sẽ sử dụng các bộ chuyển mạch từ dòng ExtremeSwitching của Extreme Networks.

Chuyển đổi ACL một cách chi tiết

Vì chúng tôi quan tâm đến ACL dựa trên phần cứng nên việc triển khai nội bộ Mặt phẳng dữ liệu hoặc các chipset thực tế (ASIC) được sử dụng là hết sức quan trọng đối với chúng tôi. Tất cả các dòng chuyển mạch Extreme Networks đều được xây dựng trên Broadcom ASIC và do đó hầu hết thông tin bên dưới cũng sẽ đúng với các thiết bị chuyển mạch khác trên thị trường được triển khai trên cùng ASIC.

Như có thể thấy từ hình trên, “ContentAware Engine” chịu trách nhiệm trực tiếp về hoạt động của ACL trong chipset, riêng biệt cho “ingress” và “egress”. Về mặt kiến ​​trúc, chúng giống nhau, chỉ có “đầu ra” là ít khả năng mở rộng và ít chức năng hơn. Về mặt vật lý, cả hai “Công cụ ContentAware” đều là bộ nhớ TCAM cộng với logic đi kèm và mỗi quy tắc ACL của người dùng hoặc hệ thống là một mặt nạ bit đơn giản được ghi vào bộ nhớ này. Đó là lý do tại sao chipset xử lý gói lưu lượng theo gói mà không làm giảm hiệu suất.

Về mặt vật lý, cùng một TCAM Ingress/Egress, lần lượt được chia thành nhiều phân đoạn một cách hợp lý (tùy thuộc vào dung lượng bộ nhớ và nền tảng), cái gọi là “các lát ACL”. Ví dụ: điều tương tự cũng xảy ra với cùng một ổ cứng HDD trên máy tính xách tay của bạn khi bạn tạo một số ổ đĩa logic trên đó - C:>, D:>. Lần lượt, mỗi lát ACL bao gồm các ô nhớ ở dạng “chuỗi”, trong đó các “quy tắc” (quy tắc/mặt nạ bit) được viết.

Chuyển đổi ACL một cách chi tiết
Việc phân chia TCAM thành các lát ACL có một logic nhất định đằng sau nó. Trong mỗi lát ACL riêng lẻ, chỉ có thể viết “quy tắc” tương thích với nhau. Nếu bất kỳ “quy tắc” nào không tương thích với quy tắc trước đó thì nó sẽ được ghi vào lát ACL tiếp theo, bất kể còn lại bao nhiêu dòng trống cho “quy tắc” trong phần trước.

Vậy thì tính tương thích hoặc không tương thích của các quy tắc ACL này đến từ đâu? Thực tế là một “dòng” TCAM, nơi viết “quy tắc”, có độ dài 232 bit và được chia thành nhiều trường - Cố định, Trường1, Trường2, Trường3. Bộ nhớ TCAM 232 bit hoặc 29 byte là đủ để ghi lại mặt nạ bit của một địa chỉ MAC hoặc IP cụ thể, nhưng ít hơn nhiều so với tiêu đề gói Ethernet đầy đủ. Trong mỗi lát ACL riêng lẻ, ASIC thực hiện tra cứu độc lập theo mặt nạ bit được đặt trong F1-F3. Nói chung, việc tra cứu này có thể được thực hiện bằng cách sử dụng 128 byte đầu tiên của tiêu đề Ethernet. Trên thực tế, chính xác là do việc tìm kiếm có thể được thực hiện trên 128 byte nhưng chỉ có thể ghi được 29 byte, nên để tra cứu chính xác, phần bù phải được đặt tương ứng với phần đầu của gói. Phần bù cho mỗi lát ACL được đặt khi quy tắc đầu tiên được ghi vào nó và nếu khi viết quy tắc tiếp theo, phát hiện thấy cần có phần bù khác thì quy tắc đó được coi là không tương thích với quy tắc đầu tiên và được ghi vào phần ACL. lát ACL tiếp theo.

Bảng dưới đây thể hiện thứ tự tương thích của các điều kiện được chỉ định trong ACL. Mỗi dòng riêng lẻ chứa các mặt nạ bit được tạo tương thích với nhau và không tương thích với các dòng khác.

Chuyển đổi ACL một cách chi tiết
Mỗi gói riêng lẻ được ASIC xử lý sẽ chạy tra cứu song song trong mỗi lát ACL. Việc kiểm tra được thực hiện cho đến khi có kết quả trùng khớp đầu tiên trong lát cắt ACL, nhưng được phép thực hiện nhiều kết quả trùng khớp cho cùng một gói trong các lát cắt ACL khác nhau. Mỗi “quy tắc” riêng lẻ có một hành động tương ứng phải được thực hiện nếu điều kiện (mặt nạ bit) phù hợp. Nếu sự trùng khớp xảy ra trong một số lát ACL cùng một lúc, thì trong khối “Giải quyết xung đột hành động”, dựa trên mức độ ưu tiên của lát ACL, quyết định sẽ thực hiện hành động nào. Nếu ACL chứa cả “hành động” (cho phép/từ chối) và “công cụ sửa đổi hành động” (đếm/QoS/log/…), thì trong trường hợp có nhiều kết quả khớp, chỉ “hành động” có mức độ ưu tiên cao hơn sẽ được thực thi, trong khi “hành động” -modifier” sẽ hoàn tất. Ví dụ dưới đây cho thấy cả hai bộ đếm sẽ được tăng lên và mức độ ưu tiên cao hơn “từ chối” sẽ được thực thi.

Chuyển đổi ACL một cách chi tiết
“Hướng dẫn giải pháp ACL” với thông tin chi tiết hơn về hoạt động của ACL trong phạm vi công cộng trên trang web Extremenetworks.com. Bất kỳ câu hỏi nào phát sinh hoặc còn tồn tại luôn có thể được hỏi nhân viên văn phòng của chúng tôi - [email được bảo vệ].

Nguồn: www.habr.com

Thêm một lời nhận xét