Routing Information Protocol - Routing Information Protocol

Den Routing Information Protocol ( RIP ) är en av de äldsta avståndsvektorroutingprotokoll som sysselsätter den hoppvärdet som en dirigerings metrisk . RIP förhindrar dirigering av slingor genom att implementera en gräns för antalet humle som tillåts i en sökväg från källa till destination. Det största antalet humle som tillåts för RIP är 15, vilket begränsar storleken på nätverk som RIP kan stödja.

RIP implementerar split horisont , väg förgiftning och nedhållande mekanismer för att förhindra felaktig routinginformation från att förökas.

I RIPv1 sänder routrar uppdateringar med sin routingtabell var 30: e sekund. I de tidiga utplaceringarna var routingtabellerna tillräckligt små för att trafiken inte var betydande. Eftersom nätverk växte i storlek blev det dock uppenbart att det kunde uppstå en massiv trafikbrist var 30: e sekund, även om routrarna hade initierats slumpmässigt.

I de flesta nätverksmiljöer är RIP inte det föredragna valet av routningsprotokoll , eftersom dess tid att konvergera och skalbarhet är dålig jämfört med EIGRP , OSPF eller IS-IS . Det är dock lätt att konfigurera, eftersom RIP inte kräver några parametrar, till skillnad från andra protokoll.

RIP använder User Datagram Protocol (UDP) som sitt transportprotokoll och tilldelas det reserverade portnumret 520.

Utveckling av distansvektor routing

Baserat på Bellman-Ford-algoritmen och Ford-Fulkerson algoritm , avstånds vektor routingprotokoll började genomföras från 1969 och framåt i datanätverk som ARPANET och CYCLADES . Föregångaren till RIP var Gateway Information Protocol (GWINFO) som utvecklades av Xerox i mitten av 1970-talet för att dirigera sitt experimentella nätverk. Som en del av Xerox Network Systems (XNS) protokollsvit GWINFO förvandlas till XNS Routing Information Protocol. Denna XNS RIP blev i sin tur basen för tidiga routningsprotokoll, såsom Novells IPX RIP, AppleTalks Routing Table Maintenance Protocol (RTMP) och IP RIP. 1982 Berkley Software Distribution av UNIX- operativsystemet implementerade RIP i den dirigerade daemon . 4.2BSD-utgåvan visade sig vara populär och blev grunden för efterföljande UNIX-versioner, som implementerade RIP i den dirigerade eller gated daemon. I slutändan hade RIP använts i stor utsträckning innan standarden skriven av Charles Hedrick godkändes som RIPv1 1988.

RIP-hoppräkningen

Routing-mätvärdet som används av RIP räknar antalet routrar som behöver skickas för att nå ett mål-IP-nätverk. Hopantalet 0 anger ett nätverk som är direkt anslutet till routern. 16 humle betecknar ett nätverk som inte kan nås, enligt RIP-hoppgränsen.

Versioner

Det finns tre standardiserade versioner av Routing Information Protocol: RIPv1 och RIPv2 för IPv4 och RIPng för IPv6 .

RIP version 1

Den ursprungliga specifikationen för RIP, definierad i RFC 1058, publicerades 1988. Vid start, och var 30: e sekund därefter, sänder en router med RIPv1-implementering till 255.255.255.255 ett begärandemeddelande genom varje RIPv1-aktiverat gränssnitt. Närliggande routrar som tar emot förfrågningsmeddelandet svarar med ett RIPv1-segment som innehåller deras routingtabell . Den begärande routern uppdaterar sin egen routningstabell, med den tillgängliga IP-nätverksadressen, hoppantalet och nästa hopp, det vill säga routerns gränssnitts-IP-adress från vilken RIPv1-svaret skickades. Eftersom den begärande routern tar emot uppdateringar från olika angränsande routrar kommer den endast att uppdatera de tillgängliga nätverken i sin routingtabell, om den tar emot information om ett tillgängligt nätverk som den ännu inte har i sin routingtabell eller information som ett nätverk den har i sin routingtabell är kan nås med lägre humleantal. Därför har en RIPv1-router i de flesta fall bara en post för ett tillgängligt nätverk, den som har lägst hoppantal. Om en router tar emot information från två olika närliggande routrar att samma nätverk kan nås med samma hoppantal men via två olika rutter, kommer nätverket att matas in i routingtabellen två gånger med olika nästa hopproutrar. Den RIPv1-aktiverade routern kommer sedan att utföra så kallad lastbalansering för samma kostnad för IP-paket.

