Maršrutizavimas II RIP protokolas

Preview:

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

Citation preview

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

Recommended