Maršrutizavimas II RIP protokolas

28
Maršrutizavimas II RIP protokolas S. Kareiva

description

Maršrutizavimas II RIP protokolas. S. Kareiva. IP maršrutizavimas. Autonomous Systems (AS). Maršrutizavimo algoritmo komponentai. Tai procedūra, kurios metu tinkle dalinamasi informacija, apie tai, kaip pasiekti vieną, ar kitą tinklo segmentą - PowerPoint PPT Presentation

Transcript of Maršrutizavimas II RIP protokolas

Page 1: Maršrutizavimas II RIP protokolas

Maršrutizavimas IIRIP protokolas

S. Kareiva

Page 2: Maršrutizavimas II RIP protokolas

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

Page 3: Maršrutizavimas II RIP protokolas

Autonomous Systems (AS)Ethernet

Router

Ethernet

Ethernet

RouterRouter

Ethernet

Ethernet

EthernetRouterRouter

Router

AutonomousSystem 2

AutonomousSystem 1

Page 4: Maršrutizavimas II RIP protokolas

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

Page 5: Maršrutizavimas II RIP protokolas

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ą

Page 6: Maršrutizavimas II RIP protokolas

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)

Page 7: Maršrutizavimas II RIP protokolas

Tinklą įsivaizduokime kaip grafą

n

v

w

Net

Net(v,w)

Net(v,n)

c(v,w)

c(v,n)

Page 8: Maršrutizavimas II RIP protokolas

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

Page 9: Maršrutizavimas II RIP protokolas

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)]

Page 10: Maršrutizavimas II RIP protokolas

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)]

Page 11: Maršrutizavimas II RIP protokolas

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

Page 12: Maršrutizavimas II RIP protokolas

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]

Page 13: Maršrutizavimas II RIP protokolas

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)]

Page 14: Maršrutizavimas II RIP protokolas

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

Page 15: Maršrutizavimas II RIP protokolas

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):

Page 16: Maršrutizavimas II RIP protokolas

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

Page 17: Maršrutizavimas II RIP protokolas

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

Page 18: Maršrutizavimas II RIP protokolas

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

Page 19: Maršrutizavimas II RIP protokolas

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

Page 20: Maršrutizavimas II RIP protokolas

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

Page 21: Maršrutizavimas II RIP protokolas

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

Page 22: Maršrutizavimas II RIP protokolas

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

Page 23: Maršrutizavimas II RIP protokolas

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

Page 24: Maršrutizavimas II RIP protokolas

RIP pranešimai

• Du pranešimų tipai: – Request messages – Response messages

•24

Page 25: Maršrutizavimas II RIP protokolas

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

Page 26: Maršrutizavimas II RIP protokolas

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

Page 27: Maršrutizavimas II RIP protokolas

Count to infinity

•27

Page 28: Maršrutizavimas II RIP protokolas

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