Podcast on Understanding Cisco Route-Maps
Understanding Cisco Route-Maps: Configuration & Examples
Podcast
Unlocking Network Policies with Route-maps
Délka: 12 minut
Kapitoly
Úvod
Stavební kameny: Permit, Deny, Match, Set
Laboratoř: Permit a shoda
Když se Permit setká s Deny
Past „dvojitého záporu“
Logika OR a síla SET
Shrnutí a klíčové poznatky
Přepis
Ethan: Here’s the scenario that trips up almost everyone on their networking exam. You have a route-map with a deny statement, and it’s matching an access-list that also has a deny statement. So, a negative matching a negative… that should cancel out and permit the traffic, right? Wrong. And getting that logic backward is the number one reason students fail questions on this topic. Today, we're going to make sure you're never one of them.
Ethan: Vy posloucháte Studyfi Podcast. Jsem Ethan a se mnou je tu naše expertka na sítě, Grace.
Grace: Ahoj Ethane! Ahoj všichni. Je to skvělý úvod, protože ta logika „dvojitého záporu“ je přesně to, kde se route-mapy stávají matoucími. Ale slibuji, že až to rozebereme, bude to dávat naprostý smysl.
Ethan: Dobře, jsem připraven. Než se dostaneme do pasti dvojitého záporu, můžeme začít od začátku? Co přesně je route-mapa?
Grace: Rozhodně. Představte si route-mapu jako vyhazovače u dveří exkluzivního klubu s velmi specifickými pravidly. Používá jednoduchou logiku „jestliže-pak“. JESTLIŽE splňujete určitá kritéria, PAK s vámi něco udělám.
Ethan: Takže, jestliže jste na seznamu hostů, pak vás pustím dovnitř. Jestliže máte na sobě tenisky, pak vás pošlu pryč.
Grace: Přesně tak! V networkingu to může být: „JESTLIŽE se tento paket shoduje s tímto seznamem adres, PAK ho pošlete touto cestou.“ Nebo: „JESTLIŽE tato trasa pochází od tohoto souseda, PAK jí změňte metriku.“ Je to neuvěřitelně mocný nástroj pro implementaci síťových politik.
Ethan: Dobře, logika „jestliže-pak“ dává smysl. Jaké jsou stavební kameny? Co tvoří route-mapu?
Grace: Jsou tu tři hlavní části. Každý řádek v route-mapě, kterému říkáme „statement“ nebo příkaz, má sekvenční číslo, jako 10, 20, 30 a tak dále. Každý příkaz je buď permit (povolit) nebo deny (zamítnout).
Ethan: Stejně jako u access-listů.
Grace: Přesně. Potom, v rámci každého příkazu, máte volitelné klíčové slovo match (shoda). To je část „jestliže“. Zde definujete, co hledáte. Shoduje se to s určitou IP adresou? Je délka paketu větší než 500 bajtů? Pochází to z určitého BGP AS-path?
Ethan: A co část „pak“?
Grace: To je volitelné klíčové slovo set (nastavit). JESTLIŽE dojde ke shodě, PAK set něco změní. Můžete nastavit next-hop IP adresu, změnit metriku trasy, přidat značku... a spoustu dalších věcí.
Ethan: A co když se nic neshoduje? Co se stane, když se paket dostane na konec seznamu?
Grace: Skvělá otázka! Stejně jako u access-listů, na samém konci každé route-mapy je neviditelné „implicitní zamítnutí všeho“. Pokud paket projde všemi vašimi příkazy a nenajde žádnou shodu, je zahozen. To je klíčové si pamatovat.
Ethan: Dobře, teorie je fajn, ale myslím, že to potřebuji vidět v praxi. Můžeme si nastavit scénář?
Grace: Už jsem to udělala. Máme dva routery, R1 a R2, které spolu mluví pomocí EIGRP. R1 inzeruje čtyři sítě do R2: 192.168.0.0, 1.0, 2.0 a 3.0, všechny jsou /24.
Ethan: A naším úkolem je filtrovat tyto trasy na R2 pomocí route-mapy, že?
Grace: Přesně tak. Začněme jednoduše. Vytvoříme route-mapu, která povolí pouze síť 192.168.0.0/24 a zamítne vše ostatní. Říkejme jí TEST_1.
Ethan: Dobře, jak to vypadá?
Grace: Nejprve vytvoříme standardní access-list, který povoluje pouze tu jednu síť. Nazvěme ho R1_L0_PERMIT. Poté vytvoříme naši route-mapu: route-map TEST_1 permit 10. To znamená, že cokoli, co se v tomto příkazu shoduje, bude povoleno.
Ethan: A jaká je podmínka shody?
Grace: Naše podmínka match bude odkazovat na access-list, který jsme právě vytvořili: match ip address R1_L0_PERMIT. Nakonec tuto route-mapu aplikujeme na příchozí EIGRP aktualizace na R2.
Ethan: Takže, když se podíváme na směrovací tabulku R2, co uvidíme?
Grace: Měli byste vidět pouze jednu trasu: D 192.168.0.0/24. Funguje to, protože trasa se shoduje s access-listem, a příkaz route-mapy je permit, takže je to povoleno. Všechny ostatní trasy se neshodují, narazí na implicitní zamítnutí na konci a jsou zahozeny.
Ethan: Dobře, to dává smysl. Permit v route-mapě a permit v access-listu vede k povolení. Co se stane, když to trochu zamícháme? Co kdybychom použili permit v route-mapě, ale access-list by měl deny příkaz?
Grace: Vítej v králičí noře! Tohle je místo, kde lidé začínají být zmatení. Řekněme, že vytvoříme nový access-list, R1_L0_DENY, který explicitně zamítá 192.168.0.0/24. Pak vytvoříme route-mapu TEST_2, která říká route-map TEST_2 permit 10 a shoduje se s tímto novým deny access-listem.
Ethan: Takže, můj mozek si říká... povolujeme cokoli, co náš access-list zamítne? Zní to divně.
Grace: Přemýšlejte o tom takto: route-mapa se pouze ptá access-listu: „Hej, shoduje se tato trasa s tebou?“ Access-list, který má jen jeden deny řádek a implicitní deny na konci, se nikdy s ničím neshoduje. Efektivně neodpovídá „ano“ na žádnou trasu.
Ethan: Počkat, proč ne? Říká přece deny 192.168.0.0.
Grace: Ano, ale z pohledu route-mapy je shoda pouze tehdy, když access-list říká „permit“. Deny v access-listu znamená „toto není shoda“. Takže když se route-mapa zeptá na 192.168.0.0/24, access-list říká „ne, to není shoda“. Když se zeptá na jakoukoli jinou síť, access-list také říká „ne, to není shoda“ kvůli implicitnímu zamítnutí.
Ethan: Takže... se nic nikdy neshoduje. A pokud se nic neshoduje v příkazu 10, přejdeme k dalšímu příkazu. Ale my žádný nemáme...
Grace: Přesně! Vše narazí na implicitní zamítnutí na konci route-mapy. Takže když aplikujeme TEST_2, kolik tras uvidíme v R2? Nula. Vůbec žádné.
Ethan: Dobře, teď se mi z toho trochu točí hlava. Ale sleduji tě. Co se tedy stane, když obrátíme logiku route-mapy? Použijeme příkaz deny v route-mapě a permit v access-listu.
Grace: To je náš třetí scénář. Použijeme náš původní access-list, R1_L0_PERMIT, který povoluje 192.168.0.0/24. Ale tentokrát bude naše route-mapa, TEST_3, říkat route-map TEST_3 deny 10 a bude se shodovat s tímto access-listem.
Ethan: Dobře, takže route-mapa říká „zamítni cokoli, co se shoduje“. Náš access-list se shoduje s 192.168.0.0/24. Takže tato konkrétní síť je zamítnuta. Co se stane s ostatními třemi sítěmi?
Grace: Neshodují se v příkazu 10. Takže co se stane dál?
Ethan: Přejdou k dalšímu příkazu... a my zase žádný nemáme! Takže narazí na implicitní zamítnutí. Takže zamítneme jednu síť explicitně a ostatní tři implicitně. Výsledek je zase nula tras?
Grace: Přesně tak. Vidíš ten vzorec? Ten implicitní deny na konci je zabiják. Jak to opravíme, abychom zamítli POUZE tu jednu síť a povolili ostatní?
Ethan: Musíme přidat druhý příkaz do route-mapy! Něco jako route-map TEST_3 permit 20.
Grace: Bingo! A co dáme do příkazu 20? Jaké match nebo set příkazy?
Ethan: Uhm... žádné? Chceme povolit všechno ostatní, ne?
Grace: Přesně! Příkaz v route-mapě bez jakýchkoli match podmínek se shoduje se vším. Takže přidáním prázdného route-map TEST_3 permit 20 říkáme: „JESTLIŽE se síť dostala až sem, PAK ji prostě povol.“
Ethan: A teď, když se podíváme na směrovací tabulku R2, uvidíme sítě 1.0, 2.0 a 3.0, ale ne 0.0. To je ta „aha“ chvíle, kterou jsi slíbila na začátku.
Grace: To je ono. Vždy si pamatujte, že musíte explicitně povolit provoz, který nechcete, aby byl implicitně zamítnut.
Ethan: Takže jsme prošli permit/deny. Co kdybychom chtěli v jednom příkazu shodit více věcí? Třeba povolit sítě 1.0 a 2.0, ale nic jiného?
Grace: Můžete v jednom match příkazu odkázat na více access-listů. Například match ip address R1_L1_PERMIT R1_L2_PERMIT. To funguje jako logické NEBO. Pokud se trasa shoduje s kterýmkoli z těchto seznamů, celý příkaz je považován za shodu.
Ethan: To je užitečné. Takže bychom vytvořili dva access-listy, jeden pro každou síť, a odkazovali na ně oba. Výsledkem by byly v naší směrovací tabulce přesně ty dvě sítě.
Grace: Přesně tak. Ale upřímně řečeno, vše, co jsme zatím udělali, je v podstatě jen glorifikovaný access-list. Skutečná síla route-map přichází s příkazem set.
Ethan: Část „pak“ z naší logiky „jestliže-pak“.
Grace: Přesně. Ukažme si to. Řekněme, že na R1 máme novou loopback síť, 172.16.1.0/24. A chceme tuto „connected“ trasu redistribuovat do EIGRP, ale chceme přitom kontrolovat její metriku.
Ethan: A k tomu použijeme route-mapu při redistribuci.
Grace: Přesně. Vytvoříme access-list, který se shoduje pouze s touto novou sítí. Pak vytvoříme route-mapu nazvanou SET. Bude to vypadat takto: route-map SET permit 10, match ip address R1_L4. A teď přichází ta kouzelná část.
Ethan: Příkaz set!
Grace: Správně. Přidáme set metric 1500 10 255 255 1500. To jsou specifické hodnoty pro EIGRP metriku: šířka pásma, zpoždění, spolehlivost, zátěž a MTU. Poté, když redistribuujeme, odkážeme se na naši route-mapu.
Ethan: Takže na R2, když se podíváme na tuto trasu, uvidíme, že přišla s přesně těmito metrickými hodnotami, které jsme nastavili, a ne s výchozími hodnotami.
Grace: Přesně. Můžeme se vrátit, změnit hodnoty v příkazu set a metrika se v R2 okamžitě aktualizuje. To vám dává neuvěřitelnou kontrolu nad tím, jak se trasy jeví zbytku vaší sítě.
Ethan: Dobře, to bylo hodně informací, Grace. Pojďme si to rychle shrnout pro všechny, kteří se učí na zkoušku.
Grace: Dobrý nápad. Zapamatujte si toto: Route-mapy zpracovávají příkazy sekvenčně, shora dolů, a zastaví se u první shody. Stejně jako vyhazovač u klubu nekontroluje zbytek fronty, jakmile vás pustí dovnitř.
Ethan: To je dobrá analogie. Dále, každý příkaz je buď permit nebo deny.
Grace: Správně. Za třetí, prázdný match příkaz se shoduje se vším. To je klíčové pro povolení provozu na konci vašeho seznamu.
Ethan: A za čtvrté, a to je to nejdůležitější, na konci je vždy neviditelné, implicitní deny. Pokud si z dneška nic jiného neodnesete, pamatujte si tohle.
Grace: A konečně, skutečná síla pochází z kombinace match a set příkazů. JESTLIŽE se shoduje s X, PAK nastavte Y. To je podstata síťových politik.
Ethan: Úžasné. To demystifikovalo mnoho věcí, zejména tu matoucí logiku permit/deny. Díky moc, Grace.
Grace: Kdykoli, Ethane! Pamatujte, s praxí se route-mapy stanou vaší druhou přirozeností.
Ethan: To byl Studyfi Podcast. Šťastné studium a uvidíme se příště.