Maršrutizavimas II RIP protokolas
description
Transcript of Maršrutizavimas II RIP protokolas
Maršrutizavimas IIRIP protokolas
S. Kareiva
IP maršrutizavimas
TCP
Network Interfaces
IP InputQueue
IP Output: CalculateNext Hop Router
ICMP
routingdaemon
Process IPOptions
IP Layer
For me ?
UDProute
comman dnetstat
comman d
routingtable
YES
Autonomous Systems (AS)Ethernet
Router
Ethernet
Ethernet
RouterRouter
Ethernet
Ethernet
EthernetRouterRouter
Router
AutonomousSystem 2
AutonomousSystem 1
Maršrutizavimo algoritmo komponentai
• Tai procedūra, kurios metu tinkle dalinamasi informacija, apie tai, kaip pasiekti vieną, ar kitą tinklo segmentą
• Tai taip pat procedūra, skirta optimalių maršrutų apskaičiavimui:– Maršrutai apskaičiuojami naudojant trumpiausio kelio
algoritmą:• Tikslas: Tinkle, kur kiekvienam sujungimui nustatoma
kaina, apskaičiuoti kelią tarp dviejų tinklo mazgų su mažiausia kaina
• O taip pat procedūros, taikomos reaguojant į topologijos pokyčius
Trumpiausio kelio algoritmo variacijos
1. Distance Vector Routing
•Kiekvienas elementas žino atstumą (kainą) iki kiekvieno tiesiogiai prijungto kaimyno
•Mazgas periodiškai dalinasi informacija apie maršrutus su savo kaimynais
•Visiems elementams atsinaujinus maršrutus, jų lentelės susivienodina
•Nauji mazgai skelbiasi kaimynams
2. Link State Routing
• Kiekvienas elementas žino atstumą iki kiekvieno kaimyno
•Atstumo informacija dalinamasi su visais tinklo mazgais
•Kiekvienas tinklo mazgas savarankiškai apskaičiuoja maršrutų informaciją
Maršrutizavimo algoritmai interneteDistance Vector
Routing Information Protocol (RIP)
Gateway-to-Gateway Protocol (GGP)
Exterior Gateway Protocol (EGP)
Interior Gateway Routing Protocol (IGRP)
Link State
Intermediate System - Intermediate System (IS-IS)
Open Shortest Path First (OSPF)
Tinklą įsivaizduokime kaip grafą
n
v
w
Net
Net(v,w)
Net(v,n)
c(v,w)
c(v,n)
Distance Vector algoritmas: maršrutų lentelė
Dest
n
v
w
D (v,Net)n
costvia(next hop)
Net
RoutingTable of node v
Net
Net(v,w)c(v,w)
Net(v,n)c(v,n)
Net(v,w): tinklo tarp v ir w adresasTai gali būti bet kokio tipo IP sujungimas
c(v,w): sujungimo Net(v,w) kaina
Distance Vector algoritmas: pranešimai
Dest
D (v,Net)n
costvia(next hop)
Net
RoutingTable of node v
• Mazgai tarpusavyje keičiasi maršrutų lentelės įrašais
• Pranešimų formatas: [Net , D(v,Net)] reiškia: “Mano kaina keliauti į tinklą Net yra D (v,Net)”
vv nn[Net , D(v,Net)]
Distance Vector algoritmas: atnaujinimai
Dest
D (v,Net 2)n
costvia(next hop)
Net 2
RoutingTable of node v
D (v,Net 1)mNet 1
D (v,Net N)wNet N
Kiekvienas tinklo mazgas periodiškai siunčia savo maršrutų lentelės turinį kaimynams
n
v wm
[Net N,D(v,Net N)]
[Net 1,D(v,Net 1)]
[Net N,D(v,Net N)]
[Net 1,D(v,Net 1)]
[Net N,D(v,Net N)]
[Net 1,D(v,Net 1)]
Maršrutų lentelės sukūrimas• Įsivaizduokite kad įjungiamas naujas mazgas v.• Tiesiogiai pajungtų tinklų kaina tampa 0:
– D (v, Net(v,m)) = 0– D (v, Net(v,w)) = 0– D (v, Net(v,n)) = 0
Destc (v,w)
Net(v,w)
0m
costvia(next hop)
Net(v,m)
RoutingTablec(v,m)
Net(v,m)
c(v,n)Net(v,n) 0wNet(v,w)
0nNet(v,n)n
v wm
Maršrutų lentelės sukūrimas
• Naujas elementas v siunčia atnaujinimus kaimynams:
Dest
0m
costvia(next hop)
Net(v,m)
RoutingTable
0wNet(v,w)
0nNet(v,n)
n
v wm
[w,0]
[n,0 ] [n,0 ]
[m,0]
[m,0]
[w,0]
n
v wm
[Net(v,w),0]
[Net(v,n),0] [Net(v,n),0]
[Net(v,m),0]
[Net(v,w),0]
[Net(v,m),0]
Maršrutų lentelės sukūrimas
• Mazgas v gauna atsakymus iš tinklo kaimynų ir atnaujina savo maršrutų lentelę
n
v wm
[Net N,D(n,Net N)]
[Net 1,D(n,Net 1)]
[Net N,D(m,Net N)]
[Net 1,D(m,Net 1)]
[Net N,D(w,Net N)]
[Net 1,D(w,Net 1)]
Maršrutų lentelės atnaujinimas
c(v,m)Net(v,m)
n
v wmNet
[Net,D(m,Net)]
Įsivaizduokime kad v gavo pranešimą nuo m: [Net,D(m,Net)]
if ( D(m,Net) + c (v,m) < D (v,Net) ) {Dnew (v,Net) := D (m,Net) + c (v,m);Update routing table;send message [Net, Dnew (v,Net)] to all neighbors
}
Jei gautas pranešimas sumažina maršruto kainą, v apie tai paskelbia
Maršrutų lentelės atnaujinimas
c(v,m)Net(v,m)
n
v wmNet
[Net,D(m,Net)]
•Prieš gaunant pranešimą:
Dest
D(v,Net)??
costvia(next hop)
Net
RoutingTable
c(v,m)Net(v,m)
n
v wmNet
[Net,D new (v,Net)]
[Net,D new (v,Net)]
Dest
m
costvia(next hop)
Net
RoutingTable
D new (v,Net)
• Įsivaizduokime kad D (m,Net) + c (v,m) < D (v,Net):
Pavyzdys
Router A Router B Router C Router D
10.0.2.0/24 10.0.3.0/24 10.0.4.0/24 10.0.5.0/2410.0.1.0/24
.1.2.2.2.2 .1.1.1
Įsivaizduokime: - sujungimo kaina yra 1, t.y., c(v,w) = 1 - visi atnaujinimai įvyksta vienu metu - kiekvienas maršrutizatorius žino tik tiesiogiai prijungtų interfeisų kainas
t=0:10.0.1.0 - 010.0.2.0 - 0
Net via cost
t=0:10.0.2.0 - 010.0.3.0 - 0
Net via cost
t=0:10.0.3.0 - 010.0.4.0 - 0
Net via cost
t=0:10.0.4.0 - 010.0.5.0 - 0
Net via cost
t=1:10.0.1.0 - 010.0.2.0 - 0 10.0.3.0 10.0.2.2 1
t=2:10.0.1.0 - 010.0.2.0 - 0 10.0.3.0 10.0.2.2 110.0.4.0 10.0.2.2 2
t=2:10.0.1.0 10.0.2.1 1 10.0.2.0 - 010.0.3.0 - 010.0.4.0 10.0.3.2 110.0.5.0 10.0.3.2 2
t=1:10.0.1.0 10.0.2.1 1 10.0.2.0 - 010.0.3.0 - 010.0.4.0 10.0.3.2 1
t=2:10.0.1.0 10.0.3.1 2 10.0.2.0 10.0.3.1 1 10.0.3.0 - 010.0.4.0 - 010.0.5.0 10.0.4.2 1
t=1:10.0.2.0 10.0.3.1 1 10.0.3.0 - 010.0.4.0 - 010.0.5.0 10.0.4.2 1
t=2:10.0.2.0 10.0.4.1 210.0.3.0 10.0.4.1 110.0.4.0 - 010.0.5.0 - 0
t=1:10.0.3.0 10.0.4.1 110.0.4.0 - 010.0.5.0 - 0
Pavyzdys
•17
Router A Router B Router C Router D
10.0.2.0/24 10.0.3.0/24 10.0.4.0/24 10.0.5.0/2410.0.1.0/24
.1.2.2.2.2 .1.1.1
t=3:10.0.1.0 - 010.0.2.0 - 0 10.0.3.0 10.0.2.2 110.0.4.0 10.0.2.2 210.0.5.0 10.0.2.2 3
Net via cost
t=3:10.0.1.0 10.0.2.1 1 10.0.2.0 - 010.0.3.0 - 010.0.4.0 10.0.3.2 110.0.5.0 10.0.3.2 2
Net via cost
t=3:10.0.1.0 10.0.3.1 2 10.0.2.0 10.0.3.1 1 10.0.3.0 - 010.0.4.0 - 010.0.5.0 10.0.4.2 1
Net via cost
t=3:10.0.1.0 10.0.4.1 310.0.2.0 10.0.4.1 210.0.3.0 10.0.4.1 110.0.4.0 - 010.0.5.0 - 0
Net via cost
Maršrutų lentelės susivienodina (konverguoja)!
t=2:10.0.1.0 - 010.0.2.0 - 0 10.0.3.0 10.0.2.2 110.0.4.0 10.0.2.2 2
t=2:10.0.1.0 10.0.2.1 1 10.0.2.0 - 010.0.3.0 - 010.0.4.0 10.0.3.2 110.0.5.0 10.0.3.2 2
t=2:10.0.1.0 10.0.3.1 2 10.0.2.0 10.0.3.1 1 10.0.3.0 - 010.0.4.0 - 010.0.5.0 10.0.4.2 1
t=2:10.0.2.0 10.0.4.1 210.0.3.0 10.0.4.1 110.0.4.0 - 010.0.5.0 - 0
Distance Vector maršrutizavimo charakteristikos
• Periodiški atnaujinimai: Maršrutų lentelių atnaujinimai siunčiami tam tikru periodu, dažniausiai 90 sek. intervalu.
• Išprovokuoti atnaujinimai: jei sujungimo metrika pasikeičia, atnaujinimai siunčiami nelaukiant nustatyto laiko intervalo.
• Pilnas maršrutų lentelės atnaujinimas: Dauguma distance vector maršrutizavimo protokolų siunčia savo kaimynams visą maršrutų lentelę, o ne tik pokyčius
• Maršrutų išmetimo laikmačiai: Maršrutų lentelės įrašai yra išmetami, jei jie neatnaujinami kas sutartą laiko tarpą, įprastai tai yra 3-6 atnaujinimo periodai.
•18
RIP - Routing Information Protocol• Paprastas intradomeno protokolas, triviali Distance Vector maršrutizavimo
implementacija
• Kiekvienas maršrutizatorius kas 30 sek. skelbia savo maršrutus tinklo kaimynams
• RIP sujungimo metrika visuomet yra 1 arba hop count
• Maksimalus hop count yra 15, o “16” laikoma begalybe “”
• Maršrutų metrika nustatoma į 16 po trijų minučių jei pastarieji nėra atnaujinami
RIP - IstorijaLate 1960s : Distance Vector protocols were used in
the ARPANET Mid-1970s: XNS (Xerox Network system) routing
protocol is the precursor of RIP in IP (and Novell’s IPX RIP and Apple’s routing protocol)
1982 Release of routed for BSD Unix1988 RIPv1 (RFC 1058)
- classful routing1993 RIPv2 (RFC 1388)
- adds subnet masks with each route entry
- allows classless routing1998 Current version of RIPv2 (RFC 2453)
•20
RIPv1 pranešimo formatas
•21
IP header UDP header RIP Message
Command Version Set to 00...0
32-bit address
Unused (Set to 00...0)
address family Set to 00.00
Unused (Set to 00...0)
metric (1-16)
one
rout
e en
try(2
0 by
tes)
Up to 24 more routes (each 20 bytes)
32 bits
Vienas RIP pranešimas gali turėti iki 25 maršrutų
1: užklausa2: atsakymas
2: for IP0…0: prašoma pilnos maršrutų lentelės
Gavėjo adresas
Kaina, matuojama hop’ais
1: RIPv1
RIPv2
• RIPv2 yra praplėstas RIPv1:– Naudojamos tinklo kaukės (VLSM) - – Maršrutizavimo pranešimų autentikacija– Maršrutų informacija neša next-hop adresą– Dirba IP multicast’u
•22
RIPv2 pranešimo formatas
•23
IP header UDP header RIPv2 Message
Command Version Set to 00.00
IP address
Subnet Mask
address family route tag
Next-Hop IP address
metric (1-16)
one
rout
e en
try(2
0 by
tes)
Up to 24 more routes (each 20 bytes)
32 bits
AS numeris, kitų protokolų informacija, etc.
Jei yra geresnis next-hop negu turi esamas maršrutizatorius, čia įrašomas, kitu atveju – 0..0
2: RIPv2
Tinklo kaukė duotam IP adresui
RIP pranešimai
• Du pranešimų tipai: – Request messages – Response messages
•24
Maršrutizavimas RIP• Initialization: Siunčiama užklausos žinutė (komandos kodas = 1, adresas=0..0)
per visus interfeisus:• RIPv1 naudoja broadcast, • RIPv2 uses multicast address 224.0.0.9, if possible
• Request received: Maršrutizatoriai gavę tokią užklausą siunčia visą savo maršrutų lentelę
• Response received: Atnaujinti maršrutų informaciją lentelėje• Regular routing updates: Kas 30 sekundžių išplatinti visas ar dalį maršrutų
lentelių kaimynams• Triggered Updates: Maršrutui pasikeitus siųsti atnaujintą informaciją (kainą) iš
karto.
•25
RIP problemos
• RIP reikalingas ilgas stabilizavimo laikas– Vienam pokyčiui įvykus, visas tinklas apie tai
sužino tik po kurio laiko• RIP has all the problems of distance vector
algorithms, e.g., count-to-Infinity » RIP uses split horizon to avoid count-to-infinity
• Maksimalus sujungimų skaičius RIP yra 15 hop’ų
•26
Count to infinity
•27
Split horizon
•28
Pagal split-horizon taisyklę:
maršrutizatorius A nesako apie savo maršrutą į C maršrutizatoriui B, kadangi pastarasis yra matomas už B