vyuka:cviceni:y36sps:semestralky:papaij1

Konfigurácia dynamického smerovania na routroch Cisco

Ján Pápai
  • na danej topológii
    • nakonfigurovať routovací protokol EIGRP
    • nakonfigurovať routovací protokol OSPF

Funkčnost nakonfigurovaného smerovania sa najlahšie otestuje tak, že sa ručne spôsobí výpadok niektorej linky (vytiahnutím kábla medzi smerovačmi resp. vypnutím rozhrania na routri). Sieť by mala zkonvergovať a fungovať bez problémov ďalej (overenie fukčnosti pomocou ping-u).

  • porovnať protokoly (náročnosť konfigurácie, rýchlosť konvergencie siete, výhody a nevýhody daných protokolov…)
  • prehĺbiť si znalosti Cisco IOS

Práca schválená:

Prezentácia

Popis protokolov a ich konfigurácia

Pred začatím konfigurácie treba vedieť ze Cisco zariadenia majú viacero módov a každý z nich umožňuje prístup k iným príkazom. Tieto módy sú:

  • user mode, v konzoli spoznáme podla znaku “>”: Router>
  • privileged EXEC mode: Router#
    • do tohoto módu sa prepneme príkazom enable: Router>enable
    • späť sa prepneme píkazom disable: Router#disable
  • konfiguračný mód do ktorého sa prepneme z privileged módu, na konzoli: Router(config)#
    • do tohoto módu sa prepneme príkazom configure terminal: Router#configure terminal
    • späť sa prepneme píkazom exit alebo Ctrl+Z

Je dobré vedieť aj to že Cisco konzola podporuje doplňovanie pomocou TAB-u ako unixový shell. Pomoc získame napísaním ?:

  • ak poznáme iba začiatok príkazu, použijeme v tvare prik? (písané spolu)
  • ak poznáme príkaz ale nevieme aké má ďalšie parametre/nastavenia použijeme v tvare prikaz ? (vynecháme medzeru)

Väčšina príkazov má krátku verziu. Namiesto show running-config použijeme sh run, namiesto configure terminal napíšeme conf t atď.
Keď chceme zrušiť nejaký prikaz ktorý sme zadali tak pred neho napíšeme no, napr. bandwidth 64 zrušíme pomocou no bandwidth.
V Cisco routroch sú implementované programy ping traceroute a telnet.

Základné príkazy

  • Router>enable
  • Router#disable
  • Router#configure terminal
  • Router#show version - verzia IOS, info o HW (pred prácou si takto zistíme s akým železom máme česť pracovať ;) )
  • Router#show startup-config - výpis konfigurácie ktorá sa aplikuje pri štarte zariadenia
  • Router#show running-config - výpis aktuálne bežiacej konfigurácie
  • Router#copy running-config startup-config - uloženie aktuálnej konfigurácie tak aby sa použila pri štarte zariadenia
  • Router#erase startup-config - zmazanie štartovacej konfigurácie, pri štarte sa aplikujú defaultné nastavenia
  • Router#reload - reštart zariadenia
  • Router#show ip interface brief - krátke info o každom rozhraní (IP adresa, stav rozhrania)
  • Router#show interfaces - detailné info o rozhraniach
  • Router#show ip route - výpis routovacej tabulky
  • Router(config)#hostname meno - nastavenie hostnamu

Heslá

  • Router(config)#enable secret heslo - nastavenie hesla pre pristup do privilegovaného módu (na rozdiel od nasledovných hesiel sa defaultne uloží v hashovanej forme)
  • Router(config)#service password-encryption - zapne hashovanie hesiel (bez tohoto príkazu sa heslá objavia v running a startup konfigurákoch v čitatelnej forme)
  • Router(config)#line console 0 - prepne sa do konfigurácie konzole
  • Router(config-line)#password heslo - nastavenie hesla
  • Router(config-line)#login - nastaví povinnosť zadávať heslo pri prihlásení sa cez konzolu
  • Router(config)#line vty 0 4 - prepne sa do konfigurácie virtuálneho terminálu, heslo a povinnosť zadávať ho sa nastaví rovnako ako u konzole

Možno nastaviť aj prístup cez SSH, postup si každý vygoogli sám :)

Rozhrania

  • Router(config)#interface serial cislo - nastavenie sériového rozhrania, cislo je napr. 0/0/1, 0/1/0, 0/1/1 atď.
  • Router(config)#interface fastEthernet cislo - nastavenie ethernetoveho rozhrania, cislo je napr. 0/0, 0/1 atď.
  • Router(config)#interface loopback cislo - nastavenie loopbacku, cislo je 0,1,2,3 atď.
  • Router(config-if)#ip address adresa maska - nastavenie IP adresy a masky na rozhraní
  • Router(config-if)#clock rate cislo - nastavenie rýchlosťi v bitoch za sekundu na sériovom rozhraní
  • Router(config)#bandwidth cislo - nastavi bandwidth v kbps (nemení rýchlosť linky, iba nastavuje hodnotu ktorá sa použije vo výpočte metriky), !pozor! - treba ho zmeniť na oboch stranách linky
  • Router(config-if)#no shutdown - zapne rozhranie
  • Enhanced Interior Gateway Routing Protocol
  • Distance Vector Protocol (routy sú propagované ako vektory vzdialenosti a smeru kde vzdialenosť je daná metrikou a smer je interface ktorým router pošle update)
  • Classless Routing Protocol (v routovacích updatoch posiela masku podsiete)
  • Cisco proprietary protocol
  • na rozdiel od klasických distance vector protokolov (RIP, IGRP) EIGRP neposiela periodické updaty
  • informacie o routách uchováva v routovacej tabulke a tabulke topológie kde je uložená najlepšia cesta a všetky bezsmyčkové (loop-free) záložné cesty (cesty splňujúce tzv. Feasibility Condition, viď ďalej)
  • Autonomous-System Number je číslo pridelené pre ISP, backbone providerov, velké inštitúcie ktoré sa pripájajú pomocou BGP
  • Autonomous-System Number v kontexte EIGRP značí číslo EIGRP procesu (na routri môže bežat viacero inštancií EIGRP), toto číslo musí byť vrámci siete rovnaké aby routre vytvorili susedstvá (adjacency)
  • IP internal routes - cesty vrámci autonomného systému
  • IP external routes - cesty importované do EIGRP procesu (napr. default static route)
  • posiela tzv. partial bounded updates - posielanie updatov iba o zmenách v sieti a iba routrom ktoré novú informáciu potrebujú
  • administratívna vzdialenosť pre EIGRP je 90, pre EIGRP summary route 5 a pre External route 170 (administratívnu vzdialenosť-AD možno chápať ako mieru dôveryhodnosti záznamu v routovacej tabulke, každý routovací protokol má inú AD a podla toho je uprednostnený pri výbere najlepšej cesty, vyberie sa cesta s menšou AD)
  • napriek tomu že EIGRP je classless, defaultne sumarizuje na “classful boundaries” (sumarizuje IP adresy do tried A, B a C)
    • toto je možné vypnúť - treba to urobiť na každom routri, príkaz viď ďalej
  • s automatickou sumarizáciou je spojený tzv. Null0 interface - ak paket vyhovuje classful sieťovej adrese (v routovacej tabulke tzv. level 1 parent route) ale nevyhovuje ani jednej podsieti tak je poslaný na Null0 interface, tj. je zahodený
  • Null0 interface sa v routovacej tabulke objaví vždy ak je aspoň jedna podsieť naučená via EIGRP a nie je vypnutá automatická sumarizácia
  • siete možno po vypnutí automatickej sumarizácie sumarizovať manuálne na každom rozhraní po ktorom chceme aby posielalo sumarizovanú adresu (tj. sumarizuje sa na rozhraní)
  • EIGRP pakety sa posielajú IP/ethernet multicastom
  • Protocol Dependent Modules (PDM) umožňujú prevádzkovať EIGRP nielen na IP sieťach ale aj na IPX a AppleTalk, na posielanie EIGRP paketov sa používa Reliable Transport Protocol (RTP) a nie TCP/UDP (IPX ani AppleTalk nemá protokoly z rodiny TCP/IP)
  • hello packet - slúži na objavenie susedov, vytváranie susedstva, nevyžaduje odpoveď
  • update packet - poslaný pri páde/objavení linky, odpoveďou je acknowledge packet
  • query packet - používa ho DUAL (viď ďalej) pri hladaní novej cesty, odpoveďou je acknowledge a následný reply packet
  • monituruje stav spojenia so susedmi a vyvolá update ak sa objaví nová linka alebo linka spadne
  • hello interval - čas po ktorom router pošle hello paket (defaultne 5s), po uplynutí tohoto času je sieť unreachable
  • hold time - čas po ktorého uplynutí sa považuje sused za down a DUAL vyhladá novú cestu (defaultne 15s, musí byť väčší alebo rovný hello intervalu)
  • EIGRP počíta metriku na základe bandwidth, delay, reliability a load (defaultne sa však používa iba bandwidth a delay)
  • EIGRP parameters - váhy K1 až K5 ktorými sa násobia jednotlivé činitele pri výpočte metriky (defaultne má váhu 1 bandwidth a delay, ostatné sú nastavené na nulu)
  • bandwidth - najnižšia nakonfigurovaná (viď príkaz bandwidth) šírka pásma ktoréhokoľvek rozhrania na ceste, statická hodnota, nemusí to byť reálna šírka pásma
  • delay - suma oneskorení od zdroja k cieli, statická hodnota
  • reliability - pravdepodobnosť že linka spadne, meria sa dynamicky (vážený priemer posledných 5min), 1/255 je najmenej spolahlivá linka, 255/255 je najspolahlivejšia linka
  • load - dynamicky meraná vyťaženosť linky (vážený priemer posledných 5min), 1/255 je málo vyťažená linka, 255/255 je plne saturovaná linka
  • samotný výpočet vypadá nasledovne:
    • (referenčná hodnota bandwidth je defaultne 10.000.000 - vo výpočte dostanú rýchlejšie linky menšiu a pomalšie linky väčšiu metriku)
    • ak sú hodnoty K a referenčný bandwidth ponechané na defaultných hodnotách tak výpočet je nasledovný: metric = (10.000.000/bandwidth + delay/10)*256
  • Diffusing Update ALgorithm
  • Finite State Machine, možno nakresliť stavový diagram
  • zaisťuje rýchlu konvergenciu a bezsmyčkové cesty
  • výpočetne náročný, aby nemusel byť často spustený predpočítava aj záložné cesty
  • ak spadne linka, vyhladá novú v tabulke topológie, ak tam záložná cesta nie je začne posielať query pakety a podla odpovedí počítať novú routu
  • pojmy:
    • Successor - susedný router ktorý je na najlepšej ceste (cesta s najnižšou metrikou) k cielovej sieti
    • Feasible Distance - najnižšia metrika k cielovej sieti
    • Reported (Advertised) Distance - susedova Feasible Distance k cielovej sieti (metrika ktorú daný router propaguje susedom ako svoju metriku k cielovej sieti)
    • Feasibility Condition - podmienka ktorá je splnená ak Reported Distance od suseda je menší ako môj Feasible Distance k cielovej sieti
    • Feasible Successor - sused ktorý splňuje Feasibility Condition
  • v tabulke topológie sa uchováva Successor, Feasible Distance a Feasible Successor-i s ich Reported Distance
  • to že neexistuje Feasible Successor nemusí znamenať že neexistuje ani záložná cesta - v tomto prípade nastupuje DUAL s query paketmi
  • Router(config)#router eigrp autonomous_system_number - spustenie EIGRP, aby routre spolu komunikovali musia mať rovnaké číslo autonómneho systému
  • Router(config-router)#no auto-summary - vypnutie automatickej sumarizácie
  • Router(config-router)#network adresa_siete - ktorýkolvek interface na routri ktorého adresa odpovedá zadanej sieti bude zahrnutý do procesu EIGRP (adresa siete je v tomto prípade braná ako classful)
  • Router(config-router)#network adresa_siete wildcard_maska - obdobne ako predchádzajúci príkaz, naviac je zadaná maska siete vo wildcard forme (je to vlastne “inverz” sietovej masky, získame ju tak že od 255.255.255.255 odčítame masku siete, napr. pre masku 255.255.255.0 je wildcard 0.0.0.255, pre 255.255.255.252 to je 0.0.0.3)
  • Router(config-if)#ip summary-address eigrp autonomous_system_number sumarizovaná_adresa maska - manuálna sumarizácia, sumarizuje sa na rozhraní po ktorom chceme aby propagovalo sumarizovanú adresu
  • Router(config-router)#passive-interface rozhranie - sieť pripojená na toto rozhranie bude propagovaná v updatoch ale nebude prijímať/odosielať EIGRP pakety (použijeme na rozhranie na ktoré sú pripojené iba koncové zariadenia)
  • Router(config)#ip route 0.0.0.0 0.0.0.0 odchodzie_rozhranie - zadanie defaultnej routy na routri ktorý slúži ako naša gateway do internetu
  • Router(config)#ip route 0.0.0.0 0.0.0.0 next-hop_adresa - ako predchádzajúci príkaz len namiesto rozhrania zadáme IP adresu routra na ktorý chceme smerovať premávku
  • Router(config-router)#redistribute static - rozdistribuovanie staticky zadaných rout vrátane tej defaultnej (takýto záznam sa objaví v routovacej tabulke ako EIGRP external route)

Ostatné užitočné príkazy

  • Router#show ip eigrp neighbors - ukáže EIGRP susedov, ich IP adresy, rozhranie na ktorom sú pripojení a aktuálne hodnoty hold time
  • Router#show ip eigrp topology [all-links] - tabulka topológie, ukáže stav DUAL FSM, siete v topológii, Successorov k týmto sieťam, Feasible a Reported Distance; s parametrom all-links ukáže aj cesty nesplňujúce Feasibility Condition
  • Router#show ip protocols - ukáže aktuálne hodnoty váh K, stav automatickej sumarizácie (vypnutá/zapnutá), siete pre ktoré sa routuje a IP adresy routrov od ktorých sa prijímajú updaty (zdroje routovacích informácií)
  • Router#debug eigrp fsm - priebežne vypisuje aktivitu ktorú vykonáva DUAL
  • Router#undebug all - vypne debugovanie
  • Open Shortest Path First
  • Link-State Protocol
  • Classless Routing Protocol
  • každý router udržuje link-state databázu (mapa topológie) z ktorej sa pomocou Dijkstrovho algoritmu počíta SPF strom najlepších ciest a podla neho sa plní routovacia tabulka
  • SPF schedule delay - vždy keď router obdrží informáciu o zmene topológie musí spočítať nový SPF strom, aby sa Dijkstra nespúšťal zbytočne (napr. kvôli linke ktorá neustále mení stav up-down) počká router 5s po prijatí updatu a výpočet spustí až potom; po dokončení sa začne odpočet hold time (10s) a ďalší beh SPF sa môže uskutočnit až potom
  • administratívna vzdialenosť pre OSPF je 110
  • Process ID má na rozdiel od Autonomous-System Number u EIGRP lokálny význam, tj. nemusí byť rovnake na všetkých routroch
  • na rozdiel od EIGRP nesumarizuje do classful adries
  • router každých 30min pošle svoju link-state databázu (periodický update)
  • enkapsulované do IP alebo ethernet, posielané multicastom
  • hello packet - objavuje susedov, vytvára susedstvá, posielaný defaultne každých 10s na multi-access a point-to-point linkách
  • database description packet - obsahuje krátky zoznam sietí z link-state databázy odosielajúceho routru a prijímajúci router si voči nemu kontroluje svoju databázu
  • link-state request - žiadost o link-state záznamy na základe rozdielu z database description paketu
  • link-state update - oznamuje zmeny v sieti, je to aj odpoveď na request, obsahuje tzv. link-state advertisement
  • link-state ack - potvrdenie o prijatí updatu
  • slúži na objavenie susedov a vytvorenie susedstva
  • posiela parametre na ktorých sa routre musia zhodnúť aby sa stali susedmi (hello interval, dead interval, network type)
  • hello interval - čas po ktorom router pošle hello paket (defaultne 10s)
  • dead interval - čas ako dlho router čaká na prijatie hello paketu, potom prehlási suseda za down - odstráni ho z link-state databázy a oznámi pád linky, defaultne 40s
  • je použitý pri volbe designated router(DR) a backup designated router(BDR) na multiaccess sieťach (ethernet)
  • skupina routrov ktoré medzi sebou zdielajú link-state informácie - všetky routre vrámci oblasti majú konzistentné informácie vo svojich databázach
  • použitie jednej oblasti - single-area ospf, typicky area 0, tzv. backbone area
  • použitie viacerých oblastí - multi-area ospf, výhodou sú menšie link-state databáze, musí existovať area 0 a ostatné k nej musia byť pripojené (prípadne pretunelované)
  • jednoznačne identifikuje router v sieti, dva routre nesmú mať rovnaké id
  • ID má tvar IP adresy
  • odvodzuje sa z (podla priority):
    • pevne nakonfigurované ID
    • najvyššia adresa ktoréhokoľvek nastaveného loopbacku na routri
    • najvyššia adresa na fyzickom interfaci, interface nemusí routovať OSPF, stačí ak je v stave up
  • ID sa nastaví pri pridaní prvého interfacu do routovacieho procesu, ak potom pridáme loopback alebo interface s vyššou IP tak ID zostane nezmenené
  • iba na multiaccess linkách (typicky ethernetové LANy), point-to-point nie
  • problémom na týchto sieťach je velké množstvo susedstiev a z toho vyplývajúce množstvo link-state oznámení
  • riešením je volba Designated Router (DR) a Backup Designated Router (BDR)
    • DR je zodpovedný za updatovanie ostatných OSPF routrov (DROthers) keď nastane zmena na sieti
    • BDR prevezme úlohu DR ak ten vypadne, následne sa zvolí nový BDR
  • volba prebieha takto:
    • DR bude router s najvyššou OSPF interface prioritou (defaultne 1, možno meniť, vyššie číslo znamená vyššiu prioritu)
    • BDR bude router s druhou najvyššou interface prioritou
    • ak sa priority rovnajú rozhoduje vyššie router ID
  • keď je DR zvolený zostane ním až kým sa nepokazí, alebo nespadne interface do multiaccess siete
  • volba sa spustí hneď ako sa do siete pripojí prvý router s nastaveným OSPF (ten sa stane DR)
  • metrika OSPF, implementácia od Cisca používa na výpočet bandwidth
  • počíta sa na interfacoch ako 10^8/bandwidth nastavený rozhraní v bytoch kde 10^8 (100Mbps) je referenčný bandwidth (pre FastEthernet a rýchlejšie platí 10^8/100.000.000 = 1, toto je možné zmeniť - treba na každom routri v sieti aby bola metrika konzistentná)
  • cost pre cestu je suma costov na ceste k cielovej sieti
  • možno ho zadať priamo (užitočné v sieťach ktoré obsahujú Cisco + non-Cisco zariadenia kde môžu non-Cisca používať iný výpočet costu)
  • Router(config)#router ospf process_id - spustenie OSPF na routri, process_id má lokálny význam, nemusí byť rovnaké na všetkých routroch
  • Router(config-router)#network adresa_siete wildcard_maska area cislo_oblasti - ktorýkolvek interface na routri ktorého adresa odpovedá zadanej sieti bude zahrnutý do OSPF
  • Router(config-router)#passive-interface rozhranie - sieť pripojená na toto rozhranie bude propagovaná v updatoch ale nebude prijímať/odosielať OSPF pakety (použijeme na rozhranie na ktoré sú pripojené iba koncové zariadenia)
  • Router(config)#ip route 0.0.0.0 0.0.0.0 odchodzie_rozhranie - zadanie defaultnej routy na routri ktorý slúži ako naša gateway do internetu
  • Router(config-router)#default-information originate - rozdistribuovanie defaultnej routy ostatným routrom
  • Router(config-router)#auto-cost reference-bandwidth referencny_bandwidth - nastavenie referenčnej hodnoty šírky pásma v Mbps (je vhodné zmeniť na každom routri aby bol cost konzistentný)
  • Router(config-if)#ip ospf priority cislo - nastavenie priority rozhrania (zohráva rolu pri volbe DR/BDR, čím vyššie číslo tým vyššia priorita, 0 znamená že sa router nesmie stať DR/BDR)
  • Router(config-router)#router-id ip_addresa - ručné nastavenie ID routru, aby sa uplatnilo treba reštartovať OSPF proces (viď ďalej)
  • Router(config-if)#ip ospf cost cena_linky - ručné nastavenie cost-u linky, vhodné nastaviť na oboch stranách (cost možno meniť aj nastavením šírky pásma príkazom bandwidth)

Ostatné užitočné príkazy

  • Router#clear ip ospf process - reštart OSPF procesu
  • Router#show ip protocols - ukáže router ID, siete pre ktoré sa routuje a IP adresy routrov od ktorých sa prijímajú updaty
  • Router#show ip ospf neighbor - ukáže ID susedných routrov, ich IP adresy, rozhrania na ktorých sú susedia napojený a aktuálne hodnoty dead intervalu
  • Router#show ip ospf interface - ukáže rozhrania ktoré sú zahrnuté v OSPF, ich IP adresu a oblasť, process ID, hodnoty hello a dead intervalu, ID routru,v prípade ethernetového rozhrania či je router DR/BDR/DROther
  • vyuka/cviceni/y36sps/semestralky/papaij1.txt
  • Last modified: 2008/05/28 09:42
  • by papaij1