Cisco RIP

From HackerNet
Revision as of 15:59, 17 January 2016 by Helikopter (talk | contribs) (Created page with "Routing Information Protocol är ett distance vector routing protocol. I denna artikel används RIP synonymt med RIPv2 (RFC 2453), RIPv1 har inte stöd för VLSM så det är v...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Routing Information Protocol är ett distance vector routing protocol. I denna artikel används RIP synonymt med RIPv2 (RFC 2453), RIPv1 har inte stöd för VLSM så det är väldigt legacy. Varje router kan annonsera sina directly connected networks plus det som de lär sig från sina grannar. Som med övriga distance vector routing protocols på IOS annonseras endast nätverk som hamnar i routingtabellen vidare, dvs annonsera endast det som routern själv använder. Man skickar kända nätverk med deras metric till grannar. Med tanke på att man inte känner till hela topologin utan endast nätverk och riktning är det större risk för loopar än med t.ex. link-state routing protokoll.

RIP-routrar byter information med varandra genom att skicka uppdateringar på alla RIP-enableade interface baserat på update timer (30 sec default). Man skickar all information man har varje gång, max 25 route entries får plats per enskilt paket. Det skickas inga Hellos och inga grannskap upprättas utan uppdateringar skickas till 224.0.0.9 UDP port 520 var 30 sekund. För metric används hop count och upp till 15 är användbart, 16 anses som infinity. RIP har två meddelandetyper, Requests och Responses. Requests används för att be en granne skicka en partial eller full update direkt utan att vänta på Update timer. Skickar en router en request som innehåller en rad med address family ID 0 och metric 16 vill den ha en full update. Annars svarar grannen med uppdateringar för de nät som står speccade i Requesten, dvs partial update. Full update frågas efter när en Ciscorouter bootar upp, ett RIP-interface kommer upp eller clear ip route * körs medans partial ej används.

En skillnad med RIP kontra EIGRP och RIPng är att metric läggs på när en route skickas iväg istället för när den kommer in. Finns det flera väger till en destination med samma metric installeras upp till 4 routes i routingtabellen. Detta går att ändra med maximum-paths-kommandot.

För att förhindra loopar används flera tekniker. Split Horizon, istället för att skicka exakt alla routes till en granne X tas routes med next-hop granne X bort från uppdateringen. Detta är påslaget default på alla interface förutom fysiska Frame Relay och ATM. En ännu kraftfullare variant är att lägga till Poison Reverse, då skickas uppdateringarna med next-hop granne X till granne X men med en metric satt till infinity. Detta har inte Cisco RIPv2 stöd för. RIP har stöd för triggered updates, dvs om en förändring sker kan en partial update skickas ut direkt. Om en route failar kan man skicka ut en triggered update om denna routen med en metric satt till infinity då propagerar uppdateringen till alla routrar och de slutar använda den failade routen, detta kallas route poisoning. Däremot sparas routen i den interna RIP-databasen men markeras som possibly down. Eftersom RIP använder UDP går det inte att lita på att exakt alla paket är rätt.

Timers
Varje router har för varje route en tillhörande invalid after timer (default 180 sekunder) som tickar varje sekund och resetas varje gång den kommer in en uppdatering innehållandes routen. Kommer det inte in någon uppdateringen med routen blir den invalid och holddown timern startar. Då börjar routern skicka ut uppdateringar om att denna route inte är nåbar (infinte metric) genom sig själv eftersom det har hänt något med routen ur det egna perspektivet så övriga routrar får hitta en annan väg. Samtidigt som den inte accepterar några uppdateringar gällandes denna route tills holddown timear ut (default 180 sekunder). Huvudsyftet men holddown är fördröja processandet av uppdateringar om nätverk vars nåbarhet inte är säker eftersom de mottagna uppdateringarna kanske inte innehåller up-to-date information.

Det finns också en flushed after timer som tickar och resetas på samma sätt som invalid after. Om routern inte hör något på 240 sekunder (default) tas routen bort från routingtabellen. Denna finns för att en route inte ska vara oviss för evigt. Eftersom invalid after är 180 sekunder och flushed after är 240 får inte holddown köra klart utan det bryts efter 60 sekunder.

Som med alla distance vector protokoll används den route med lägst metric, dvs bästa vägen, och övriga vägar påverkar inte routingtabellen. Enda undantaget till denna regel är om next-hop skickar en högre metric än tidigare då accepteras den direkt, t.ex. vid route poisoning. Enda sättet att få påverkningsmöjlighet är att annonsera lägst metric.

Om två routergrannar ser sig själva som next-hop för samma nätverk (kan hända om Split Horizon är avstängt) kommer de att turas om att uppdatera varandra med grannens metric plus 1 och den blir högre och högre för att tillslut nå infinity och den ena slutar. Med RIP kan detta ta lång tid. Detta kallas Counting to infinity och är en konsekvens av distance vector protokoll.

En stor nackdel med RIP är konvergenstiden.

Konfiguration

router rip
 version 2
 network 10.0.0.0
 passive-interface gi0

Verify

show ip protocols
show ip rip database

Debug

debug ip ripv2
debug ip ripv2 events

Timers

Går att tuna men det bör vara samma överallt.

timers basic 10 60 60 80

Unicast

Kan användas på vissa nätverkstyper, t.ex. multipoint Frame Relay subinterface.

neighbor 10.0.0.10

Autosummarization

no auto-summary

Autentisering

Finns stöd för plain-text och MD5 och implementeras med hjälp av key-chain.

ip rip authentication key-chain RIP-KEYS
rip authenttication mode md5

Använder man autentisering sänks antalet prefix som får plats i ett RIP-meddelande från 25 till 24.

Split Horizon

no ip split-horizon

Distribute-list

RIPng