Routing

Routrar spelar en central roll i nätverk genom att vidarebefordra paket från avsändarens nätverk till mottagarens nätverk. För att kunna göra detta använder de sig av styrinformation inkapslad i varje paket, såsom IP-adressering, som används för att dirigera paketen hela vägen fram till destinationsnätverket. Varje paket inkapslas i ramar (frames), och vid mottagande avkapslar routern ramarna för att komma åt paketen och läsa av de IP-adresser som är registrerade i paketens header.

Förutom IP-adressering behöver routrar mer information om hur nätverkstrafiken ska dirigeras. Denna typ av information kallas routing-information, och routrar kan få den antingen genom manuell konfiguration eller genom användning av speciella routing-protokoll. Vid manuell hantering programmerar nätverksadministratörer routing-informationen direkt in i routrarnas databaser. Detta arbetssätt kallas ”statisk routing”, eftersom routrarna agerar som robotar som använder förprogrammerad information för att dirigerar nätverkstrafiken. Det fungerar bra för mindre nätverk med få förändringar. För dynamisk hantering används routing-protokoll som konfigureras att hantera routing-informationen automatiskt, utan behov av administratörs ingrepp. För att använda dessa protokoll måste de först installeras och konfigureras på routrarna. Sedan kommunicerar routrarna med varandra och bygger upp egna eller gemensamma routing-tabeller. Vid förändringar i nätverket rapporterar routrar dessa ändringar till varandra.

Hur routing-information uppdateras mellan routrarna varierar beroende på vilket routing-protokoll som används. Vissa protokoll rapporterar uppdateringar så fort något ändras i routing-informationen, medan andra väntar på ett tidsschema. När uppdateringar skickas enligt ett tidsschema kallas det ”periodiska uppdateringar”, medan uppdateringar som skickas omedelbart vid ändringar i routing-information kallas ”triggered updates”.

Oavsett hur routing-informationen uppdateras mellan routrarna så sker detta helt automatiskt, och detta är vad som avses med ”dynamisk routing”. Detta tillvägagångssätt är fördelaktigt för större nätverk där förändringar kan vara frekventa och manuell konfiguration blir opraktiskt eller ineffektivt.

Väg fastställande (Path determination)

Path determination, eller vägbestämning, är processen att bestämma den optimala rutten eller vägen för att dirigera datapaket från avsändaren till mottagaren över ett eller flera nätverk. Path determination görs vanligtvis av nätverkshanterare som routrar med hjälp av routing-protokoll. Routing-protokollen utbyter information om nätverket och använder olika metoder och algoritmer för att bestämma den bästa vägen för datapaket baserat på faktorer som tillgänglighet, hastighet, trafikbelastning och andra parametrar.

När en avsändare adresserar paketets destination, innebär det att avsändaren känner till destinations-IP-adressen men inte MAC-adressen. För att inkludera destinations MAC-adressen måste avsändaren först få tag på den. Här kommer ARP-protokollet till användning (mer om ARP kommer att diskuteras senare).

Avsändaren undersöker om mottagaren finns i samma lokala nätverk (LAN) eller i ett annat nätverk. Om mottagaren finns i samma LAN, skickar avsändaren en ARP-broadcast för att begära mottagarens MAC-adress kopplat till dess IP-adress. Om mottagaren inte finns i samma LAN, skickar avsändaren en ARP-broadcast för att begära MAC-adressen kopplat till default gateway. När en default gateway tar emot ett sådant meddelande är den skyldig att svara direkt till avsändaren och skicka sin MAC-adress.

Bild 1: Paketdirigerings process

När avsändaren har fullständig adressinformation skickas datapaketet till sin ”default gateway”. När routern tar emot paketet kapslas det av L2-header och trailer, vilket gör att routern kan komma åt det inkapslade paketet. I paketets header finns viktig information, inklusive destinationens IP-adress. Med hjälp av denna IP-adress söker routern i sin routingtabell efter den bästa vägen till destinationen.

Sökprocessen kan leda till tre olika beslut:

  1. Directly connected network (Direkt anslutet nätverk) – IP-adressen tillhör samma nätverk som routerns gränssnitt.
  2. Remote network (Fjärrnätverk) – avsändarens nätverks-IP-adress är inte samma som destinationens.
  3. No route determined (Ingen väg fastställd) – Om ingen matchning hittas i routingtabellen, och ingen standardväg (default route) är konfigurerad, kasserar routern paketet. Dessutom skickar routern ett ICMP-meddelande till avsändaren.

Att välja och fastställa den bästa vägen till destinationen baserat på routing-tabellen och koppla till det interfacet som är anslutet till den bästa vägen kallas ”Path determination” på engelska.

