Hoạt động CEF trên L3 switch vs bộ định tuyến


21

Tôi hiểu rằng các bộ chuyển mạch L3 sử dụng CEF để chuyển tiếp gói nhanh hơn. Tuy nhiên, CEF sẽ không hoạt động đối với các gói cần trải qua NAT. Điều này có nghĩa là CEF không được sử dụng bởi các bộ định tuyến biên và bộ chuyển mạch L3 cạnh? Tính hữu dụng của CEF có giới hạn trong mạng LAN không?

Câu trả lời:


8

NAT tất nhiên có thể sử dụng CEF. Đây là từ hướng dẫn riêng của Cisco tại đây: http://www.cisco.com/en/US/tech/tk648/tk361/technologists_q_and_a_item09186a00800e523b.shtml

Q. What kind of routing performance can be expected when using Cisco IOS NAT?

    A. Cisco IOS NAT supports Cisco Express Forwarding switching, fast switching, and process switching. For 12.4T release and later, fast-switching path is no longer supported. For Cat6k platform, the switching order is Netflow (HW switching path), CEF, process path.

    Performance depends on several factors:

        The type of application and its type of traffic

        Whether IP addresses are embedded

        Exchange and inspection of multiple messages

        Source port required

        The number of translations

        Other applications running at the time

        The type of hardware and processor

Các nền tảng lớn hơn chạy IOS-XR, trong đó FIB được phân bổ cho các thẻ dòng, cũng hỗ trợ NAT cấp nhà cung cấp, vì vậy tính hữu dụng của nó không chỉ giới hạn trong mạng LAN.

Ngoài ra, rất nhiều thiết bị chuyển mạch L3 của Cisco đơn giản là không thực hiện NAT


2
Về mặt kỹ thuật trên đường dẫn CEF từ xâm nhập đến đi ra, bạn có các điểm chèn cho các tính năng (như NAT). Nếu điểm chèn này tồn tại, tính năng hoạt động với CEF được bật. Nhưng không giống như tra cứu L3, có thể không có hiệu suất tăng có thể quan sát được cho tính năng này, vì CEF chỉ đơn giản là cung cấp dữ liệu cho tính năng, không thay đổi chính tính năng này. Nhưng chủ yếu đây là chi tiết không quan trọng, chi tiết quan trọng là, giữ cho CEF được kích hoạt.
ytti

18

CEF là từ của Cisco cho FIB của họ. Khi ở L3 switch bạn làm 'sh ip cef', không ai trong số những thông tin này là thực sự sử dụng để đẩy các gói ở tất cả, đây chỉ là phần mềm Trie được sử dụng để cư phần cứng ASIC.

CEF chỉ là thuật ngữ mà Cisco sử dụng để mô tả mã lưu trữ / truy xuất dữ liệu tối ưu hóa của họ, đây không phải là công nghệ cụ thể với chức năng cụ thể.

Trong hầu hết các nền tảng CTNH, bạn không thể đơn giản chạy hộp mà không có CEF, vì cấu trúc dữ liệu CEF là cần thiết để biên dịch thông tin cụ thể về CTNH.
Một số tính năng như MPLS cũng có sự phụ thuộc vào cấu trúc dữ liệu CEF và do đó sẽ không hoạt động nếu không có nó.

Chuyển mạch LAN (L2) không được trừu tượng hóa thông qua CEF, vì vậy nó hoàn toàn không phụ thuộc vào CEF.

Tôi giới thiệu cuốn sách này để biết thông tin cập nhật về CEF (nó được viết sau khi viết lại CEF chính khoảng 12.2S)

Nếu bạn hạn chế định nghĩa CEF của IP Trie FIB, thì rõ ràng điều đó không thể được sử dụng cho NAPT, bởi vì bạn không thể xác định trước những gì được ẩn và ở đâu. Nhưng như đã giải thích, CEF không phải là công nghệ cụ thể, đó là khái niệm rộng hơn và do đó, thật đáng tranh luận nếu CEF có tính năng NAT hay không, tôi sẽ nhầm lẫn với khía cạnh của nó là tính năng CEF:

bu.ip.fi#sh cef features global  | b Local
  Global Local features not attached to a specific interface:
     NAT
bu.ip.fi#

Tôi sẽ không bao giờ chạy bất cứ thứ gì nếu không có CEF và có lẽ chỉ vì lý do di sản mà sự lựa chọn vô hiệu hóa nó thậm chí còn tồn tại. Hãy xem xét Juniper, họ không có thuật ngữ cụ thể mà họ sử dụng để mô tả cùng một khái niệm, vì họ không cần phân biệt nó với một số phương pháp thay thế, vì sự thay thế kém hơn như vậy không tồn tại.


5
Chỉ cần thêm vào điều này - CEF đang chuyển đổi đường dẫn, một cây thông tin để chuyển tiếp thông tin, v.v., vì vậy tên 'CEF' có thể được sử dụng theo nhiều cách và nó gây thêm nhầm lẫn. Trên thực tế, NAT được hỗ trợ trong đường dẫn CEF (cũng như hàng ngàn chức năng khác), nhưng các bảng được xây dựng CEF không chứa một số thông tin cần thiết để chuyển đổi gói hoàn toàn bằng cách sử dụng chúng như ytti đã chỉ ra, các mục nhập bổ sung cần được tham khảo (chúng được xây dựng và duy trì bởi mã NAT). Dù sao, nếu gói có thể được chuyển đổi trong đường dẫn CEF mà không quay lại quá trình chuyển đổi, thì đó vẫn là tính năng được CEF hỗ trợ.
Łukasz Bromirski

9

Điều này có nghĩa là CEF không được sử dụng bởi các bộ định tuyến biên và bộ chuyển mạch L3 cạnh? Tính hữu dụng của CEF có giới hạn trong mạng LAN không?

CEF rất hữu ích vì nó cho phép bộ định tuyến ghi lại nhanh chóng thông tin của Layer2 trong các hoạt động chuyển tiếp của Layer3. Các bộ định tuyến WAN phải viết lại thông tin tiêu đề Layer2 giống như các bộ chuyển mạch LAN làm ... CEF cực kỳ hữu ích cho cả hai loại bộ định tuyến.

Ở cấp độ cao CEF thực hiện hai chức năng:

  • Chứa bản sao bóng của bảng định tuyến, ánh xạ tiền tố được định tuyến sang bước kế tiếp
  • Chứa tham chiếu đến bảng phụ của Layer2, cung cấp thông tin được lưu trong bộ nhớ cache về các tiêu đề Layer2 cần thiết để ghi lại gói IP thông qua bước nhảy tiếp theo được đề cập trong dấu đầu tiên.

Thí dụ:

Hãy xem xét bộ định tuyến này có liên kết WAN HDLC trên serial1 / 0 và kết nối LAN qua FastEthernet0 / 0 ...

R1#show adjacency internal
Protocol Interface                 Address
IP       Serial1/0                 point2point(5)
                                   0 packets, 0 bytes
                                   0F000800             <--------- HDLC Header rewrite info
                                   CEF   expires: 00:02:17
                                         refresh: 00:00:17
                                   Epoch: 0
                                   Fast adjacency disabled
                                   IP redirect enabled
                                   IP mtu 1500 (0x0)
                                   Fixup disabled
                                   Adjacency pointer 0x6663D3E0, refCount 5
                                   Connection Id 0x000000
                                   Bucket 6

Giả sử gói tin IPv4 chuyển đến 192.0.2.1 đi vào bộ định tuyến từ FastEthernet0 / 0 trên mạng LAN và phải thoát serial1 / 0 trên mạng WAN (thực tế là nó đã thoát serial1 / 0 trong bảng CEF ... và CEF bảng tham chiếu bảng kề).

