CCNA2 – Module 7 Distance Vector Routing Protocols Ausbreitung von Routing-Table-Updates bei Distance Vector Routing Protokollen Werden als Ganzes zyklisch zwischen Nachbar-Routern ausgetauscht. Default-Werte: RIP: 30 Sekunden IGRP:90 Sekunden Inhalt der Routing-Tabellen: Gesamt-"Kosten" zu den enthaltenen Netzwerken und die Adresse des ersten Routers der zum jeweiligen Netzwerk führt. Weitere Zeitwerte für Distance Vector Routing Protokolle RIP und IGRP Feature RIP IGRP Metrik Hop Count Updates 30s Bandbreite, Delay, Reliability, Load (, MTU) 90s Route Invalid 180s 270s Route Flushed 240s 630s Für IGRP gibt es außerdem noch einen max. Hop-Count (0-255) Variante 1 zur Entstehung einer Routing-Loop (1) Z2 3.) Update 2.) Update Z1 Z0 Z3 Z 4. Update 3.) Update Z2 Z4 1.) Netzwerk Z fällt aus Variante 1 zur Entstehung einer Routing-Loop (2) Z6 6. Update 7. Update Z5 Z6 Z7 Z3 4. Update ... und so fort ... bis "infinity"! Z 5. Update Z4 Netzwerk Z ausgefallen Verhindern von Routing-Loops durch Definition eines Maximum Counts Das Updaten der Routing-Tables läuft "unendlich" lange "Count to infinity". Um dies zu verhindern wird je nach RoutingProtokoll die "Inifinity" über einen endlichen Wert definiert. RIP: Infinite Metrik 16 IGRP: Infinite Metrik 4.294.967.295 Diese wird z.B. beim maximalen Default-Hop-Count von 100 erreicht (einstellbar zwischen 0-255). Damit wird nach Ablauf einer endlichen Zeit vom Routing-Protokoll eine Routing-Loop angenommen und unterbrochen. Verhindern von Routing-Loops durch Holddown-Timer (1) Router B erhält von Router A die Mitteilung, dass Netzwerk Z weg ist. Die Route wird nun von Router B als "inaccessible" vermerkt und zusätzlich für ein Timer gestartet Holddown-Timer. RIP: 180s IGRP: 280s So lange der "Holddown-Timer" noch nicht abgelaufen ist, werden Änderungen zu dieser Route wie folgt behandelt (siehe nächste Folie): Verhindern von Routing-Loops durch Holddown-Timer (2) Router A (der hatte alles ausgelöst) teilt mit, dass die Route doch wieder da ist. Änderung wird angenommen und Holddown-Timer entfernt. Ein "Router J" meldet eine Route zu "Z" die besser ist als die ursprüngliche Route via "Router A" Änderung wird angenommen und Holddown-Timer entfernt. Router "C" meldet eine Route zu "Z" die schlechter ist als die ursprüngliche Route via "Router A" Änderung wird ignoriert so lange der Holddown-Timer noch aktiv ist. Weitere Mechanismen zur Verhinderung von Routing-Loops Mitursache für das Problem sind die relativ langen Perioden bis zum nächsten Routing-Table-Update und der daraus resultierenden Folgen. Dies kann mit "triggered updates" verbessert werden. Erkennt ein Router eine Veränderung, so sendet er sofort ein Update an Nachbarn. Erhöht die Geschwindigkeit zur Konvergenz. Nicht mehr erreichbare Netze werden normalerweise einfach aus einer Route weggelassen. Schnellere Konvergenz mit "route poisoning". Die betreffende Route wird mit einer unendlichen Metrik gesendet. Kombination: Triggerd updates + Route poisoning Variante 2 zur Entstehung einer Routing-Loop Netz Metric Netz Metric A 2 A 1 2. 1. A3 Netz A Metric 2 4 3. A4 Netzwerk A Netz Metric A 3 3. A4 Netzwerk A Lösung zur Variante 2 der Entstehung einer Routing Loop Erneut hilft hier der Count-to-Infinity mit einem endlichen Wert Dauert z.B. bei IGRP aber! Deshalb Mechanismus "Split Horizon" Routing-Update enthält die "direct connected"Route nicht wenn gerade über dieses Interface das Update läuft. Enthält die auf dem Interface X zu sendende Route als Ziel der Pakete selber das Interface X, so wird diese Route ebenfalls aus dem Update entfernt! Split-Horizon mit Poison Reverse: Die zweite Regel von oben wird ausgelassen. Allerdings werden diese Routen mit unendlicher Metrik gesendet. Konfiguration von RIP Grundkonfiguration – Start RIP-Prozess: RT(config)#router rip RIP-Aktivier. für angeschlossene Netzwerke RT(config-router)#network 192.168.1.0 RT(config-router)#network 10.10.10.0 Verifikation der RIP-Konfiguration show running-config show ip route (siehe "R"-Routen) show ip protocols [summary] show interface [interface] show ip interface [interface] [brief] debug ip rip [events] Von RIP verwendete Mechanismen zur Verhinderung von Routing-Loops Count-to-infinity (max. 15 Hops) Split horizon (gegebenenfalls deaktivierbar im Interface-Config-Mode "no ip split-horizon" Poison reverse Holddown counters Triggered updates (Kein Default: Nur auf seriellen Interfaces möglich; Aktivieren im jeweiligen Interface-Config-Mode mit "ip rip triggered") RIP-Tuning durch andere TimerEinstellungen Die Werte der Timer können geändert werden um schnellere Konvergenz zu erzielen. Update-Timer schneller (z.B. 30 Sekunden) Holddown-Timer kürzen Hier ist beispielsweise (bei einer RIP-UpdateZeit von 30 Sekunden) die längste Routing-Loop 120 Sekunden Holddown etwas mehr als 120 Sek. RIP-Tuning durch andere TimerEinstellungen Einsehen der eingestellten Werte: show ip protocols Einstellung der Timer-Werte über: Router(config-router)#timers basic update invalid holddown flush [sleeptime] Lt. Curriculum geht für den Update-Timer auch der Befehl "update-timer". Geht aber bei unseren Routern/IOS‘es nicht!?!? Um bei Laborübungen evtl. schneller die Änderungen zu sehen kann auch an den invalid- und flush-Timern gedreht werden. Weitere RIP-Features Ein Interface soll nur RIP empfangen aber keine eigenen Routes senden: GAD(config-router)#passive-interface Fa0/0 Verbindungen die keine Broadcasts unterstützen benötigen eine gezielte Angabe der Nachbarrouter: GAD(config-router)#neighbour ip Generelle RIP-Versionskontrolle (V1 od. 2) und RIP-Version bezogen auf Interface (senden bzw. empfangen) möglich. "no ip classless" bei RIP Router kennt keine Subnetze sondern nur ganze Class A, B, CNetze. Erkennung selbständig! Ist ein Subnetz konfiguriert geht er trotzdem davon aus, dass er alleine für das ganze Netz (entsprechend „Class“Einteilung) zuständig ist. Die vorhandene Default-Route wird ignoriert! Default-Route Lösung "ip classless" bei RIP Router kennt nun Subnetting eines Class-X-Netzes. Pakete werden nun z.B. via DefaultRoute weitergeleitet. Seit IOS-Release 11.3 ist "ip classless" standardmäßig aktiviert. Deaktivierung im Global-Config-Mode RT(config)#no ip classless Default-Route wird verwendet!!! RIP und IGRP Load-balancing Bis max. 6 Routen mit gleicher Metrik (bei IGRP auch verschiedene Metriken) können nach "round-robin"-Prinzip für Load-Balancing verwenden Default sind 4 Routen. Einstellung mit: RT(configrouter)#maximum-paths [number] Ansicht von "equal-cost"-Routen: show ip route netznummer Die Route mit "*" ist die Nächste! „Per-packet“ oder „Per-destination“ load balancing Bei „per-packet“ (auch process-switching genannt) wird jedes Paket nach „round-robin“ über einen der verfügbaren Links übertragen Bei „per-destination“ (auch fast-swichting geannt) merkt sich der Router im „route-cache“ welchen physik. Link er für eine Verbindung verwendet. Alle Pakete zu dieser Destination gehen dann über diesen physikalischen Link. Erst neue Destination nimmt nächsten Round-RobinLoad-Balancing-Link! Default ist „per-destination“ (fast-switching) „Per-packet“ oder „Per-destination“ load balancing Konfiguration erfolgt im „interface configuration mode“: Aktivierung „per-packet“ bzw. „processswitching“ mittels: no ip route-cache Aktivierung „per-destination“ bzw. „fastswitching“ mittels: ip route-cache Load-balancing und Administrative Distanz Bei der Auswahl von Load-balanced-Routen gewinnen immer die Routen mit geringster administr. Distanz. Nur diese werden in die Routing-Tabelle aufgenommen und nur für diese werde "equal-cost"-Pfade verglichen! Static-Routen und RIP Um alle zu löschen: no ip route (wenn das überhaupt geht?) Default-Route kann via RIP gelernt oder statisch konfiguriert werden. Weitere statische Routen können als BackupRouten hinterlegt werden Administrative Distanz muss größer als die von RIP sein (120). Statische Routen auf einem Interface werden nur verbreitet wenn das Interface in den RIPProzess integriert ist oder die Verteilung via "redistribute static" konfiguriert wird. IGRP Berechnet eine gewichtete Metrik anhand der Faktoren K1-K5 (s.u.). Default: K1=K3=1, K2=K4=K5=0 Metrik aus Bandwith und Delay. Beide Werte sind von Hand im Interf.-ConfigMode zu konfigurieren. Verstellen von K1 bis K5 nur für erfahrene Profi's. K 2 Bandwith K5 Metric ( K1 Bandwith K 3 Delay ) 256 Load reliabalit y K 4 Anmerkung: Wenn K5 u. K4 identisch 0 sind, wird der zweite Faktor nicht in die Metrik eingerechnet! IGRP Load-balancing Standardmäßig führt IGRP Load balancing auch nur für „equal-cost“Pfade durch (variance ist per Default 1). Mit dem variance-Befehl (unter router igrp …) lässt sich aber ein Faktor einstellen um wieviel andere Routen abweichen dürfen damit sie trotzdem noch ins „Load-balancing“ integriert werden. IGRP Verwendet zur Verhinderung von Routing-Loops: Holddown-Timer Split horizon Poison reverse updates Ist generell "in's Alter gekommen" und wird durch EIGRP ersetzt (neue IOS-Versionen können es evtl. nicht mehr). Aktivierung: router igrp as-nummer Deaktivierung: no router igrp as-nummer Netzwerke hinzufügen: network w.x.y.z Prüfverfaren für IGRP show interface interface show running-config show running-config interface interface show running-config | begin interface interface show running-config | begin igrp show ip protocols show ip route "I" sind IGRP-Routen debug ip igrp events debug ip igrp transactions IGRP – Typen von Routen Interior Routes: Routen zwischen den Subnetzen eines Netzwerks innerhalb eines Routers. System Routes: Routen die auf Router innerhalb des eigenen "Autonomous Systems" verweisen. Exterior Routes: Routen die aus dem AS herausführen.