Операції CEF на комутаторі L3 проти маршрутизатора


21

Я розумію, що комутатори L3 використовують CEF для швидшого пересилання пакетів. Однак CEF не працюватиме для пакетів, яким потрібно пройти NAT. Чи означає це, що CEF не використовуються крайовими маршрутизаторами та крайовими комутаторами L3? Чи обмежена корисність CEF лише локальною мережею?

Відповіді:


8

Звичайно, NAT може використовувати CEF. Це з власного посібника Cisco тут: http://www.cisco.com/en/US/tech/tk648/tk361/technologies_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

Більші платформи, що працюють під керуванням IOS-XR, де FIB розподіляється на лінійних картках, також підтримують NAT-клас, тому корисність не обмежується лише локальною мережею.

Також багато комутаторів L3 Cisco просто не роблять NAT


2
Технічно на шляху CEF від входу до виходу у вас є точки вставки для функцій (наприклад, NAT). Якщо ця точка вставки існує, функція працює з увімкненим CEF. Але на відміну від пошуку L3, можливо, не буде помітного підвищення продуктивності цієї функції, оскільки CEF просто надає дані для цієї функції, не змінюючи саму функцію. Але в основному це неважливі деталі, важлива деталь - підтримуйте CEF.
ytti

18

CEF - слово Cisco для їх FIB. Коли перемикач L3 ви «ш ф CEF», жоден з цієї інформації практично не використовуються для передачі пакетів на всіх, це просто програмне забезпечення Trie , який використовується для заповнення обладнання ASIC.

CEF - це просто термін, який Cisco використовує для опису оптимізованого коду зберігання / пошуку даних, це не конкретна технологія з конкретною функцією.

У більшості платформ HW не можна просто запустити поле без CEF, оскільки структура даних CEF необхідна для складання конкретної інформації HW.
Деякі функції, такі як MPLS, також залежать від структури даних CEF і тому без нього не працюватимуть.

Комутація LAN (L2) не абстрагується через CEF, тому вона взагалі не залежить від CEF.

Я рекомендую цю книгу, щоб отримати досить сучасну інформацію про CEF (вона написана після великих перезаписів CEF близько 12.2S)

Якщо ви обмежуєте CEF-визначенням IP Trie FIB, то, очевидно, це не можна використовувати для NAPT, оскільки ви не можете заздалегідь визначити, що націлено і де. Але, як було пояснено, CEF - це не конкретна технологія, це більш широка концепція, і, таким чином, дискусійно, якщо CEF є функцією NAT чи ні, я б помилявся, якщо це є функцією CEF:

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

Я б ніколи нічого не запускав без CEF, і це, мабуть, лише через застарілі причини, вибір про вимкнення його навіть існує. Подумайте про Ялівець, у них немає конкретного терміна, який вони використовують для опису того самого поняття, оскільки їм не потрібно відрізняти його від якогось альтернативного методу, оскільки такої неповноцінної альтернативи не існує.


5
Додамо лише до цього - CEF - це перемикаючий шлях, дерево інформації для пересилання інформації тощо, тому назва "CEF" може використовуватися багатьма способами, і це додає плутанини. Насправді NAT підтримується на шляху CEF (як і тисячі інших функцій), але вбудовані в CEF таблиці не містять інформації, необхідної для чистого перемикання пакетів, використовуючи їх, як вказував ytti, про додаткові записи потрібно звернутися до консультацій. (вони побудовані та підтримуються кодом NAT). У будь-якому випадку, якщо пакет можна перемикати на шляху CEF, не повертаючись до перемикання процесу, він все ще підтримується функцією CEF.
Лукаш Бромірський

9

Чи означає це, що CEF не використовуються крайовими маршрутизаторами та крайовими комутаторами L3? Чи обмежена корисність CEF лише локальною мережею?

CEF корисний, оскільки дозволяє маршрутизатору швидко переписати інформацію про рівень L2 під час операцій переадресації Layer3. Маршрутизатори WAN повинні переписати інформацію заголовка Layer2 так, як це роблять LAN комутатори ... CEF надзвичайно корисний для обох типів маршрутизатора.

