11. Routing

Bild 1: IP header

En av routers primära funktionen är det att vidarebefordra paket till nätverket där mottagaren finns. Destinationens IP-adress finns på varje pakets header. Varje paket inkapslas i ramar (frames). Vid mottagande kapslas ramarna av så att routern kommer åt paketen och läsa av IP adresser registrerade i paketens header.

Bild 1 visar ett diagram som illustrerar IPv4 header där avsändare- och mottagarens IP adresser inkluderas tillsammans med andra styrinformation. Router läser av i första hand destinationsadressen, därefter söker routern information associerat till den avlästa adressen i sin routing-tabell.

Routingprotokoll

Routing information som routrar behöver för att dirigera nätverksdatatrafiken kan hanteras manuellt eller med särskilda protokoll. Med manuellt hantering menas att nätverksadministratörer programmerar routing-information in i routrarnas routing-tabell. Ändringar i nätverket genererar behovet av att uppdatera routing-information i routing-tabeller, vilket kan göras också manuellt så länge nätverket inte växer. Ett sådan arbetssätt kallas “statisk routing“.

Vid statisk routing programmeras allt routing-information manuellt, men när nätverket växer vill man helst använda ett eller flera routing-protokoll. Kommunikation routrar mellan hanteras automatiskt av ett routing-protokoll därmed routing-information programmeras in i routing-tabellerna i självständiga routing-processer. Varje router som har en aktualiserad routing-tabell vill gärna dela tabellen med andra routrar, detta kallas för routing-uppdateringar. Dessa uppdateringar sker regelbundet, hel automatiskt. Det är just detta som uppfattas som “dynamisk routing“.

Dynamiska routing-protokoll

Bild 2: Dynamiska routing-protokoll

Dynamiska routing-protokoll kan indelas i classful och classless. Ett Classful dynamiska routing-protokoll grundar sitt funktion i standard klasser A, B och C. Dessa protokoll ser inte andra nätverk än /8, /16 och /24. När ett classful nätverk delas upp i flera delnät grupperas dessa och andra kontinuerliga nätverksadresser som klass A, B eller C. En som uppsamling av nätverksadresser kallas på engelska route summarization eller route aggregation, inklusive IP aggregation.

När flera nätverksadresser/destinationsadresser grupperas och representeras med en enda nätverksadress minskar mängden av information i routing-tabellen, därmed minskar information i uppdateringar. Nackdelen med route aggregation är att det är svårare för routrar att hitta alternativa route associerade med destinationen.

Dynamiska routing-protokoll kan också indelas i Distansvektor (Distance Vector) och länkstatus (Link State). RIPv1 och IGRP är distansvektor routing-protokoll som fungerar i classful sätt. RIPv2, och EIGRP är distansvektor routing-protokoll som fungerar i classless sätt. OSPF och IS-IS är länkstatus routing-protokoll. OSPF är ett classless routingprotokoll.

Bästa vägalternativ (Best Path)

Bild 3: Olika värde för Metric

En router fastställer den bästa vägen till destinationen grundad i värdet som kallas för “metric”. Vissa routing protokoll såsom RIP, använder antal hopp (hop-count) som metric, där antalet hopp representerar routrar mellan avsändare och destination. Andra routing protokoll såsom OSPF fastställer den kortaste vägen genom att undersöka bland annat bandbredden av länkarna (router till router).

Bild 3 illustrerar hur olika routing-protokoll använder Metric. PC1 skickar iväg ett paket till PC2 och det tas emot förs av Default gateway, R1. Denna router kapslar paketet av och läser av IP adresser. Därefter söker R1 efter en matchning. Om flera alternativ väg (route) finns väljer R1 den bästa grundad just i Metric-värdet. R1 arbetar med routing-protokollet RIP därmed vägen via R3 är den bästa.

Om router R1 kör istället routing-protokoll OSPF väljer R1 vägen via R2 istället. Varför? OSPF har för metric-värde bandbredden som avgörande parameter.

Lika kostnad och lastbalansering

