Hoạt động của CEF (Cisco Express Forwarding)
1. CEF Operation
- CEF gắn liền với cơ chế “route never, switch always”
- Mọi packet, kể cả packet đầu tiên của flow đều được xử lý bằng hardware
- Trong router CPU, với mô hình CEF-based, có các bảng sau:
+ Routing table + FIB table: là bản sao của routing table về các thông tin dùng để forward packet. FIB table chỉ bao gồm các thông tin tối thiểu, đủ để forward packet mà không chứa thông tin về các giao thức định tuyến.
+ Adjacency table: chứa dữ liệu về mối quan hệ liền kề giữa các node (2 node được gọi là liền kề nếu node này tới được node kia chỉ qua 1 hop lớp 2) và các thông tin về next hop hoặc các thông tin liên quan đến việc rewrite địa chỉ MAC.
+ Netflow table: chứa các dữ liệu liên quan đến việc tính toán trong mạng (network accounting data) và được cập nhật từ các FIB table và Adjacency table.
- Catalyst 6000 thực hiện chức năng CEF nhờ Supervisor Engine II
- Supervisor Engine II gồm có 3 thành phần cơ bản sau:
+ Supervisor base board: là một khung dùng để gắn các thành phần: 32-Gbps bus, multicast replication ASIC, NMP, 2 cổng GBIC-based Gigabit Ethernet và PFC2 & MSFC2.
+ PFC2 là card được cài sẵn kèm theo Supervisor Engine II. Nó bao gồm các ASIC để thực hiện việc forward dựa trên phần cứng. Ngoài ra, nó cũng có các ASIC thực hiện cơ chế QoS và hardware-based ACL. PFC2 làm việc trực tiếp với FIB table và Adjacency table.
+ MSFC 2: thành phần này là tuỳ chọn. MSFC 2 thực hiện các chức năng xử lý các vấn đề liên quan đến routing protocol như cập nhật định tuyến, tập hợp, tính toán các thông tin trong bảng định tuyến, FIB table, Adjacency table.
* Hoạt động:
+ Khi router khởi tạo, bảng routing sẽ được xác định thông qua cấu hình trên router. Sau khi bảng routing được xây dựng xong, CPU tự động tạo ra FIB table và Adjacency table dựa vào các thông tin của bảng routing. Các thông tin của 2 bảng này được xây dựng sao cho tối ưu đối với việc forward packet. Việc forward packet không căn cứ vào data flow mà căn cứ vào topology mạng. Thay vì dựa vào một địa chỉ đích, PFC 2 sẽ tìm kiếm mạng chứa địa chỉ đích và chuyển packet tới interface kết nối với mạng đó.
2. Quá trình quyết định forward đối với lớp 2 và lớp 3
- Nếu Supervisor Engine II chỉ có PFC 2 thì việc forward packet sẽ chỉ được thực hiện dựa trên các thông tin lớp 2. Nếu có cả MSFC 2 thì việc forward sẽ thực hiện dựa trên cả thông tin lớp 3.
- Quá trình quyết định forward packet dựa trên thông tin cả lớp 2 và lớp 3 được thực hiện qua các bước sau:
Bước 1: Layer 2 forwarding engine ASIC L2 ASIC và Layer 3 forwarding engine ASIC (L3 ASIC) nhận các header từ data bus
Bước 2: Các bước sau diễn ra đồng thời: a. L2 ASIC tra địa chỉ MAC đích b. L2 ASIC đối chiếu ACL chiều vào c. L2 ASIC đối chiếu QoS chiều vào d. L3 ASIC tra FIB table e. L3 ASIC tra bảng Netflow
Bước 3: Các bước sau diễn ra đồng thời a. L2 ASIC chuyển kết quả ACL và QoS tới L3 ASIC b. L3 ASIC gửi các thông tin về VLAN đích của packet cho L2 ASIC
Bước 4: Các bước sau diễn ra đồng thời: a. L3 ASIC tra Adjacency table b. L2 ASIC kiểm tra ACL chiều ra c. L2 ASIC kiểm tra QoS chiều ra
Bước 5: L2 ASIC thông báo kết quả ACL và QoS cho L3 ASIC
Bước 6: Các bước sau đây diễn ra đồng thời:
a. L3 ASIC đưa ra kết quả các thông tin để rewrite và gửi cho L2 ASIC
b. L3 ASIC cập nhật thông tin cần thiết Adjacency table
c. L3 ASIC cập nhật thông tin cần thiết cho Netflow table
Lê Đức Thịnh – VnPro