Wielowarstwowe przełączniki wspierające funkcjonalność CEF wykorzystują w procesie routingu dwa bloki funkcyjne. Pierwszy silnik warstwy trzeciej (Layer 3 engine) defa kto stanowiący serce urządzenia, przetwarza informacje uzyskane poprzez routing statyczny jak i dynamiczny, generując na ich podstawie zawartość tablicy routingu. Następnie dane te są przenoszone do tablicy FIB(Forwarding Information Base) stanowiącej drugi blok fizyczny (Layer 3 Forwarding Engine). Dzięki temu zabiegowi SE (Switch Engine) zyskuje możliwość szybkiego przetwarzania danych.
Za każdym razem, kiedy dochodzi do zmian w topologii sieci (Następuje zmiana adresu IP bądź adresu MAC następnego przeskoku), zmianie ulega zawartość tablicy routingu, co 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].
Wyjątki w przetwarzaniu pakietów przez funkcję CEF
Istnieją pakiety które nie mogą być obsłużone w szybkim procesie switching-u (z wykorzystaniem tablicy FIB). W tej sytuacji zwanej „CEF punt” pakiety są przekierowywane do silnika warstwy trzeciej. Możliwe przyczyny powstania tak owych wyjątków są następujące:
Wyjście dla danego pakietu nie zostało znalezione w tablicy FIB.
Tablica FIB jest przepełniona.
Wartość TTL pakietu IP została przekroczona (Jeśli spadnie do wartości 0) .
Wartość MTU została przekroczona.
Odebrano komunikat ICMP.
Typ enkapsulacji nie jest wspierany.
Pakiet jest tunelowany.
Wymagana jest operacja translacji NAT.
Jeżeli adres docelowy pakietu nie znajduje się w tablicy FIB, pakiet zostanie porzucony.
Platformy sprzętowe obsługujące funkcję CEF
Funkcja CEF może być obsługiwana przez jedną z wielu platform sprzętowych, umożliwiających współpracę wielu niezależnych procesorów na jednym przełączniku, tym samym zwiększając jego wydajność.
Accelerated CEF(aCEF) – Umożliwia rozprowadzenie funkcji CEF pomiędzy wieloma silnikami warstwy trzeciej, bez możliwości kopiowania całej zawartości tablicy FIB na poszczególne silniki podległe. Jeżeli pobrana część tablicy okaże się niewystarczająca, istnieje możliwość pobrania dodatkowych danych z silnika głównego.
Distributed CEF (dCEF) – Umożliwia rozprowadzenie funkcjonalności CEF pomiędzy wieloma silnikami warstwy trzeciej, z zamian zapewniając znacznie większą wydajność w przetwarzaniu pakietów. Przełączniki wspierające funkcję dCEF posiadają wiele tablic CEF rozlokowanych na rożnych fizycznych kartach (Line Card), zawierających oddzielne dedykowane silniki (Layer 3 Forwarding Engine), tablice FIBjak i tablice „Adjacency Table”. Tym samym umożliwiając wykonywanie wielu operacji routingu jednocześnie. Nad wszystkimi kartami (Line Card) piecze sprawuje jeden główny procesor wraz z główną tablicą FIB oraz główną tablicą „Adjacency Table”, których cała zawartość jest kopiowana do podległych procesorów.
Adjacency Table
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ższemu adresowi następnego przeskoku. Oby dwie tablice są przetrzymywane niezależnie, jednak zawarte w nich dane są niezbędne do stworzenia poprawnego pakietu jak i ramki Ethernet-owej.
W funkcji CFE (Layer 3 Forwarding Engine), rolętablicy routingu przejmuję tablica FIBnatomiast rolę tablicy ARP przejmuję tablica sąsiedztwa Adjacency Table.
Zawartość tablicy „Adjacency Table” jest uzupełniana na podstawie zawartości pamięci ARP cache lokalnego przełącznika. Może jednak zaistnieć sytuacja (zwana „CEF glean”)w której tablica ARP nie posiada adresu MAC address następnego przeskoku dla danego wyjścia (Next Hop), wymuszając tym samym użycie silnika warstwy trzeciej, mającego wysłać zapytanie ARP. W czasie oczekiwania na odpowiedź ARP wszelkie pakiety kierowane do danej sieci docelowej są natychmiast porzucane, aby nie spowodować wysłania zduplikowanego 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 zostaje od razu 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:
StanGlean Adjacency– Występuje w przypadku braku adresu MAC, następnego przeskoku.
StanNull adjacency – Jest używany dla pakietów kierowanych na interfejs NULL (Jest to interfejs logiczny używany przez routery jak i przełączniki do wchłaniania pakietów bez ich dalszego przetwarzania).
StanDrop Adjacency– Jest skierowany dla pakietów które nie mogą być normalnie przetworzone (np. w przypadku błędu enkapsulacji, niewspieranego protokołu lub braku aktualnej trasy) (Komenda [show cef drop]).
StanDiscard Adjacency – Występuje w przypadku pakietów odrzucony z powodu np. listy ACL, czy kierowanych na wirtualny interfejs Looback.
StanPunt 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]].
Rewrite Engine
Po przetworzeniu pakietów w procesie routingu
dane zawarte w ramce Ethernet-owej takie jak docelowy oraz źródłowy adres MAC, ulegają
zmianie. Aby umożliwić szybkie zaktualizowane nagłówka ramki Ethernet-owej
wielowarstwowy przełącznik MLS posiada dodatkowy blok umożliwiający zmianę
danych w czasie rzeczywistym. Zmianie może ulec:
Docelowy adres MAC ramki.
Źródłowy adres MAC ramki.
Suma kontrolna ramki.
Czas TTL pakietu.
Suma kontrolna pakietu.
Pozostałe tematy związane ze wstępem do warstwy drugiej
Dodaj komentarz