OSPF up-to-date

Deze alinea staat bovenaan om het overzicht te behouden. Lees verder bij OSPF als u wilt weten hoe en wat ospf is. De stand van zaken medio 2004 wordt hier beschreven. Verder wordt hier ook verslag gedaan van onze bevindingen van ospf. Voor meer informatie mail roland of rick. Zie vrijwilligersmail voor de e-mail adressen. Inmiddels gebruiken we een eigen dynamisch routerings programma, zie DynamicRouting.

nodes

Hier een lijst met nodes, de quagga versie en recente problemen:

source

De source moet eerst gepatched worden zodat het uitzetten van update niet gedaan wordt. Update van Dirkx moet nog toegepast woden

in zebra/kernel_socket.c verander:

in:

En dan runnen met (csh)

Op jasper:/usr/src/quagga-0.96.5/ Voer daar uit:

make clean
./configure --enable-snmp \
--sysconfdir=/usr/local/etc/zebra \
--enable-user=root \
--enable-group=wheel
touch /root/foo
make
make install
find ./ --newer /root/foo

Dit laatste levert een lijst op met alle files die na de make gemaakt zijn. En laat dus ook zien of er meerdere dingen geinstalleerd zijn dan de ospfd en zebra binaries.

OSPF

Alle data die een computer verstuurt via het inter/wifi net gebeurt in pakketjes. Die pakketjes hebben een bepaalde bestemming en komen ergens vandaan. Als een netwerk uit meerdere paden bestaat, die ook nog regelmatig veranderen, dan moet een systeem/methode bedacht worden die ervoor zorgt dat de pakketjes de goede weg volgen. Vergelijk het maar met wegwijzers aan de kant van de weg en de borden met filemeldingen. Zonder kaart, wegwijzers en filemeldingen zou het een chaos worden op de wegen.

Er zijn verschillende systemen hiervoor ontwikkeld zoals RIP, BGP, IGRP en OSPF. OSPF wordt gebruikt door Wireless Leiden.

De afkorting OSPF staat voor 'Open Shortest Path First', wat de naam is van het gebruikte routerings algoritme, d.w.z. de rekenmethode voor de beste route op basis van de actuele toestand van de verbindingen. Omdat OSPF de routering aanpast aan de actuele, veranderende situatie wordt dit een dynamisch routeringsprotocol genoemd.

Voordelen OSPF

De oudere routeringsmethodes konden maar rekening houden met maximaal 15 hops, wat zoiets wil zeggen als ze konden de weg maar bepalen tussen 15 kruispunten. OSPF daarintegen heeft geen limiet.

-OSPF kan rekening houden met de drukte op het netwerk en de kwaliteit of kosten van de verbindingen.

-OSPF past zich heel snel aan, als er bijvoorbeeld een netwerkverbinding uitvalt dan berekent het protocol binnen enkele seconden een nieuwe route, andere methodes deden hier minuten over.

-OSPF hoeft niet in detail te weten hoe het netwerk in elkaar zit. Het kan pakketten naar knooppunten sturen en erop 'vertrouwen' dat ze dan goed bezorgd worden.

Om te zorgen dat OSPF functioneert, moet er een database aangelegd worden met "link states" : beschrijvingen van de actuele verbindingen. In deze database staat wat voor soort verbinding er is, wie met wie verbonden is en wat de "kosten" van een verbinding zijn. Voor de interlinks en knooppunten worden deze gegevens in vormen van IP nummers en subnetmasken opgeschreven.

Globaal: de werking van OSPF

OSPF is een zogenaamde link status protocol: het is gebaseerd op de actuele status van de interlinks, zoals die door een node wordt gezien. Elke node verzamelt voortdurend informatie over zijn interlinks en deelt die informatie met alle andere nodes. Alle nodes hebben een database met informatie over alle interlinks in het netwerk. De informatie over de interlinks van een node wordt vastgelegd in LSA's (Link State Advertisement). LSA's hebben een volgnummer, zodat duidelijk is welk LSA het meest recent is en een veld dat de ouderdom aangeeft (als de maximale leeftijd wordt overschreden wordt een LSA verwijderd uit de databases). De MaxAge is 3600 seconden.