Bild 4: Lastningsbalansering

När en router har flera vägar med samma kostnad (equal-cost metric) till en och samma destination, utför routern lastbalansering (Equal-Cost Load Balancing). Bild 4 illustrerar en lika-lastbalansering i den meningen att alla länkar mellan PC1 och PC2 är lika och det finns ingen skillnad att skicka ett paket till PC2 via R2 eller R4.

Det finns också möjligheten för lastbalansering även om vägar till destination har olika kostnader, något som kallas ojämnt lastbalansering (Unequal-Cost Load Balancing). EIGRP och IGRP är de enda protokoll som kan konfigureras för ojämnt lastbalansering.

Väg fastställande (Path determination)

Att välja och fastställa den bästa vägen till destination grundad i routing tabell och växla till interfacet som är anslutet till den bästa vägen kallas för “Path determination”. Om det saknas routing information i routing tabellen kasserar router paketet och skickar ett ICMP meddelande.

När en router tar emot ett paket i form av ram kapslar routern av L2-header samt trailer för att söka efter destinationens IP adress. Med denna IP adress söker routern i sin routing tabell efter matchningar. Processen kan resultera i följande tre beslut:

  • Directly connected network – IP adressen tillhör till samma nätverk som routerns interface.
  • Remote network – avsändarens nätverk IP adress är inte samma som destinationens
  • No route determined – Om ingen matchning hittas i routing tabellen kasserar routern paketet ifall inte finns konfigurerat en default route. Dessutom skickar routern ett ICMP meddelande till avsändaren.

Ethernet ramar (Datalink frames)

Ethernet är en uppsamling av nätverksteknik som anordnar kommunikationen i ett lokalt nätverk. Den första Ethernet standard, känd som DIX Ethernet version 1, utvecklades under 1970-talet av Digital Equipment, Intel och Xerox.

Bild 5: Ethernet II och Ethernet IEEE 802.3

Ethernet standardiserades år 1982 av standardiseringsorganisationen IEEE. Namnet ändrades till IEEE 802.3 och frame-formatet ändrades också. Eftersom den ursprungliga Ethernet var redan utsprida uppgraderas den till version 2, känd som Ethernet II eller bara Ethernet.

Skillnader mellan dessa två standarder är minimala. Den viktigaste skillnaden är tillägget av fältet Start Of Frame Delimiter  i 802.3, samt en anpassning i fältet Type för att omfatta längden i data fältet. Ethernet II anpassar fältet Type till Length/Type.

  • Preamble och Start Frame Delimiter används för synkronisering mellan sändare och mottagare.
  • Destination MAC Address identifierar mottagaren.
  • Source MAC Address identifierar den sändande interface.
  • Length/Type definierar exakta längden på ramens datafält eller protokoll
  • Data fält innehåller L3 paket
  • Frame Check Sequence fält (4 bytes) används för feldetektering.

Några observationer:

  • Om endast fältet Type används indikerar Ethernet I ramformat.
  • Om endast fältet Length används indikerar IEEE 802.3 ramformat
  • Om fältet Length/Type används indikerar Ethernet II ramformat
  • Om innehållet i fältet Length är lika med eller större än 0x0600 (1536) då innehållet avkodas enligt Ethernet II ram.
  • Om innehållet i fältet Length är lika med eller mindre än 0x05DC (1500) då innehållet avkodas enligt IEEE 802.3 ram.
  • Data och Pad fälten (46-1500 bytes) innehåller den inkapslade L3 PDU eller IPv4-paket.
  • Alla ramar måste vara minst 64 byte långa. 64 – 18 (header) = 46 bytes.
  • Om ett litet paket är inkapslat används Pad fältet för att öka ramstorleken till den minimala (46 byte).
  • Data fältets innehåll används som en del av Frame Check Sequence.
  • Ethernet använder en cyklisk redundanskontroll (algoritm) som går ut på att jämföra mottagarens egen CRC värden med avsändarens CRC värd.

Ethernets historik

