====== Multilayer switching ====== ===== Multilayer switching - CEF ===== * myšlenka "routovat jednou, switchovat mnohokrát" * RP = Route Procesor * SE = Switching Engine ==== NetFlow switching ==== (route cache switching) * první paket nového toku je klasicky routován v RP * switch si zapamatuje in/out interfacy pro tento tok * další pakety zpracovává už jen SE * Podpora v HW: * Cat6000 + Supervizor1/1 + Multilayer Switch Feature Card (MSFC) * Cat5500 + Route Swich Module (RSM) / Route Switch Feature Card (RSFC) / ext.router ==== CEF Cisco Express Forwarding==== * vychází z NetFlow switchingu 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 === FIB Forwarding Information Base === {{:wiki:site:cisco:11-3.png|}} * přeformátovaná a seřazená routovací tabulka s nejpřesněji specifikovanou routou na prvním místě pro každý subnet * routy jsou řazeny dle délky masky, čím delší maska, tím výš je routa ve FIB * FIB obsahuje next-hop adresy pro každou routu * FIB obsahuje i routy s maskou /32, pro přímo připojené hosty, které normálně v routovací tabulce nejsou * FIB se dynamicky mění dle aktuální routovací tabulky i dle záznamů pro next-hop IP v ARP tabulce Zobrazení FIB: >Switch# **show ip cef** [//type mod/num// | **vlan** //vlan-id//] [**detail**] Switch# show ip cef vlan 101 Prefix Next Hop Interface 10.1.1.0/24 attached Vlan101 10.1.1.2/32 10.1.1.2 Vlan101 10.1.1.3/32 10.1.1.3 Vlan101 >Switch# **show ip cef** [//prefix-ip prefix-mask//] [**longer-prefixes**] [**detail**] **longer-prefixes** - vypíše i routy s delší maskou než která byla specifikována v příkazu Switch# show ip cef 10.1.0.0 255.255.0.0 longer-prefixes Prefix Next Hop Interface 10.1.1.0/24 attached Vlan101 10.1.1.2/32 10.1.1.2 Vlan101 10.1.1.3/32 10.1.1.3 Vlan101 10.1.2.0/24 attached Vlan102 10.1.3.0/26 192.168.1.2 Vlan99 192.168.1.3 Vlan99 10.1.3.64/26 192.168.1.2 Vlan99 192.168.1.3 Vlan99 10.1.3.128/26 192.168.1.4 Vlan99 192.168.1.3 Vlan99 [output omitted] Switch# show ip cef 10.1.3.0 255.255.255.192 detail 10.1.3.0/26, version 270, epoch 0, per-destination sharing 0 packets, 0 bytes via 192.168.1.2, Vlan99, 0 dependencies traffic share 1 next hop 192.168.1.2, Vlan99 valid adjacency via 192.168.1.3, Vlan99, 0 dependencies traffic share 1 next hop 192.168.1.3, Vlan99 valid adjacency 0 packets, 0 bytes switched through the prefix tmstats: external 0 packets, 0 bytes internal 0 packets, 0 byte * version = počet updatů CEF záznamu od vytvotření tabulky * epoch = počet zahození CEF tabulky a vytvoření celé nové * Jakmile je vytvořena FIB tabulka, pakety jsou hardwarově přepínány (spodní cesta v obrázku) * Jestliže paket nemůže být směrován dle FIB je označen jako "CEF punt" a poslán do L3 enginu k dalšímu zpracování (horní cesta v obrázku) Důvody proč paket není směrován dle FIB: * pro paket není záznam ve FIB * FIB je plná * Vypršení IP TTL * Paket překračuje MTU a musí být fragmentován * ICMP Redirect * Nepodporovaný typ enkapsulace * Tunelovaný provoz, vyžadující kompresi nebo šifrování * Paket odpovídá ACL s "log" parametrem * Paket je NATován (kromě 6500, která má NAT v HW) * **aCEF** (Accelerated CEF) - každá line card na 6500 má v sobě část FIB, co v ní nenajde, je směrováno do L3 enginu. * **dCEF** (Distributed CEF) - každá line card na 6500 má v sobě celou FIB === Adjacency Table === * router běžně udržuje routovací tabulku obsahující L3 sítě a next-hop adresy, a ARP tabulku s L3-L2 záznamy * pro urychlení přepínání, jsou ve FIB udržovány i L2 záznamy pro next-hop - tato část FIB se nazývá //adjacency table// >Switch# **show adjacency** [//type mod/num// | **vlan** //vlan-id//] [**summary** | **detail**] Switch# show adjacency summary Adjacency Table has 106 adjacencies Table epoch: 0 (106 entries at this epoch) Interface Adjacency Count Vlan99 21 Vlan101 3 Vlan102 1 Vlan103 47 Vlan104 7 Vlan105 27 Switch# show adjacency vlan 99 detail Protocol Interface Address IP Vlan99 192.168.1.2(5) 0 packets, 0 bytes 000A5E45B145000E387D51000800 ARP 01:52:50 Epoch: 0 IP Vlan99 192.168.1.3(5) 1 packets, 104 bytes 000CF1C909A0000E387D51000800 ARP 04:02:11 Epoch: 0 * **000A5E45B145**000E387D51000800 - Next-hop MAC adresa * 000A5E45B145**000E387D5100**0800 - lokální MAC (MAC interface Vlan99) * 000A5E45B145000E387D5100**0800** - Protocol type (IP) * **ARP 01:52:50** - stáří ARP záznamu * Adjacency table se vytváří z ARP tabulky * Je-li v ARP aktualizován záznam - je aktualizován i v adacdency tabulce * Jestliže v ARP není záznam pro next-hop, je záznam v adjacency tab. označen jako "CEF glean" * CEF glean nelze přepínat v HW, paket je poslán do L3 enginu, který musí vyvolat ARP request a zjistit MAC next-hopu * Tento stav se nazývá "CEF glean state" * ARP throttling, throttling adjacency - V průběhu CEF glean stavu, jsou pakety zahazovány dokud není v L3 enginu zjištěna MAC next-hopu pro tyto pakety Switch# show ip cef adjacency glean Prefix Next Hop Interface 10.1.1.2/32 attached Vlan101 127.0.0.0/8 attached EOBC0/0 [output omitted] Switch# show ip arp 10.1.1.2 Switch# show ip cef 10.1.1.2 255.255.255.255 detail 10.1.1.2/32, version 688, epoch 0, attached, connected 0 packets, 0 bytes via Vlan101, 0 dependencies valid glean adjacency Typy záznamů v adjacency table: * **Null adjacency** - pro pakety směrované na Null interface * **Drop adjacency** - používá se pro pakety určené k zahození z důvodu chyby (nepodporovaného protokolu, špatného kontrolního součtu) Switch# show cef drop CEF Drop Statistics Slot Encap_fail Unresolved Unsupported No_route No_adj ChkSum_Err RP 8799327 1 45827 5089667 32 0 * **Discard adjacency** - pro pakety určené k zahození dle ACL * **Punt adjacency** - pro pakety posílané do L3 enginu k dalšímu zpracování Switch# show cef not-cef-switched CEF Packets passed on to next switching layer Slot No_adj No_encap Unsupp’ted Redirect Receive Options Access Frag RP 3579706 0 0 0 41258564 0 0 0 Důvody pro zpracování v L3 enginu: * **No_adj** - nekompletní adjacency * **No_encap** - nekompletní ARP resolution * **Unsupp'ted** - nepodporované featury paketu * **Redirect** - ICMP redirect * **Receive** - pakety směrované na L3 interejfejsy (IP adresy int. a broadcasty) * **Options** - IP options * **Access** - chyba vyhodnocení ACL * **Frag** - chyba fragmentace == Packet Rewrite == * vždy musí být přepsány hlavičky zpracovávaného rámce a paketu před opuštěním zařízení * děje se ve speciálním HW k tomu určeným - L2 cílová adresa - změna na MAC next-hopu - L2 zdrojová adresa - změna na MAC odchozího L3 interfejsu switche - L3 IP TTL - snížení hodnoty o jedna - L3 IP checksum - přepočítání kontrolního součtu IP hlavičky - L2 frame checksum - přepočítání kontrolního součtu L2 rámce === Konfigurace CEF === * defaultně zapnuto Na Cat3750 a 4500 lze vypnout: >Switch(config-if)# **no ip route-cache cef** >Switch(config-if)# **no ip cef** FIXME VERIFING MLS str.257