1} Elke node bepaalt regelmatig (elke 5 seconden) welke interlinks hij heeft (d.m.v. 'Hello' pakketjes) en wat de kwaliteit/kosten van die interlinks zijn. Als er ook een pakketje van de andere kant komt (de link is dus bidirectioneel) kijkt de node of de link-statusgegevens (LSA) kloppen met zijn link status database.

Actualiseren van de interlinks database: de nodes aan beide einden van de interlink sturen elkaar alle LSA headers toe en over en weer worden updates uitgewisseld. Dit gebeurt op gezette tijden (elke 1800 seconden) of als er wat veranderd is aan de link status. Als de twee nodes volledig gesynchroniseerd zijn (ze zijn dan 'fully adjacent'), wordt de nieuwe info doorgegeven aan de andere nodes (dit heet 'reliable flooding').

Alleen als de databases tussen twee nodes volledig gesynchronizeerd zijn stuurt een node data over de interlink.

2) Elke node bouwt op basis van de ontvangen LSA's een complete database van interlinks op. Met deze gegevens berekent elke node door middel van het Dijkstra OSPF algoritme de beste routes. Deze worden vastgelegd in de routeringstabel. Een interlink wordt alleen in de routering opgenomen als beide nodes (aan weerszijde van de interlink) de route adverteren.

3) Als er dingen veranderen in het netwerk worden er nieuwe LSA's verstuurd, de databases van de link states worden opnieuw gesynchroniseerd tussen de nodes en de routeringstabellen worden aangepast.

Het OSPF algorithme maakt het mogelijk om de kwaliteit of 'kosten' van een verbinding als variabele mee te nemen in de beslissing welke route het pakketje moet volgen. De netwerkbeheerder mag zelf kiezen wat voor parameter zij hiervoor wil gebruiken. Het moet een positief geheel getal zijn van 16 bits. Een manier is bijv. om kosten te definieren als 100.000.000/bandbreedte in bits per seconde (bps). Uit deze formule is dus te zien dat het meer 'kost' om data over een 1Mbit verbinding te sturen dan over een 11Mbit verbinding.Voor ons netwerk zouden we ook de 'latency' van een verbinding kunnen gebruiken. Die kun je ook optellen voor een multi-hop verbinding en is dan een maat voor de overall kwaliteit van die verbinding. In zijn eenvoudigste vorm is 'kosten'=1 en wordt simpelweg het aantal hops geminimaliseerd.

Combinaties

Zoals eerder vermeld is het mogelijk om netwerken op te splitsen in gebieden ('OSPF Area'). Het grote voordeel hiervan is dat er niet heel grote databases moeten worden opgezet en dat de synchronisatie van de LS-databases sneller gaat. Het maximale aantal nodes in een area hangt af van de gebruikte software implementatie. Getallen van 50 tot 500 worden genoemd. Een ander voordeel is dat de routering gewoon blijft werken binnen een area als er in een andere area problemen zijn. Nadeel is wel dat je aan de randen speciale routers moet gaan configureren (area border routers, ABR), en dat de routes niet altijd langs de kortste weg gaan (namelijk altijd via de ABR). Voor de regio Leiden zou het logisch zijn aparte gebieden te maken voor bijv. Leiden, Leiderdorp, Oegstgeest, Jacobswoude, Kaag etc.

Op Internet wordt OSPF vaak gecombineerd met BGP (Border Gateway Protocol). BGP wordt dan gebruikt voor de hoofdstructuur van het Internet (de verbindingen tussen de ISP's).

Technische implemtatie

Wij maken gebruik van de open source (GPL) implementatie van het OSPF protocol, zie http://www.zebra.org en http://www.quagga.net Toen het netwerk groter werd ontstond een stabiliteitsprobleem. Als een verbinding voor langere tijd wegviel, kwam deze verbinding op radio en ip niveau wel weer op, maar ospf kon deze link niet meer initialiseren. Waardoor de ene helft van het netwerk niet meer met de rest kon communiceren. Om deze reden zijn we (tijdelijk?) overgegaan op statisch routering (zie StaticRouting).

Meer informatie

Cisco OSPF Design Guide HTML

Cisco OSPF Design Guide PDF

boek: John T. Moy, "OSPF Anatomy of an Internet Routing Protocol", 1998 Addison Wesley, ISBN 0201634724

OSPF (last edited 2009-09-28 06:29:41 by localhost)