(S) CEF**

CEF (Cisco Express Forwarding)

Dodatkowy opis funkcji CEF został opisany w artykule: Cisco Express Forwarding.

Metody przełączania pakietów

Przepływ danych w modelu Process Switching
  • Process Switching (Stosowany jedynie w starszych ruterach Cisco) – Stanowi najstarszą, najwolniejszą metodę kontroli przepływu danych, w której wszystkie nadchodzące pakiety są pojedynczo przetwarzane na poziomie systemu operacyjnego IOS, przez procesor (CPU). Proces ten znacząco zmniejsza wydajności urządzenia, a tym samym używany jest w ostateczności lub podczas rozwiązywania problemów sieciowych związanych z przepływem pakietów (Troubleshooting-u).
    • Komenda [show processes cpu] wyświetla listę aktywnych procesów obecnie przetwarzanych przez procesor CPU. Znajdujący się na tej liście proces „IP Input” określa ilość odwołań procesu przełączania pakietów, do procesora CPU.
    • W przypadku metody Process Switching, funkcja Load-balancing działa zgodnie z zasadą (Per-packet), kierującąc każdy następujący pakiet inną drogą prowadzącą do tej samej sieci docelowej.
    • Konfiguracja metody Process Switching, jest możliwa za pomocą komendy [ip router-cache].
    • Następujące pakiety są automatycznie obsługiwane za pomocą metody Process Switching, niezależnie od wspieranego rozwiązania (Router Cache Switching czy Topology Based Switching):
      • Pakiety kierowane do lokalnego urządzenia.
      • Pakiety zbyt skomplikowane dla obsługi sprzętowej.
      • Pakiety wymagające dodatkowych akcji (Np. ARP).
Przepływ danych w modelu Router Cache Switching / Fast Switching
  • Router Cache Switching / Fast Switching (Flow-based Switching / Demand-Based Switching / Router once, Switch many / NetFlow Switching) – Wykorzystuje procesor routingu (RP) do określenia drogi docelowej względem pierwszego nadesłanego pakietu należącego do jednego przepływu (Flow), dalsza część komunikacji jest przetwarzana przez silnik przełącznika (SE). Należy przy tym pamiętać, że dla pakietu z innym adresem docelowym (IPv4 bądź IPv6), procesor routingu RP musi przeprowadzić nowe poszukiwanie interfejsu docelowego.
    • W przypadku metody Fast Switching funkcja Load-balancing działa zgodnie z zasadą (Per-destination), kierującąc każdy następujący przepływ (Flow) inną drogą, na podstawie docelowego adresu IP.
Przepływ danych w modelu Cisco Express Forwarding
  • Topology Based Switching (CEF Cisco Express Forwarding) – Wykorzystuje procesor routingu (RP) wraz z informacjami warstwy trzeciej w celu stworzenia wydajnej, sprzętowej tablicy FIB (Forwarding Information Base). Zawierającej trasy pobrane z tablicy routingu (RIB), w celu osiągnięcia szybkiego przepływu nadchodzących pakietów. Dzięki temu rozwiązaniu procesor routingu (RP) jest używany jedynie w sytuacji zmiany topologii sieciowej (Obsługuje protokoły routingu dynamicznego), tudzież w przypadku odebrania pakietu kierowanego bezpośrednio do lokalnego urządzenia. Rutery Cisco w celu obsługi metody CEF, wykorzystują specjalnie zaprojektowane, wyspecjalizowane komponenty fizyczne zwane ASICs (Application-Specific Integrated Circuit).
    • W przypadku metody Cisco Expres Forwarding funkcja Load-balancing działa zgodnie z zasadą (Per-destination), kierującąc każdy następujący przepływ (Flow) inną drogą, na podstawie docelowego adresu IP.
    • Konfiguracja metody CEF, jest możliwa za pomocą komendy [ip cef], wydanej w trybie konfiguracji globalnej.

Przetwarzania ruchu sieciowego w urządzeniach modularnych

  • Supervisor – Główny moduł zarządzający przełącznikiem modularnym. Zawiera między innymi moduł Forwarding Engine, procesor switching-u (L2) oraz routingu (L3) jak inne podstawowe komponenty przełącznika wielowarstwowego.
  • Centralized Forwarding Architecture – Ruch sieciowy jest przetwarzany przez główny procesor RP (Route Processor).
  • Distributed Forwarding Architecture – Ruch sieciowy jest przetwarzany przez lokalny moduł FIB karty sieciowej (Local Forwarding Engine).

Tablice wykorzystywane przez funkcję CEF

W funkcji CFE, rolę tablicy routingu przejmuje tablica FIB, natomiast rolę tablicy ARP przejmuje tablica sąsiedztwa Adjacency Table.
  • FIB Table – Zawiera częściowe odwzorowanie tablicy routingu.
  • Adjacency Table – Zawiera częściowe odwzorowanie tablicy protokołu ARP.

FIB Table (Forwarding Information Base)

