12
OSPF (Open Shortest Path First) Ecrivez un compte rendu des résultats de votre expérimentation, et répondez aux questions. http://wiki.netkit.org/netkit-labs/netkit-labs_advanced-topics/netkit-labs_ospf/netkit-labs_ospf.pdf http://wiki.netkit.org/netkit-labs/netkit-labs_advanced-topics/netkit-labs_ospf/netkit-labs_ospf.tar.gz OSPF est un interior gateway protocol (tout comme RIP, IS-IS) - version 2 --> specification: RFC 2328 authentication confidentiality : RFC 5709 - version 3 (with IPv6 support) --> spécification: RFC 5340 authentication confidentiality : RFC 4552 OSPF: overview Chaque routeur envoie en “flooding” l’état local (“local state”, c’est à dire ses interfaces utilisables, ses voisins joignables) à travers le réseau, utilisant le protocole “link state advertisement (lsa)” - en se basant sur cette information reçue, chaque routeur construit et maintient à jour un “link state database (lsdb)”, qui décrit la topologie du réseau -- identique pour chaque routeur -- chaque “entry” de la base (lsdb) représente un état local d’un routeur - chaque router utilise le lsdb pour calculer l’arbre des plus courts chemins (shortest path tree) ayant lui-même comme racine - chaque interface peut avoir un cout (qui peut être changé par l’administrateur du réseau) OSPF lab, single-area : topologie du réseau

netkit-labs ospf.tar - lri.frfmartignon/documenti/reseauxavances/Netkit... · -- le routeur (interface) qui envoie les hello packets avec la priorité plus élevée gagne l’élection

Embed Size (px)

Citation preview

OSPF(OpenShortestPathFirst) Ecrivez un compte rendu des résultats de votre expérimentation, et répondez aux questions. http://wiki.netkit.org/netkit-labs/netkit-labs_advanced-topics/netkit-labs_ospf/netkit-labs_ospf.pdf

http://wiki.netkit.org/netkit-labs/netkit-labs_advanced-topics/netkit-labs_ospf/netkit-labs_ospf.tar.gz

OSPFestuninteriorgatewayprotocol(toutcommeRIP,IS-IS)-version2-->specification:RFC2328authenticationconfidentiality:RFC5709-version3(withIPv6support)-->spécification:RFC5340authenticationconfidentiality:RFC4552

OSPF:overviewChaquerouteurenvoieen“flooding”l’étatlocal(“localstate”,c’estàdiresesinterfacesutilisables,sesvoisinsjoignables)àtraversleréseau,utilisantleprotocole“linkstateadvertisement(lsa)”-ensebasantsurcetteinformationreçue,chaquerouteurconstruitetmaintientàjourun“linkstatedatabase(lsdb)”,quidécritlatopologieduréseau--identiquepourchaquerouteur--chaque“entry”delabase(lsdb)représenteunétatlocald’unrouteur-chaquerouterutiliselelsdbpourcalculerl’arbredespluscourtschemins(shortestpathtree)ayantlui-mêmecommeracine-chaqueinterfacepeutavoiruncout(quipeutêtrechangéparl’administrateurduréseau)

OSPFlab,single-area:topologieduréseau

single(backbone)area(0.0.0.0)-ChaqueinterfaceauncoutOSPF

-default:10-lescoutsontétéchoisispourforcerdespluscourtschemins

-Pourchangerlecoutd’uneinterface,utilisezlacommandesuivante(exemple):interfaceeth1ospfcost45

Pluscourtschemins(exemples)

Expérimentation-exécutezuntracerouteàpartirde/àl’arrivéededifférentesinterfaces.-exécutezuntraceroute–Iàpartirdebb1à10.0.2.1--QuestionQ1:quelcheminletracerouteestsupposésuivre?--QuestionQ2:quelcheminlesréponsesICMP(ICMPreplies)sontsupposéessuivre?-exécutezuntraceroute–Iàpartirdebb1vers10.0.3.2--QuestionQ3.A:quelcheminletracerouteestsupposésuivre?-Observezl’interconnexionentrelesroutesOSPFetlesréseauxdirectementconnectés(enexécutantlacommande«showiproute»dans“zebra”)-Q3.B:Essayezdechangerlescoutsetobservezleseffetsdeceschangements

Maintenant,accédezauospfdclisurlesdifférentsrouteurs,etutilisezlescommandessuivantes:-showipospfdatabase-showipospfneighbor-showipospfroute-QuestionQ4:Vérifiezquelelsdbestexactementlemêmepourchaquerouteur.

�Designatedrouters(interfacedurouteurdésignéspourchaqueréseau)

-Pourchaqueréseau,unedesinterfacesconnectéesàceréseauestéluecomme«designated»(dr)-L’électionestbaséesurdespriorités,enutilisantles«hellopackets»--lerouteur(interface)quienvoieleshellopacketsaveclaprioritéplusélevéegagnel’élection--encasd’égalité,tiebreakenutilisantle«routerid»plusélevée(pardefault,lerouteridestl’adressed’unedesesinterfaces)--prioritédanslerange∈[0,255],pardefaultpriority=1,sipriority=0⇒«neverbecomeadr»-undrdebackup(celuiaveclasecondeplushautepriorité)estaussiélu,poursortirrapidementdessituationsde«failure»dudrprincipal-lechangementd’undréquivautàunchangementdumodèledetopologieOSPF(desnouveaulsassontenvoyés)-pourcetteraison,ledrestchangérarement-Siunrouteuravecunehauteprioritéseréveille/estajoutéauréseau,ettrouveundrdéjàenplace,ilacceptecedr(onnechangedoncpas)

VisionduréseauenOSPF-Enéchangeantlesmessagesde«linkstateupdate»,chaquerouteurapprendlatopologiecomplèteduréseau,c’estàdire:--lesrouteursexistants--lessubnets--lesadjacences(c’estàdire,lesinterconnexions)entrerouteursetréseaux

Neighborhood

-Lesvoisinsd’unrouteur(routerneighbors)peuventêtremontrésenutilisantlacommande:showipospfneighbor-Ilfautnoterque:leslsassontéchangésentrevoisinsseulementsienFullstate(etdonc,capablesd’unéchangebidirectionneldel’information);pouratteindrel’étatdeFullstate,lesconditionssuivantesdoiventêtreréunies:-lesvoisinsontétédécouverts(utilisantles«hellopackets»)-unecommunicationbidirectionnelleestpossible-undesignatedrouteraétéélu-Unefoisrejoint,chaquerouteursynchroniseimmédiatementsonlsdb

OSPFroutingtable

LetableauderoutageOSPFpeutêtremontréenutilisantlacommande:showipospfroute

Expérimentation

-Q5Exécutezlescommandesshowipospfdatabaseetshowipospfneighborsurlesdifférentsrouteurs-Q6capturez,àl’aidedetcpdump,lespaquetsOSPFéchangésentrelesrouteurs

OSPFdétecterapidementleschangementsdetopologie

