L2/L3 (Multilayer) Switch
Druhy MLS
Route caching
Topology based switching
RP = Route processor
SE = Switching engine
Route caching
první generace MLS
RP musí zpracovat první paket toku a zjistit jeho cíl
SE naslouchá výsledku zpracovaní prvního paketu toku a tento výsledek si uloží do MLS cache, podle které přepíná zbylé pakety daného toku
Podpora v HW:
Též zvaný:
-
Flow-based switching
Demand-based switching
Route once, switch many
CEF Cisco Express Forwarding (Topology-based)
druhá generace MLS
pro přepínání se používá specializovaný HW
Též zvaný jako CEF = Cisco Express Forwarding
Routovací informace se přenáší do FIB = Forward Information Base
Podporované platformy:
Catalyst 6500 Supervisor 720 (with an integrated MSFC3)
Catalyst 6500 Supervisor 2/MSFC2 combination
Catalyst 4500 Supervisor III, IV V and 6-E
Catalyst 3750, 3560, 3550, and 2950
CAM table
timestamp | MAC adr. | Port | VLAN |
| | | |
FIB table
IP adr. | NextHop IP | NextHop MAC | Port |
| | | |
MLS proces:
L2 forwarding table - rozhodování podle Dest.MAC adresy a CAM tabulky. Jestliže rámec obsahuje L3 paket k forwardování a Dest.MAC adr.=MAC adr. L3 rozhraní switche, je jen rozhodnuto, že forwarding proběhne na L3.
L3 forwarding table - rozhodování podle Dest.IP adresy nad FIB tabulkou. Vybrán je záznam, kde je “nejdelší” shoda IP adresy a masky. Díky tomu je získána next-hop IP, next-hop MAC a odchozí port bez potřeby dalších lookupů.
Security
ACL - Inbound a Outbound ACLs jsou zakomponovány do TCAM tabulky ⇒ zase úspora lookupů
QoS ALC - také v TCAM
Před tím než rámec opustí switch, musí být přepočítány kontrolní součty L3 a L2 hlaviček, protože se tyto hlavičky změnily.
MLS vyjímky:
CEF může zpracovávat pouze pakety, které nevyžadují jiné operace s hlavičkami, než změny polí IP, MAC, TTL a checksum. Provoz vyžadující další zpracování zpracovává “process switching”.
ARP požadavky a odpovědi
IP pakety vyžadující odpověď od routeru (TTL expired, MTU exceeded, Fragmentation needed,… )
IP broadcasty přenášené jako unicasty (DHCP request, IP helper funkce)
Routovací updaty
CDP, IPX, non-IP a non-IPX provoz
pakety určené pro NAT
Tabulky používané pro switching
CAM - Content-Addressable Memory
Používají ji všechny cisco catalyst switche
Do tabuky se zapisují zdrojové MAC adr.,interfejsy a VLANy příchozích rámců + časová známka.
Když rámec se stejnou zdrojovou MAC přijde přes jiný port, je vytvořen nový záznam a ten původní je smazán + je vygenerováno hlášení o flapující MAC mezi porty
Jestliže přijde rámec se stejnou zdrojovou MAC přes stejný port jako předtím, je pouze aktualizována časová známka.
Defaultně jsou “neaktivní” záznamy vymazány po 300 sekundách
Změna doby uchování záznamů v CAM (def.300s)
Switch(config)# mac address-table aging-time seconds
Přidání statického záznamu do CAM
Switch(config)# mac address-table static aaaa.bbbb.cccc vlan vlan-id interface type mod/num
TCAM - Ternary Content-Addressable Memory
Při klasickém routingu jsou ACE (Access Controll Entities) ACL vyhodnocována postupně, což může mít za následek zvýšení procesního zpoždění. V multilayer switchích je vyhodnocovací proces ACL implementován v hardwaru. TCAM umožňuje, aby byl paket vyhodnocen pomocí pouze jdnoho lookupu do tabulky. Switche často mívají více TCAM tabulek, což umožňuje zároveň vyhodnocovat vstupní a výstupní ACL, security a QoS ACL, forwarding na druhé a třetí vrstvě.
Komponenty Cisco IOS pro TCAM:
FM = Feature Manager - zakomponovává ACE do TCAM
SDM = Switching Database Manager - lze pomocí něj rozdělovat TCAM na oddíly (partitions) určené pro různé funkce. Cisco 4500 a 6500 mají TCAM rozdělenu napevno.
Struktura TCAM
str.29
Záznamy se skládají z kombinací VMR:
Value - 134bitů, obsahuje např. zdrojovou, cílovou adr., port atp., vyplňuje se podle definovaných
ACL
Mask - 134bitů, maska sloužící k označení části hodnot Values, které jsou relevantní pro rozhodování - odvozuje se z masek definovaných v
ACL
Result - číselné hodnoty reprezentující prováděnou akci, jestliže dojde k matchi řádku (permit, deny, pointer to next-hop routing table, index pro QoS policer, atp)
TCAM je vždy organizována dle masek, kde každá maska má asociovaných 8 Value paternů. Je-li počet paternů větší než 8, musí se vytvořit nová (stejná maska), ke které se přidávají další paterny.
access-list 100 permit tcp host 192.168.199.14 10.41.0.0 0.0.255.255 eq telnet
access-list 100 permit ip any 192.168.100.0 0.0.0.255
access-list 100 deny udp any 192.168.5.0 0.0.0.255 gt 1024
access-list 100 deny udp any 192.168.199.0 0.0.0.255 range 1024 2047
MASKS (134 bits) | Value patterns (134 bits) | Result |
| IP
protocol | IP
ToS | Source
IP | Src
Port | S Port
LOU | Dest
IP | Dest
Port | D Port
LOU | |
Maska 1
src.IP 32bits
dst.IP 16bits
other (xxx) | TCP | | 192.168.199.14 | | | 10.41.0.0 | 23 | | permit |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
Maska 2
dst.IP 24bits
other (xxx) | | | | | | 192.168.100.0 | | | permit |
UDP | | | | | 192.168.5.0 | | A1 | deny |
UDP | | | | | 192.168.199.0 | | B1:2 | deny |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
Maska 3
…
.. | | | | | | | | | |
LOU register pairs
A | gt
1024 | |
B | range start
1024 | range end
2047 |
TCAM tabulka není přímo stavěná na složitější porovnávání L4 hodnot (portů), pro případy gt, lt, neg a range je použit pomocný LOU registr, který uchovává tato pravidla a TCAM se do něj jen odkazuje - umožňuje to např. aby jeden LOU záznam byl společný pro více paternů v TCAM. Velikost LOU je však omezená, proto je-li překročena, musí se rozsahy portů rozepsat do TCAM ve stylu “co port, to řádek”. Velikost TCAM je také omezená a vpřípadě mnoha ACL vyžadujích L4 operace, může tato tabulka “přetéct” - stane-li se tak, už během konfigurace ACL je vygenerována syslog zpráva o přetečení TCAM.
Konfigurace Switching Tables
str.32
POZOR! příkazy lze psát dvěma způsoby:
Změna doby uchování záznamů v CAM (def.300s)
Switch(config)# mac address-table aging-time seconds
Přidání statického záznamu do CAM
Switch(config)# mac address-table static aaaa.bbbb.cccc vlan vlan-id interface type mod/num
Zobrazí CAM tabulku
Switch# show mac address-table dynamic [address mac-address | interface type mod/num | vlan vlan-id]
Zobrazení counterů (dynamic,static,total) pro jednotlivé VLANy
Switch# show mac address-table count
Smazání CAM tabulky nebo její části dle zadaných parametrů
Switch# clear mac address-table dynamic [address mac-address | interface type mod/num | vlan vlan-id]