Metric

För att dirigera nätverkstrafik använder routrar ett värde som kallas för ”metric”. Värdet i Metric används av routing-protokoll aktiverat i routern för att bedöma och jämföra olika vägar och välja den bästa vägen till en destination. Varje routing-protokoll använder olika parametrar och algoritmer för att beräkna sin metric.

Låt oss titta på exemplet nedan:

Bild 2: Olika värde för Metric

I illustrationen ovan visas hur olika routing-protokoll använder metric. RIP använder antalet hopp, vilket innebär antalet routrar som ett paket passerar innan det når destinationen. När PC1 skickar ett paket till PC2, tas det först emot av R1. Denna router tar bort paketets inramning och läser av IP-adresserna. Därefter letar R1 efter en matchning i sin routing-tabell. Om det finns flera alternativa vägar i routing-tabellen väljer R1 den bästa baserat på metric-värdet. I fallet med RIP-routing-protokollet väljer R1 vägen via R3 eftersom det anses vara den bästa vägen enligt dess metric.

Om router R1 istället använder OSPF-routing-protokollet kommer den att välja vägen via R2 istället, eftersom överföringshastigheten är mycket snabbare än 56 kbps.

Lika kostnad och lastbalansering

När en router har flera vägar med samma kostnad eller metric-värde till en destination, implementeras lastbalansering (Equal-Cost Load Balancing). Det innebär att routern fördelar trafiken jämnt över de tillgängliga vägarna. I exemplet nedan är alla vägar lika mellan PC1 och PC2.

Bild 3: Lastningsbalansering

Det innebär att i detta exemplet inte finns någon skillnad i att skicka paketet till PC2 via antingen R2 eller R4. Lastbalansering kan även tillämpas när vägarna till en destination har olika kostnader, vilket kallas ojämn lastbalansering (Unequal-Cost Load Balancing). Dock är EIGRP det enda protokollet som kan konfigureras för att stödja ojämn lastbalansering.

Switching funktion

Efter att en router har bestämt den optimala vägen till destinationen och identifierat det utgående interfacet, utför routern en switch-funktion där paketet byter från det inkommande interfacet till det utgående interfacet. I denna process omsluts paketet av en ram och styrinformationen uppdateras. Denna process upprepas för varje paket som passerar genom en router på sin väg till destinationen. Det innebär att L2-adressen (MAC-adressen) ändras varje gång paketet vidarebefordras till en ny router. Dessutom minskas TTL (Time-to-Live) med 1 för varje router som paketet passerar. När en router tar emot ett paket med TTL = 1, innebär det att värdet blir 0, och routern kasserar paketet och kan eventuellt skicka en meddelande till avsändaren.

Några frågor och svar om hur paket dirigeras till sin destination:

  • Hur bestämmer PC1 att PC2 är i ett annat nät?
    • PC1 utför en logisk AND-operation mellan sin egen IP-adress och sin nätmask för att få fram sin nätverksadress och jämföra med destinationens nätverksadressen. Om resultaten inte matchar, vet PC1 att PC2 är i ett annat nätverk.
  • Hur får PC1 R1:s MAC adress?
    • PC1 kontrollerar sin ARP-cache (Address Resolution Protocol) för att se om den har R1:s MAC-adress lagrad. Om MAC-adressen inte finns i cachen, skickar PC1 en ARP-broadcast för att begära R1:s MAC-adress associerad med IP-adressen 192.168.1.1 (Default Gateway).
  • Hur vet R1 att det finns ett inkapslat paket i den mottagna ramen?
    • I L2-huvudet (Layer 2) finns det ett fält som kallas ”Type”. R1 läser värdet av detta fält och om det är 0x800, indikerar det att Ethernet-ramen innehåller ett inkapslat IP-paket. Andra värden som används för olika protokoll inkluderar ARP (0x0806), IPv6 (0x86DD), osv.
  • Hur vet R2 att PC2 finns i ett direkt anslutet nätverk?
    • R2 kapslar av L2-huvudet och läser av mottagarens IP-adress. Genom att jämföra den med sina egna nätverkskonfigurationer kan R2 avgöra om PC2 befinner sig i ett direkt anslutet nätverk (anslutet till R2).
  • Hur ska ske leveransen?
    • R2 söker i sin ARP-tabell för att avgöra om den har PC2:s MAC-adress lagrad. Om MAC-adressen finns i tabellen skickar R2 paketet direkt till PC2. Om MAC-adressen inte finns i tabellen skickar R2 en ARP-broadcast för att söka efter PC2:s MAC-adress. När R2 mottar svar från PC2 med dess MAC-adress, kan R2 leverera paketen till PC2.