Premiercas(#1):linkfault-éliminer(bring/shutdown)uneinterfaceréseauenutilisantlacommandeifconfig--cechangementestimmédiatementpropagéparlerouteurdanslespaquetslsa--lestableauxderoutagesontimmédiatementmisàjour(showipospfroute)--lelsdbestgéréunpeudifféremment…Silelinkfaultintéresseundr,cetteinformationestimmédiatementrépercutéesurle(s)lsdb(s)...-...etéventuellementannoncéeànouveauquandunnouveaudrestre-élu-Sinon,OSPFattendl’expirationduRouterDeadIntervaltimer(default:40s)avantd’enleverl’informationd’adjacencedulsdb(showipospfdatabasenetwork)Anoterque:lesréseauxconnectésàunseulrouteur,appelésstubnetworks,sontvisiblesseulementutilisantlacommandeshowipospfdatabasenetworkDonc,letempstotalderéactionaulinkfailure(estimation)est:

Deuxièmecas(#2):routerfault-ilsuffitd’éteindreunrouteur(soitlamachinevirtuellecorrespondante,soitenéliminanttoutessesinterfacesenmêmetemps)-danscecas,lerouteur,n’aévidemmentpaslapossibilitédepropager/envoyerleslsas…-…etdonccechangementdetopologienepeutpassepropagerimmédiatement-lesrouteursvoisinspeuventd’apercevoirdecechangement(etdoncmettreàjourlestableauxderoutage)aprèsl’expirationduRouterDeadIntervaltimerAprèsquelechangementestpropagé…-…l’informationdanslelsdbconcernantlesréseauxpourlesquelslerouteur«failed»n’étaitPASdrestimmédiatementprisedeslsdbsdesautresrouteurs---ledrprendsoind’envoyerleslsasappropriés

-...l’informationdanslelsdbconcernantlesréseauxpourlesquelsleroteur«failed»étaitbienledr(enincluantaussiceuxdanslesquelsundrserare-élu)estplus«compliquée»---OSPFattendl’expirationdulsa(celaarrivequandl’âgedulsadevient=MaxAge,1heure)avantd’entreprendren’importequelleaction.Donc,letempstotalderéactionaurouterfailure(estimation)est:

OSPFareas

-Ils’agitd’uneabstractionquipermetdesimplifierl’administrationduréseau,etd’améliorerla«scalabilité»(passageàéchelle)duprotocole.---Eneffet,latopologieàl’intérieurd’uneareaestinvisibleàl’extérieurdecetteareamême---Lesrouteursd’uneareadonnéenevoientpaslesdétailsexternesàlatopologiedel’area-Chaqueareautiliseuneinstancedistinctedel’algorithmedelinkstate---Touslesrouteursd’unemêmeareaconstruisentetmaintiennesàjourlemêmelsdb---ChaquerouteurmaintientunlsdbdistinctpourchaqueareaàlaquelleilappartientUneareaOSPFestidentifiéeavec32-bit,souventenformatdotteddecimal(1.2.3.4)---Desinterfacesdifférentesd’unmêmerouteurpeuventêtreassignéesàdifférentesareas-Mais:--chaqueinterface--chaqueréseau--chaque«routeradjacency»…...estassociéàuneetuneseulearea

Areatypesbackbone(0.0.0.0)-doitêtre(virtuellement)connectée-touteslesautresareassontconnectéesàelle-ellecontienttouslesareaborderroutersstub-nereçoitpaslesadvertisementsesrouteursexternes-lesrouteursinternessevoientoffriruneroutepardefault-nepeuventpascontenirdesautonomoussystemboundaryrouters-lebackbonenepeutpasêtreunestubareatransit-utiliséepourfairepasserletraficd’uneareaàuneautre,àtraversdesvirtuallinks

TypologiesdeRoutersinternalrouter-toutessesinterfacesappartiennentàunemêmeareaareaborderrouter(abr)-connecteuneouplusieursareasaubackbone-ilmaintientsplusieurslsdbs,unpourchaqueareabackbonerouter-aaumoinsuneinterfaceconnectéeaubackbone-unabresttoujoursunbackbonerouterautonomoussystemboundaryrouter(asbr)-ilfaitl’importationetensuitelefloodingdesinformationsderoutageenprovenanced’autresprotocolesderoutage(typiquement,BGP)-ànoter:unrouteurpeutapparteniràplusieursdes4catégoriesci-dessus.

Areaconfiguration

-L’informationsurune«area»peutêtretrouvéedans2endroits:--enhabilitantOSPFsuruneinterfacedurouteurnetwork200.0.0.0/16area1.1.1.1--enspécifiantletyped’area(pasnécessairepourlebackbone)area1.1.1.1stub

Expérimentation:Areas

-Q7:vérifiezquechaquerouteurconnaîtlatopologiedétailléeseulementdesapropre«area»(enutilisantlescommandes«showipospfneighbor»et«showipospfdatabasenetwork»)-Q8:vérifiezquechaquerouteurconnaîtcequisepasseàl’extérieurdesapropre«area»,utilisantlacommandeshowipospfdatabasesummary-Q8.A:enparticulier,vérifiezlesvaleurs«Metric»,quimontrentladistance(entermedecout)deladestinationàpartirdel’advertisingabr(areaborderrouter)-Q8.B:vérifiezquelesrouteursdanslesstubareasontuneroutepardefault,tandisquelesrouteursdanslabackbonearean’enontpas-Q8.C:vérifiez,enfin,quellemétrique(«Metric»)estassignéeàladefaultroute

Expérimentation:faultrecovery-Expérimentezlacapacitéde«faultrecovery»d’OSPF-Quandplusieurschemins(routes)ayantlemêmecoutexistent,OSPFgardeenmémoiretoutescesroutes.-Q9:enparticulier,vérifierceladanslerouteurr3,enregardantsaroutepardefault.-Danscecas,Zebrasélectionnelecheminparmilesmultiplesexistants.-Q10:maintenant,dansbb1éliminez(shutdown)l’interfaceeth3enutilisantlacommandeifconfig,attendezquelquessecondsetvérifiezquelcheminsuiventlespaquets(traceroute)_Q11:ensuite,toujoursdansbb1,re-allumezl’interfaceeth3etvérifiezànouveaucommentleroutageestaffectéparcechangement.