Khi bộ định tuyến nhận gói tin IPv4 từ FastEthernet0 / 0, bộ định tuyến phải loại bỏ tiêu đề ethernet và đặt lại tiêu đề HDLC , 0F000800vì đó là đích của IPv4 ( 0x0800có giá trị "loại" HDLC để nói tiêu đề tiếp theo là IPv4).

Nếu CEF không lưu trữ thông tin ghi lại tiêu đề (tầm thường) cho serial1 / 0, thì nó phải được tra cứu thông tin theo cách thủ công ở cấp độ chuyển đổi quy trình (rất chậm). Các giá trị bảng kề này sẽ không thay đổi miễn là đóng gói trên serial1 / 0 không thay đổi; do đó, Cisco IOS lưu trữ thông tin ghi lại kề trong bảng kề.

Thông tin viết lại được tham gia nhiều hơn khi bạn nhìn vào PVC chuyển tiếp khung hoặc ATM PVC.

Tài liệu này về CCO (ID tài liệu: 17812) có thể giải thích mọi thứ tốt hơn tôi có thể bằng cách thử lại nhiều nội dung CCO


Các hoạt động của lớp 2 không chỉ được tham khảo bởi CAM? Các hoạt động của Lớp 3 sẽ tham khảo FIB, nơi CEF hoạt động và nếu cần kiểm tra gói sâu hơn ở lớp 3 (trong trường hợp gói cần trải qua NAT) sẽ không làm cho CEF trở nên vô dụng đối với các bộ định tuyến WAN?
Michael May ngày

1
CEF đặc biệt không được sử dụng để / cache / kề hoặc tra cứu l3, đây là 'chuyển đổi nhanh' (không còn được hỗ trợ nữa). CEF là bản dựng sẵn, vì vậy tất cả dữ liệu bạn có thể cần để tìm kiếm kề hoặc tìm kiếm l3, đã có cấu trúc tối ưu để tìm kiếm với các ràng buộc được đặt bởi nền tảng nhất định.
ytti

@ytti, tôi xin lỗi nhưng CEF không cung cấp thông tin về bộ đệm của bộ đệm, tôi nghĩ rằng bạn đang bối rối về cách bộ đệm được điền (IMHO bạn cho rằng gói phải được lưu vào bộ nhớ cache, nhưng điều này không đúng) về sự khác biệt đáng kể giữa CEF và các phương thức chuyển đổi khác (như fast-switching) là CEF được tính toán trước. Tuy nhiên, CEF vẫn phải lưu trữ thông tin, nếu không, nó phải được tra cứu ở cấp độ chuyển đổi quy trình ... rất chậm và lý do chúng ta cần CEF cho cả giao diện LAN và WAN.
Mike Pennington

Tôi nghĩ rằng chúng tôi không đồng ý với ý nghĩa của 'bộ nhớ đệm', nhưng có điểm quan trọng là, nó được xây dựng trước và đối với nhiều tính năng (như MPLS), nó chỉ là cấu trúc cho dữ liệu, không có lưu trữ 'chuyển đổi quy trình' để quay lại đến.
ytti

@ChristianDelapena, bạn đang nhầm lẫn giữa việc triển khai phần cứng của bảng tra cứu phần cứng (bộ nhớ CAM) với quy trình phần mềm IOS có các bảng tra cứu phần cứng (ví dụ CEF). CEF tồn tại để bạn có thể ánh xạ một mục nhập tiền tố layer3 đến thông tin ghi lại giao thức được yêu cầu tại layer2 ... tuy nhiên, layer2 có thể là nhiều giao thức khác nhau, chẳng hạn như frame-rơle, atm, gói qua sonet, hdlc, ppp hoặc ethernet. .. tất cả các giao thức này có thể mang IPv4, nhưng chúng cần các trường cụ thể được điền vào tiêu đề của chúng trước khi bạn có thể lấy gói IP đó và gói nó cho bộ định tuyến WAN tiếp theo để xử lý
Mike Pennington
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.