300 likes | 540 Views
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ą
E N D
Maršrutizavimas IIRIP protokolas S. Kareiva
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 internete Distance 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)
Distance Vector algoritmas: maršrutų lentelė c(v,w): sujungimo Net(v,w) kaina Net(v,w): tinklo tarp v ir w adresasTai gali būti bet kokio tipo IP sujungimas
Distance Vector algoritmas: pranešimai 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)” [Net , D(v,Net)] v n
Distance Vector algoritmas: atnaujinimai Kiekvienas tinklo mazgas periodiškai siunčia savo maršrutų lentelės turinį kaimynams
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
Maršrutų lentelės sukūrimas • Naujas elementas v siunčia atnaujinimus kaimynams:
Maršrutų lentelės sukūrimas • Mazgas v gauna atsakymus iš tinklo kaimynų ir atnaujina savo maršrutų lentelę
Maršrutų lentelės atnaujinimas Įsivaizduokime kad v gavo pranešimą nuo m:[Net,D(m,Net)] Jei gautas pranešimas sumažina maršruto kainą, v apie tai paskelbia 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 }
Maršrutų lentelės atnaujinimas Prieš gaunant pranešimą: Įsivaizduokime kad D(m,Net) + c (v,m) < D (v,Net):
Į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 Pavyzdys 10.0.1.0/24 10.0.2.0/24 10.0.3.0/24 10.0.4.0/24 10.0.5.0/24 .2 .1 .2 .1 .2 .1 .2 .1 Router A Router B Router C Router D cost cost cost cost Net via Net via Net via Net via t=0:10.0.1.0 - 010.0.2.0 - 0 t=0:10.0.2.0 - 010.0.3.0 - 0 t=0:10.0.3.0 - 010.0.4.0 - 0 t=0:10.0.4.0 - 010.0.5.0 - 0 t=1:10.0.1.0 - 010.0.2.0 - 0 10.0.3.0 10.0.2.2 1 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=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=1:10.0.3.0 10.0.4.1 110.0.4.0 - 010.0.5.0 - 0 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
Pavyzdys Maršrutų lentelės susivienodina (konverguoja)! 10.0.1.0/24 10.0.2.0/24 10.0.3.0/24 10.0.4.0/24 10.0.5.0/24 .2 .1 .2 .1 .2 .1 .2 .1 Router A Router B Router C Router D cost cost cost cost Net via Net via Net via Net via 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=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=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 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 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 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
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.
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 - Istorija • Late 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 Unix • 1988 RIPv1 (RFC 1058) - classful routing • 1993 RIPv2 (RFC 1388) - adds subnet masks with each route entry - allows classless routing • 1998 Current version of RIPv2 (RFC 2453)
RIPv1 pranešimo formatas 1: RIPv1 1: užklausa2: atsakymas 2: for IP 0…0: prašoma pilnos maršrutų lentelės Gavėjo adresas Kaina, matuojama hop’ais Vienas RIP pranešimas gali turėti iki 25 maršrutų
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
RIPv2 pranešimo formatas 2: RIPv2 AS numeris, kitų protokolų informacija, etc. Tinklo kaukė duotam IP adresui Jei yra geresnis next-hop negu turi esamas maršrutizatorius, čia įrašomas, kitu atveju – 0..0
RIP pranešimai • Du pranešimų tipai: • Request messages • Response messages
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.
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’ų
Split horizon Pagal split-horizon taisyklę: maršrutizatorius A nesako apie savo maršrutą į C maršrutizatoriui B, kadangi pastarasis yra matomas už B