RIPv1-aktiverade routrar begär inte bara routrarna för andra routrar var 30: e sekund, de lyssnar också på inkommande förfrågningar från angränsande routrar och skickar sin egen routingtabell i tur och ordning. RIPv1-routningstabeller uppdateras därför var 25 till 35 sekund. RIPv1-protokollet lägger till en liten slumpmässig tidsvariabel till uppdateringstiden för att undvika att routa tabeller som synkroniseras över ett LAN. Man trodde att, som ett resultat av slumpmässig initialisering, skulle routningsuppdateringarna spridas i tid, men detta var inte sant i praktiken. Sally Floyd och Van Jacobson visade 1994 att, utan liten randomisering av uppdateringstimern, synkroniserades timrarna över tiden.

RIPv1 kan konfigureras till tyst läge så att en router begär och bearbetar angränsande routingtabeller och håller sin routingtabell och hoppräkning för tillgängliga nätverk uppdaterade, men skickar inte onödigt sin egen routingtabell till nätverket. Tyst läge implementeras vanligtvis för värdar.

RIPv1 använder klassisk routing. De periodiska routningsuppdateringarna innehåller inte delnätinformation , utan stöd för VLSM ( Variable Length Subnet Masks). Denna begränsning gör det omöjligt att ha undernät av olika storlek i samma nätverksklass . Med andra ord måste alla undernät i en nätverksklass ha samma storlek. Det finns inte heller något stöd för routerautentisering, vilket gör RIP sårbart för olika attacker.

RIP version 2

På grund av bristerna i den ursprungliga RIP-specifikationen utvecklades RIP version 2 (RIPv2) 1993, publicerad som RFC 1723 1994, och förklarades Internetstandard 56 1998. Den inkluderade möjligheten att bära subnätinformation och därmed stödja klasslös inter- Domain Routing (CIDR). För att bibehålla bakåtkompatibilitet förblev gränsen för humleantal på 15. RIPv2 har möjligheter att helt samverka med den tidigare specifikationen om alla måste vara noll- protokollfält i RIPv1-meddelandena är korrekt specificerade. Dessutom möjliggör en kompatibilitetsväxelfunktion finjusterade interoperabilitetsjusteringar.

I ett försök att undvika onödig belastning på värdar som inte deltar i routing, multicaster RIPv2 hela routingtabellen till alla angränsande routrar på adressen 224.0.0.9 , i motsats till RIPv1 som använder sändning . Unicast- adressering är fortfarande tillåten för speciella applikationer.

( MD5 ) autentisering för RIP infördes 1997.

Ruttmärken lades också till i RIP-version 2. Denna funktion möjliggör en åtskillnad mellan rutter som lärt sig från RIP-protokollet och rutter som lärt sig från andra protokoll.

RIPng

RIPng (RIP nästa generation), definierad i RFC 2080, är ​​en förlängning av RIPv2 för stöd för IPv6 , nästa generations Internetprotokoll. De viktigaste skillnaderna mellan RIPv2 och RIPng är:

  • Stöd för IPv6-nätverk.
  • RIPv2 stöder RIPv1-uppdateringsautentisering medan RIPng inte gör det. IPv6-routrar skulle vid den tiden använda IPsec för autentisering.
  • RIPv2 kodar nästa hopp i varje ruttpost, RIPng kräver specifik kodning av nästa hopp för en uppsättning ruttposter.

RIPng skickar uppdateringar på UDP-port 521 med multicast-gruppen ff02 :: 9 .

RIP-meddelanden mellan routrar

RIP-meddelanden använder User Datagram Protocol på port 520 och alla RIP-meddelanden som utbyts mellan routrar är inkapslade i ett UDP-segment.

RIPv1-meddelanden

RIP definierade två typer av meddelanden:

Begär meddelande
Be en närliggande RIPv1-aktiverad router att skicka routingtabellen.
Svarmeddelande
Bär routingstabellen för en router.

Timers

Routningsinformationsprotokollet använder följande timers som en del av sin operation:

Uppdatera timer
Kontrollerar intervallet mellan två omtyckta svarsmeddelanden. Som standard är värdet 30 sekunder. Svarsmeddelandet sänds till alla dess RIP-aktiverade gränssnitt.
Ogiltig timer
Den ogiltiga timern anger hur länge en routingpost kan vara i routingtabellen utan att uppdateras. Detta kallas också som utgångstimern. Som standard är värdet 180 sekunder. När timern har löpt ut kommer hoppantalet för routing-posten att ställas in på 16, vilket markerar destinationen som oåtkomlig.
Spolningstimer
Spolningstimern styr tiden mellan rutten är ogiltig eller markerad som oåtkomlig och borttagning av post från routingtabellen. Som standard är värdet 240 sekunder. Det här är 60 sekunder längre än Ogiltig timer. Så i 60 sekunder kommer routern att annonsera om den här oåtkomliga vägen till alla sina grannar. Denna timer måste ställas in till ett högre värde än den ogiltiga timern.
Hållare-timer
Hålltimern startas per ruttpost när hoppantalet ändras från lägre värde till högre värde. Detta gör att rutten kan stabiliseras. Under denna tid kan ingen uppdatering göras av den här routningsposten. Detta är inte en del av RFC 1058. Detta är Ciscos implementering. Standardvärdet för denna timer är 180 sekunder.

Begränsningar

  • Hopantalet kan inte överstiga 15, annars kommer rutter att släppas.
  • Subnätmasker med variabel längd stöds inte av RIP version 1 (som är föråldrad).
  • RIP har långsam konvergens och räknas till oändliga problem.

Implementeringar

  • Cisco IOS , programvara som används i Cisco-routrar (stöder version 1, version 2 och RIPng)
  • Cisco NX-OS-programvara som används i Cisco Nexus-datacenteromkopplare (stöder endast RIPv2)
  • Junos- programvara som används i Juniper-routrar, switchar och brandväggar (stöder RIPv1 och RIPv2)
  • Routing and Remote Access, en Windows Server- funktion, innehåller RIP-stöd
  • Quagga , en gratis öppen källkods routing-svit baserad på GNU Zebra
  • BIRD , en kostnadsfri routing-svit med öppen källkod
  • Zeroshell , en kostnadsfri routing-svit med öppen källkod
  • En RIP-implementering som först introducerades i 4.2BSD , dirigerad, överlever i flera av dess ättlingar, inklusive FreeBSD och NetBSD .
  • OpenBSD introducerade en ny implementering, ripd, i version 4.1 och retired i version 4.4.
  • Netgear- routrar erbjuder ofta ett urval av två implementeringar av RIPv2; dessa är märkta RIP_2M och RIP_2B. RIP_2M är den vanliga RIPv2-implementeringen som använder multicasting - vilket kräver att alla routrar i nätverket stöder RIPv2 och multicasting, medan RIP_2B skickar RIPv2-paket med hjälp av subnet-sändning - vilket gör den mer kompatibel med routrar som inte stöder multicasting, inklusive RIPv1-routrar.
  • Huawei HG633 ADSL / VDSL-routrar stöder passiv och aktiv routing med RIP v1 & v2 på LAN- och WAN-sidan.

Liknande protokoll

Ciscos proprietära Interior Gateway Routing Protocol (IGRP) var ett något mer kapabelt protokoll än RIP. Den tillhör samma grundläggande familj av distansvektor-routningsprotokoll .

Cisco har upphört med support och distribution av IGRP i sin routerprogramvara. Det ersattes av Enhanced Interior Gateway Routing Protocol (EIGRP) som är en helt ny design. Medan EIGRP fortfarande använder en distansvektormodell, avser den IGRP endast när man använder samma routing-mätvärden. IGRP stöder flera mått för varje rutt, inklusive bandbredd , fördröjning , belastning , MTU och tillförlitlighet .

Se även

Referenser

Vidare läsning

  • Malkin, Gary Scott (2000). RIP: Ett routningsprotokoll inom domänen . Addison-Wesley Longman. ISBN  0-201-43320-6 .
  • Edward A. Taft, Gateway Information Protocol (reviderad) (Xerox Parc, Palo Alto, maj 1979)
  • Xerox System Integration Standard - Internet Transport Protocols (Xerox, Stamford, 1981)

externa länkar