33 - Základní funkce směrovače, zpracování paketů ve směrovači, typy architektur Flashcards
Co je to směrovač a základní funkce
Směrovač (router) je aktivní siťové zařízení, které přeposílá datagramy směrem k jejich cíli.
Směrovací tabulka (routing table)
- IP adresa sítě x sousední uzel (next hop)
- optimalizovaná pro výpočet změn v topologii
Přepínací tabulka (forwarding table)
- IP adresa sítě x výstupní rozhraní x L2 adresa rozhraní (MAC)
- optimalizovaná pro vyhledání cílové adresy
Základní funkce:
Směrování - routing
- Směrovací protokoly (RIP,…)
- Nastavení systémové konfigurace
- Administrace zařízení
Přeposílání - packet forwarding
Základní funkce pří přeposílání
- Validace IP hlavičky
- Kontrola doby expirace TTL
- Přepočítání kontrolního součtu
- Fragmentace (pokud je MTU výstupního portu menší než MTU vstupního portu)
- Zpracování rozšířených voleb IP protokol
- Vyhledání cesty paketu
Pokročilé funkce pří přeposílání
- Klasifikace paketů (datagramů)
- Překlad NAT
- Prioritizace provozu
- monitorování zařízení,..
Typy směrovačů
Páteřní směrovače
- U ISP
Požadavky
- Vysoká rychlost (Závisí na rychlosti vyhledání v FIB - forwarding information base)
- Spolehlivost - redundance, zálohováni
Hraniční směrovače
- Připojení zákazníka k ISP
Požadavky
- Velké přenosové pásmo
- Podpora protokolů pro různé technologie (Tvoří bránu pro jiné technologie)
Podnikové směrovače - Propojují koncové systémy (ve firmách, univerzitách apod.) Požadavky - Velký počet portů a nízká cena za port - Qos - Multicast, Broadcast - Bezpečnost (filtrování, VLAN)
Funkční části směrovače
Paket přijde na - Síťové rozhraní
- Zpracovává požadavky
- odstraní hlavičku L2
- přečte hlavičku L3 a předá ji přepínacímu modulu FE
- uloží celý paket do paměti (kontext)
- Zapouzdřuje odchozí pakety do hlavičky L2
Zpracování v - Přepínací modul FE
- Dostane L3 hlavičku od síťového rozhraní
- Určí, na které výstupní rozhraní se přepošle paket
- vyhledává v přepínací tabulce (forwarding table, FIB)
- Provádí klasifikaci paketů
- slouží pro podporu QoS na výstupu
Správce front Ukládá pozdržené pakety do vyrovnávací paměti Při zaplnění front vybírá a zahazuje pakety implementuje politiku zahazování
Správce provozu
- Prioritizuje a reguluje výstupní provoz
- podle požadavků na kvalitu služeb (QoS)
- Omezuje výstupní provoz (shaping, policing)
Propojovací deska
- Propojuje síťová rozhraní
Typy propojení:
- Sdílené propojení (shared) – pouze jedna cesta v čase
- Přepínané propojení (switched) – paralelní přenosy
Propustnost propojovací desky - dáno přenosovým pásmem všech síťových rozhraní
Procesor pro směrování
- Implementován v sw na obecném CPU
- Zpracovává směrovací protokoly
- Obsluhuje směrovací tabulku
- obsah směrovací tabulky přenáší do přepínací tabulky
- Zpracovává pakety, které nelze směrovat pomocí přepínací tabulky
- Generuje chybové hlášky ICMP
Zpracování paketů (obecně)
- Paket přijde na síťové rozhraní
- karta zpracuje Ethernetový rámec
- > interpretuje hlavičku
- > určí začátek a konec rámce
- zpracování L2 informací
- > vytvoření kontextu paketu – source/dest. MAC address
- zpracování L3 informací
- > detekce IP hlavičky
- > kontrola IP paketu – kontrolní součet, formát
- > doplnění kontextu paketu (datová struktura obsahující informace o zpracovávaném paketu, vytvořena při vstupu paketu do zařízení, info se postupně doplňuje, paket uložen během zpracování v paměti, mezi moduly předáván jenom kontext paketu, po vyplnění směrovacích informací v kontextu paketu je paket přenesen ze vstupního bufferu do výstupního)
- > source/dest. IP address, type, DSCP, port
- Zpracování v přepínacím modulu
- vyhledání cesty
- > prohledávání přepínací tabulky - určen další uzel (next-hop) + výstupní rozhraní
- > nalezené informace doplněny do kontextu paketu
- >Co když není požadovaný záznam v tabulce nalezen?
- zpracovávaný paket uložen do vstupní vyrovnávací paměti
- adresa paketu v paměti přidána do kontextu paketu
- Kontext přeposlán na propojovací desku
- výstupní síťová karta určena podle kontextu
- paket i kontext přeneseny na výstupní rozhraní
- přenos je plánován s ohledem na prioritu paketu - Zpracování ve správci front
- prozkoumání kontextu paketu - určení priority paketu -> vložení paketu do příslušné fronty
- různé typy plánování obsluhy výstupních front
- v případě zaplnění fronty začíná řízené zahazování - Předání kontextu správě provozu
- kontrola omezení rychlosti z kontextu (traffic shaping) - překročení povolené rychlosti – zpomalení či zahození
- přenos plánován s ohledem na prioritu paketu (klasifikace)
6 .Výstupní síťové rozhraní
- L3 – aktualizace TTL, přepočítání kontrolního součtu
- L2 – přidání L2 hlavičky, výpočet CRC rámce (cyclic redundanci check)
- odeslání paketu
Rychlé zpracování (Fast Path)
časově kritické operace
nutno vykonat pro všechny přicházející pakety
implementace funkcí v hardware - HW – ASIC
- zpracování hlavičky IP
- kontrola verze protokolu, kontrola délky paketu (min. délka), verifikace kontrolního součtu
- snížení TTL, případně zahození paketu
- přepočítání kontrolního součtu IP - přeposlání paketu – rychlé vyhledání cíle
- lokální uložení
- přeposlání na jeden port – unicast
- přeposlání na více portů – multicast - klasifikace paketu na základě informací z hlavičky
- sada klasifikačních pravidel
- pětice: zdroj. a cíl. IP adresy a porty, příznaky protokolu
- speciální datové struktury pro uložení a rychlé vyhledání - uložení do front, plánování
- souběžný příchod paketů na různá rozhraní
- různé typy front, různé typy obsluhy
Pomalé zpracování (Slow Path)
časově nekritické operace:
- pakety částečně zpracovány v HW
většina zpracování probíhá v SW (control plane)
- zpracování ARP
- zjištění výstupní L2 adresy – první vs. další pakety
- na kartě či v procesoru - fragmentace a defragmentace
- procházející fragmentované pakety nejsou sestaveny
- vyžaduje přeskládání, detekce ztracených fragmentů - pokročilé zpracování IP paketu
- zdrojové směrování, zaznamenávání cesty
- časová razítka
- zpracování chybných paketů, generování ICMP - správa a monitorování sítě – SNMP
- zpracování směrovacích informací (paketů keep-alive)
- aktualizace směrovacích informací
pakety převážně určeny pro směrovač (lokální doručení)
zpracování kritických a nekritických operací odděleno
zpracování převážně v software (data plane)
- CPU spustí proces pro každý požadavek - zpracování různých směrovacích protokolům, obsluha chyb
- vygenerované pakety předány na příslušné výstupní síťové rozhraní
Typy přepínání ve směrovači
Packet forwarding
- zjištění, zdali je cíl cesty paketu dosažitelný
- Vyhledání nejbližšího next-hop uzlu a příslušného výstupního rozhraní
- Vyhledání informací pro vytvoření L2 hlavičky paketu
Způsoby:
- Přepínání procesů (Process Switching)
- pomalé zpracování - pro každý paket se hledává ve směrovací tabulce a určuje se MAC adresa na výstupu (v paměti ARP cache) - Přerušené přepínání kontextu
- pakety se přepínají na vyžádání po příchodu - nečeká se na cyklus plánovače
- procesor využívá rychlou paměť cache po potřebné informace - Rychlé přepínání (Fast Switching)
- rychlá paměť cache (radix tree - stromová architektura)
- první paket toku použije přepínaní procesů, ostatní využijí rychlé přepínání - Expresní přeposílání CEF (Cisco Express Forwarding)
- kritické pro páteční směrovače (překrývající se záznamy, změny v ARP dělají problémy v cache, první paket směrován vždy softwarově, load balancing)
-> tabulky předpočítány předtím než přijde paket - nedochází k softwarovému přepínání
-> oddělení směrovacích informací od L2 dat
-> změny ve směrovací tabulce se okamžitě propagují do tabulky CEF
-> ARP tabulka se synchronizuje se záznamy od sousedů
-> LOAD balancing - vyvažování podle paketu nebo dvojice zdroj/cíl
CEF hashovací tabulka - stromová struktura
Typy architektur (Architektura se sdíleným procesorem (Shared CPU))
Architektura se sdíleným procesorem
• Podobné klasickým počítačům (softwarový směrovač)
○ Procesor s pamětí
○ Obsahuje modul FE (Forwarding Engine), správce front, provozu
○ Zpracování L2/L3, směrování, správu a monitorování
○ Přídavné karty propojené sdílenou sběrnicí (backplane)
○ Sdílejí procesor i sběrnici
• Vlastnosti ○ Každý paket přenášen dvakrát po sběrnici ○ Cykly CPU rozděleny mezi přeposílání paketů, zpracování směrovacích informací a další operace ○ Nízký výkon – použití pro menší sítě ○ Propustnost < 1 Gb/s • Výhody ○ jednoduchá architektura – levné ○ flexibilní implementace – vše v softwaru • Nevýhody ○ nižší výkonnost ○ rychlost procesoru - každý paket zpracováván v CPU ○ pomalý přístupu do paměti ○ vyhledávání v tabulkách ○ uložení paketu ○ propustnost sdílené sběrnice redukována na polovinu
Architektura se sdíleným procesorem - varianta s vyrovnávací pamětí na kartě
• Funkcionalita FE přenesena na síťový modul
• Paket přenášen po sběrnici pouze jednou při přenosu na výstup
• Dotazy na směrování lokálně ukládány v síťovém modulu
• Síťové modul obsahuje
○ Specializovaný procesor na zpracování hlaviček
○ Paměť pro ukládání paketů
○ Kopii přepínací tabulky
• Zpracování paketu ○ První paket toku na nový cíl zpracován v CPU § Používá se centrální přepínací tabulka § Výsledek uložen do kopií na síťových modulech ○ Následující pakety poslány přímo na výstupní rozhraní ○ Příklad: § Cílová adresa nenalezena v lokální paměti: cesta 1 -> 16 § Cílová adresa uložena v lokální paměti: cesta 17 -> 27 • Vyrovnávací paměť ○ Záznamy pravidelně obměňovány – mechanismus LRU, FIFO ○ Agregovaný provoz na páteřní síti – velké množství sítí (cílů)
Typy architektur (Architektura s nezávislými moduly FE)
• Implementovány na speciálních kartách ve směrovači
○ Forwarding Engine Cards
○ Nejsou součástí síťového modulu (Line Card)
• Karta obsahuje ○ Dedikovaný specializovaný procesor – není sdílení ○ Paměť pro uložení přepínací tabulky • Pakety mohou být zpracovávány paralelně – vyšší propustnost
- varianta -> Dvě nezávislé sdílené sběrnice
○ Sběrnice pro přenos paketů mezi rozhraními
○ Sběrnice pro komunikaci s moduly FE• každé rozhraní může zpracovávat ve vst. a výst. rozhraní nezávisle, můžeme packety dávat na vystup a zároveň dotazovat co s jiným packetem• Vlastnosti architektury
○ Paralelní zpracování paketů - může docházet k přeskládání paketů – zpomalení TCP
○ Řešení přeskládání = každý tok zpracován ve stejném modulu FE
○ Rozšiřitelná architektura - lze přidávat moduly FE
○ Slabým místem sdílená sběrnice (shared backplane) - možné nahradit přepínanou sběrnicí (switched backplane) -> stačí jediná sběrnice - varianta -> s přepínanou sběrnicí
• Vyšší propustnost
• Stačí pouze jedna sběrnice
• Síťové moduly i přepínací moduly přímo připojeny ke sběrnici
• Přepínání řízeno specializovaným procesorem (řadičem)
• Propustnost až 50 Gb/s [4]
Typy architektur (Distribuovaná architektura (Shared Nothing))
Zhodnocení předchozích architektur
- sdílený procesor a moduly FE - paket přeposílán po sběrnici dvakrát
- obecný procesor v modulech FE - omezení počtu zpracovávaných paketů
řešení - Distribuovaná architektura
• Zpracování paketů přesunuto do síťového modulu
• Jednotka FE přemístěna na síťovou kartu (vs. sdílený procesor a moduly FE)
• Každý funkční modul implementován v hardware ○ specializované technologie ASIC a FPGA ○ propojení hw komponent rychlými sběrnicemi • Modul pro směrování implementován odděleně - zpracovává směrovací informace • Vlastnosti ○ Oddělení procesu směrování a přeposílání § Směrování probíhá na obecném procesoru § Při aktualizaci směrovací tabulky se změny přenesou i do přepínací tabulky ○ Propustnost směrovače až 640 Gbps ○ Rozšiřování omezeno počtem slotů pro síťové moduly ○ Páteřní přepínače § velký počet portů pro připojené sítě § rychlost optických sítí i 2.4 Gbps (OC-48)
Typy architektur (Modulární propojení směrovačů (Clustered Architecture))
Modulární směrovač – popis architektury
• Několik směrovačů připojených k centrálnímu přepínači
• Síťové moduly umístěny ve více chassis
○ Centrální přepínač
○ Propojení modulů pomocí vysokorychlostních optických linek
• Klastr se chová se jako jeden směrovač ○ Přepínání probíhá mezi síťovými moduly v různých chassis * Důraz na redundanci a zálohování * Záložní přepínač (single point of failure)