Dr Robert M Metcalfe berättar hur Ethernet uppfanns:

Raminkapsling

Efter att data har segmenteras skickas de till nätverksskiktet där segment inkapslas till paket. Det är i nätverksskiktet som läggs till IP adresser för avsändare och mottagaren. Därefter skickas paket till datalänk skiktet där de inkapslas till ramar. Det är i detta skikt som läggs till MAC adresser för avsändare och mottagare. Termen mottagare definierar egentligen enheter som är mellan avsändare och mottagare och som tar emot paket som är på väg till en destination. Mellanliggande mottagarens MAC adresser ändras fram till sista router. Destination siktar till den sista mottagaren.

När avsändare adresserar destinationen har oftast IP adressen men inte MAC adressen. För att inkludera destinationens MAC adressen undersöker avsändaren först om mottagaren finns i samma eller i ett annat LAN.

  • Om mottagaren finns i samma LAN skickas ut en ARP broadcast som begär MAC adressen associerat till mottagarens IP adress.
  • Om mottagaren inte finns i samma LAN skickas ut en ARP broadcast som begär MAC adressen associerat till Default Gateway.

Default Gateway

Den är en router som är anslutet till andra nätverk. När en Default Gateway tar emot något meddelande har denna skyldighet att antingen leverera direkt till mottagare eller vidarebefordra till en annan router som är ansluten till destinationen. Detta kan uppfattas som paketdirigering i  den meningen att med “paket” menas här frame. För att en router ska dirigera paket behöver information. Denna information kan antingen programmeras in av en nätverksadministratör (statisk) eller av ett protokoll (dynamiskt)

Switching funktion

Efter att en Router har fastställt den bästa vägen till destinationen och interfacet som är anslutet till den utför routern följande tre steg:

  1. Kapslar av L2 ram header och trailer med syfte att komma åt destinations IP adress.
  2. Läser av destinationens IP adress och söker efter en eller flera matchningar i sin routing tabell.
  3. Kapslar om L3 paketet till L2 ram (frame) och vidare befordrar ramen ut gränssnittet.

Processen ovan upprepas varje gång ett paket ankommer till en router i sin resa till destinationen. Det innebär att L2 adressen ändras varje gång paketet vidarebefordras. Eftersom ett paket passerar genom flera routrar minskas värdet i TTL med 1 varje gång. När en router tar emot ett paket med TTL = 1 innebär det att värdet blir 0 och då kasserar routern paketet.

På bilden nedan kan följande observeras:

  • PC1 vill skicka ett meddelande till PC2
  • PC2 är i ett avlägset nätversk
  • PC1 adresserar destinationen 192.168.4.10 där nätverksadress är 192.168.4.0/24
  • PC1 kapslar in paketet till L2 ram som i sin tur lägger till mottagarens MAC adress (router R1 MAC adress till interface Fa0/0)
Bild 6: Paketdirigerings process

Detaljer i paket dirigeringsprocess

  • Hur bestämmer PC1 att PC2 är i ett annat nät?
    • PC1 utför en AND operation.
  • Hur får PC1 R1:s MAC adress?
    • PC1 kontrollerar sitt ARP cacheminne. Om adressen inte hittas där skickar PC1 en ARP broadcast och begär MAC adress associerat till IP adress 192.168.1.1 (Default Gateway).
  • Hur vet R1 att det finns ett inkapslat paket i mottagets ram?
    • I L2 header finns fältet Type där R1 läser av 0x800 vilket betyder att Ethernet ram innehåller ett inkapslat IP paket (IP=0x800, ARP=0x0806, IPv6=0x86DD mm.)
  • Hur vet R2 att PC2 finns i ett direkt anslutet nätverk?
    • R2 kapslar av L2 och läser av mottagarens IP adress och känner igen som ett av routerns direkt anslutet nätverk.
  • Hur ska ske leveransen?
    • R2 kontrollerar sin ARP tabell och söker efter PC2:s MAC adress. Om adressen hittas skickar paketet till PC2, annars skickar ett ARP broadcast ut.