На високому рівні CEF виконує дві функції:

  • Містить тіньову копію таблиці маршрутизації, яка відображає маршрутизований префікс на наступний перехід
  • Містить посилання на таблицю суміжності Layer2, яка надає кешовану інформацію про заголовки Layer2, необхідні для перезапису IP-пакету за допомогою наступного переходу, зазначеного в першій пулі.

Приклад:

Розглянемо цей маршрутизатор, який має WAN HDLC-посилання на Serial1 / 0 і LAN-з'єднання через 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

Припустимо, пакет IPv4, що переходить до 192.0.2.1, надходить в маршрутизатор від FastEthernet0 / 0 в локальній мережі, і повинен вийти з Serial1 / 0 в WAN (факт, що він виходить з Serial1 / 0, знаходиться в таблиці CEF ... і CEF таблиця посилається на таблицю суміжності).

Коли маршрутизатор отримує пакет IPv4 від FastEthernet0 / 0, маршрутизатор повинен позбавити заголовок Ethernet і додати заголовок HDLC , 0F000800оскільки це IPv4 призначення ( 0x0800є значення типу "тип" HDLC, щоб сказати наступний заголовок IPv4).

Якщо CEF не кеширував (тривіальну) інформацію про перезапис заголовка для Serial1 / 0, він повинен шукати інформацію вручну на рівні перемикання процесу (що дуже повільно). Ці значення таблиці суміжності не змінюватимуться, доки інкапсуляція на Serial1 / 0 не зміниться; отже, Cisco IOS кешує інформацію про перезапис суміжності в таблиці суміжності.

Інформація про перезапис стає більше задіяною, коли ви дивитесь на рамко-реле або банкомати ПВХ.

Цей документ про CCO (ID документа: 17812) може пояснити речі краще, ніж я міг би, повторно перебравши багато вмісту CCO


Чи не зможуть проводити операції з рівня 2 лише CAM? Операції третього рівня консультуються з FIB, де працює CEF, і якщо потрібно провести більш глибоку перевірку пакетів на рівні 3 (у випадку, коли пакет повинен пройти NAT), чи це не зробить CEF марним для маршрутизаторів WAN?
Майкл травень

1
CEF спеціально не використовується для / кешування / суміжності або пошуку в l3, це "швидке перемикання" (яке більше не підтримується). CEF є попередньою збіркою, тому всі дані, які вам коли-небудь знадобляться для суміжності або пошуку l3, вже є в структурі, оптимальній для пошуку з обмеженнями, заданими даною платформою.
ytti

@ytti, вибачте, але CEF робить кеш-інформацію про суміжність, я думаю, ви заплутаєтесь у тому, як кеш заповнений (IMHO ви вважаєте, що пакет повинен бути покараний за кешування, але це неправда) ... Один суттєвих відмінностей між CEF та іншими методами комутації (наприклад fast-switching) полягає в тому, що CEF попередньо обчислюється. Однак CEF все-таки повинен кешувати інформацію, інакше її потрібно шукати на рівні перемикання процесів ... дуже повільно, і причина, що нам потрібен CEF як для LAN, так і для WAN-інтерфейсів.
Майк Пеннінгтон

Я думаю, що ми просто не погоджуємося з тим, що означає "кешування", але так, ключовим моментом є попередня збірка, і для багатьох функцій (таких як MPLS) це лише структура даних, немає "перемикання процесів" для зберігання, щоб відмовитися. до.
ytti

@ChristianDelapena, ви плутаєте апаратні реалізації таблиці пошуку апаратних засобів (пам'ять CAM) з процесом програмного забезпечення IOS, який заповнює таблиці апаратного пошуку (наприклад, CEF). CEF існує, щоб ви могли зіставити запис префікса шару3 до необхідної інформації про перезапис протоколу на layer2 ... однак, layer2 може бути безліччю різних протоколів, таких як кадр-реле, атм, пакет-over-sonet, hdlc, ppp або ethernet. .. всі ці протоколи можуть переносити IPv4, але їм потрібні конкретні поля, заповнені в їх заголовках, перш ніж ви зможете взяти цей IP-пакет і інкапсулювати його для наступного маршрутизатора WAN для обробки
Майка Пеннінгтона
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.