Tablica FIB (Forwarding Information Base) stanowi odwzorowanie zawartości tablicy routingu, pomijające niektóre informację w niej zawarte, a będące nieistotne z punktu widzenia tablicy FIB.
  • Tablica FIB (Forwarding Information Base) dzięki wsparciu fizycznych komponentów (Hardware TCAM), umożliwia szybkie przekierowywanie nadchodzących pakietów bez udziału procesora CPU. Stanowi jedną z dwóch głównych tablic funkcji Cisco CEF, współpracując z tablicą sąsiedztwa (Adjacency Table). W przeciwieństwie do tablicy routingu, tablica FIB nie przechowuje wszystkich informacji o posiadanych trasach routingu. Dane z jej punktu widzenia nieistotne, stanowią informację umożliwiające urządzeniu jak i protokołom routingu dynamicznego, określanie najlepszej trasy względem sieci docelowej (Przykład takich informacji jest. Dystans Administracyjny (Administrative Distance), Metryka (Metric) czy oznaczanie tras (Tag)).
  • Tablica FIB zawiera następujące informacje, dotyczące zapisanych w niej tras routingu:
    • Adres sieci / Pojedynczy adres IP (Prefix).
    • Maskę sieci (Network Mask).
    • Adres następnego przeskoku (Next hop address).
    • Interfejs wychodzący (Outgoing Interface)
Budowa przełącznika warstwy trzeciej / rutera wspierającego funkcje CEF
  • Funkcja Cisco CEF wykorzystuje w procesie routingu dwa bloki funkcyjne. Pierwszy silnik warstwy trzeciej (Layer 3 engine) defa-kto stanowiący serce urządzenia, przetwarza informacje uzyskane za pomocą routingu statycznego jak i dynamicznego, generując na ich podstawie zawartość tablicy routingu. Następnie dane te są przenoszone do tablicy FIB (Forwarding Information Base) stanowiącej drugi blok funkcyjny (Layer 3 Forwarding Engine). Dzięki temu zabiegowi SE (Switch Engine) zyskuje możliwość szybkiego przetwarzania nadchodzącego ruchu sieciowego.
  • Za każdym razem, kiedy dochodzi do zmian w topologii sieciowej (Następuje zmiana adresu IP tudzież adresu MAC następnego przeskoku), zmianie ulega zawartość tablicy routingu, co automatycznie wymusza aktualizację danych zawartych w tablicy FIB.
  • Tablica FIB przechowuje trasy dotarcia do sieci, zacząwszy od najbardziej dokładnych wpisów (np. 10.1.1.1/24) po te mniej szczegółowe (np. 10.1.0.0/16), wraz z adresem IP następnego przeskoku. Zawartość tablicy można wyświetlić za pomocą komendy [show ip cef vlan vlan-ID].

Ważne komendy SHOW dotyczące tablicy FIB

# show process cpu | include IP Input

Wyświetla ilość procesów routingu bezpośrednio obciążających procesor CPU.

# show ip cef

Wyświetla zawartość tablicy FIB. Trasy opisane jako „Receive” są przetwarzane przez procesor CPU.

# show ip cef adjacency interfejs-wychodzący adres-IP-następnego-przeskoku detail

Wyświetla sieci docelowe, osiągalne za pomocą kombinacji wskazanego interfejsu wyjściowego jak i adresu następnego przeskoku.

# show adjacency interfejs detail

Wyświetla zawartość tablicy „Adjacency Table”. Docelowy oraz źródłowy adres MAC, wraz z kodem określającym protokół IPv4 (0800) jest podany w jednym ciągu znaków.

Adjacency Table

Tablica Adjacency Table, zwana jest inaczej AIB (Adjacency Information Base).
  • Domyślnie procesor warstwy trzeciej (Layer 3 Engine) przetrzymuje w tablicy routingu dane dotyczące sieci docelowej, wraz z adresem IP następnego przeskoku. Natomiast w tablicy ARP informacje warstwy drugiej, takie jak adres MAC, odpowiadający powyżej wspomnianemu adresowi następnego przeskoku. Obydwie tablice są przetrzymywane niezależnie, jednak dane w nich zawarte są niezbędne do stworzenia poprawnego pakietu (Adres IP) oraz ramki Ethernet-owej (Adres MAC).
  • W funkcji CFE, rolę tablicy routingu przejmuje tablica FIB, natomiast rolę tablicy ARP przejmuje tablica sąsiedztwa Adjacency Table.
  • Zawartość tablicy „Adjacency Table” jest uzupełniana na podstawie zawartości pamięci ARP cache lokalnego urządzenia sieciowego. Może jednak zaistnieć sytuacja (zwana „CEF glean”) w której to tablica ARP nie posiada adresu MAC przypisanego do address IP następnego przeskoku dla danego wyjścia (Next Hop Interface), wymuszając tym samym użycie silnika warstwy trzeciej (CPU), mającego nadać zapytanie ARP.  W czasie oczekiwania na odpowiedź protokołu ARP, wszelkie pakiety kierowane do danej sieci docelowej są natychmiast porzucane, aby nie spowodować wysłania duplikowanego zapytania ARP, co nazywamy ARP throttling / throttling adjacency. Jeśli odpowiedź ARP nie nadejdzie w ciągu 2 sekund zostaje ponowiona, do momentu otrzymania odpowiedzi zawierającej adres MAC, który od razu zostanie wpisany do tablicy sąsiedztwa (Adjacency Table).
  • Tablica sąsiedztwa (Adjacency Table) zawiera wpisy znajdujące się w różnym stanie. A są one następujące:
    • Stan Glean Adjacency – Występuje w przypadku braku adresu MAC, przypisanego do address IP następnego przeskoku.
    • Stan Null adjacency – Jest używany dla pakietów kierowanych na interfejs NULL (Jest to interfejs logiczny używany przez routery jak i przełączniki do usuwania pakietów bez ich dalszego przetwarzania).
    • Stan Drop Adjacency – Jest skierowany dla pakietów które nie mogą być normalnie przetworzone (np. w przypadku błędu enkapsulacji, niewspieranego protokołu bądź też braku aktualnej trasy) (Komenda [show cef drop]).
    • Stan Discard Adjacency – Występuje w przypadku pakietów odrzucony z powodu działań podjętych przez listy ACL czy kierowanych na wirtualny interfejs Looback.
    • Stan Punt Adjacency – Występuje w przypadku pakietów wymagających dodatkowego przetworzenia przez procesor (RP) (Komenda [show cef not-cef-switched]).
  • Zawartość tablicy sąsiedztwa (Adjacency Table) można wyświetlić za pomocą komendy [show adjacency [summary / detail]], [show adjacency interfejs [detail]], [show adjacency vlan vlan-ID [detail]].

Ważne komendy SHOW dotyczące tablicy Adjacency Table

# show ip cef adjacency {interfejs-wychodzący adres-IP-następnego-przeskoku [detail] / drop / glean / null / punt}

Wyświetla sieci docelowe, osiągalne za pomocą kombinacji wskazanego interfejsu wyjściowego jak i adresu następnego przeskoku.

# show adjacency {summary / detail / interfejs [detail] / adres-IP [detail] / vlan vlan-ID}

Wyświetla zawartość tablicy Adjacency Table:
* summary – Wyświetla podsumowanie zawartości tablicy Adjacency Table.
* detail – Wyświetla szczegółowe informację na temat wyświetlanego adresu /adresów następnego przeskoku.

CEF vs Hardware

Pełny opis pamięci TCAM został opisany w artykule: Pamięć TCAM.

Przepływ danych w modelu Fast Switching

Budowa pamięci TCAM

  • Pamięć TCAM jest wykorzystywana w wielowarstwowych przełącznikach (Urządzeniach wspierających funkcję CEF), do sprzętowej (Hardwar-owej) obsługi list dostępu ACL czy priorytetowa-nia danych zgodnie z politykami QoS. W większości przypadków przełączniki posiadają wiele oddzielnych pamięci TCAM dzięki czemu mogą odseparować wychodzące listy ACL od przychodzących oraz pogrupować poszczególne polityki QoS, wykonując obydwie operacje jednocześnie.
  • Pamięć TCAM znajdująca się w przełącznikach / ruterach formy Cisco, składa się z dwóch następujących komponentów:
    • FM (Feature Manager) – Po stworzeniu nowej listy ACL oprogramowanie FM kompiluje bądź łączy poszczególne wpisy ACE (Access Control Entities) danej listy ACL, w jeden wpis tablicy TCAM. Dzięki czemu wszelkie operacje filtrowania ruchu sieciowego mogą być wykonywane z prędkością przetwarzania ramki Frame-Forwarding Speed.
    • SDM (Switching Database Manager) – Stanowi oprogramowanie zarządzające pamięcią TCAM (Komenda [sdm prefer] umożliwia zmianę domyślnego sposobu alokacji pamięci TCAM).

Struktura pamięci TCAM

  • Pamięć TCAM umożliwia wykonywanie abstrakcyjnych operacji, których wynikiem oprócz wartości 1 (zgadza się), 0 (nie zgadza się) jest wartość X oznaczająca dane bez znaczenia.
  • Struktura pamięć TCAM składa się trzech wartości VMR (Value, Mask and Result) które można opisać następująco:
    • Value 134-bitowa wartość określającą adres źródłowy bądź docelowy oraz wiele innych istotnych informacji dotyczących wybranego protokołu. Dane pobierane są bezpośrednio z wpisów ACE, a mogą być następujące:
    • Mask 134-bitowa wartość odpowiadającą danym zawartym w polu Value. Umożliwia wykonanie logicznej operacji porównania poszczególnych wartość Maski z poszczególnymi wartościami Value, w celu określenia jaka część informacji ma znaczenie a jaka nie ma (Metoda ta działa identycznie jak maska podsieci).
    • Result – Numeryczna wartość reprezentującą akcje jaką należy podjąć po znalezieniu pasującego wpisu w tablicy TCAM. W przeciwieństwie do tradycyjnych list dostępu, ofertujących dwie wartości wyjściowe Permit oraz Deny, tablica TCAM umożliwia zwrócenie wartości Permit, Deny, QoS value bądź adresu next-hop.
PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz