Border Gateway Protocol

Border Gateway Protocol, BGP, jämförs ofta med GPS-systemet eller postväsendet (med kartkoordinater eller postnummer).

BGP är ett routingprotokoll som binder samman internet. Det fungerar genom att bygga en tabell med IP-nätverk, så kallade prefix, vilken sedan anger åtkomst till nätverk mellan autonoma system, AS. Protokollet beskrivs som ett path vector-protokoll. BGP använder inga tekniska mätvärden utan baserar sina routingbeslut på policyer och regler. Nuvarande version av BGP är 4, som är standardiserad i RFC 1771.

BGP stödjer classless interdomain routing, CIDR, och använder sig av route aggregation för att minska storleken på routingtabellen. BGP är ett av internets äldsta protokoll. Version 4 har använts på internet sedan 1994, alla tidigare versioner anses föråldrade och används inte längre.

BGP skapades för att ersätta routingprotokollet Exterior Gateway Protocol (EGP) för att tillåta fullständigt decentraliserad routing. Detta behövdes för att tillåta stängningen av NSFNET som var internets ryggrad. Detta resulterade i att Internet kunde bli ett fullständigt decentraliserat system.

Stora privata IP-nätverk kan också använda sig av BGP. Ett exempel kan vara att sammankoppla ett antal stora OSPF-nätverk där OSPF själv inte klarar av storleken. En annan anledning till att använda BGP kan vara för att införa redundans via flera internetleverantörer.

De flesta internetanvändare använder inte BGP direkt men eftersom alla internetleverantörer måste använda BGP för att skapa routing mellan varandra blir BGP ett av de viktigaste protokollen på internet. BGP har med tiden visat sig vara sårbart, om det attackeras eller utnyttjas kan det skapa avbrott eller trafikproblem på internet. Flera sådana incidenter har skett där någon antingen medvetet eller av misstag har lagt in felaktig information i BGP. Det har resulterat i att trafiken omdirigerats vilket skapat omfattande avbrott i internettrafiken.

BGPs funktion 
BGP-grannar, eller peers, bestäms via en manuell konfiguration mellan routrar för att skapa en TCP-session över port 179. En BGP-router skickar varje minut ett 19 byte långt keepalive-meddelande för att hålla förbindelsen levande. Bland routingprotokollen är BGP unikt för sitt sätt att använda TCP som transportprotokoll.

När BGP används inom ett autonomt system kallas det för Internal BGP (IBGP, Interior Border Gateway Protocol). När BGP används mellan autonoma system så kallas det för External BGP (EBGP Exterior Border Gateway Protocol). Om en BGP-router skall routa IBGP trafik så kallas den för transitrouter. Routrar som finns i det autonoma systemets utkanter för att byta information med andra internetleverantörer kallas för border- eller edge-routrar. 

Alla routrar i samma AS som skall delta i BGP-routningen måste vara konfigurerade i ett fullt anslutet nät. Varje router måste vara konfigurerad för att utbyta information med alla andra routrar. Detta skapar uppenbara skalningsproblem eftersom antalet anslutningar ökar kvadratiskt med antalet routrar. För att lösa detta finns det två lösningar inbyggda i BGP; route reflectors och confederations.

Route reflectors minskar antalet anslutningar som behövs i ett AS. En ensam router (eller två för redundans) kan konfigureras som reflektorer, andra routers i nätverket kan sedan konfigureras att peera med dessa. 

Confederations används i mycket stora nätverk där stora AS kan konfigureras som mindre, mer lätthanterliga, interna AS. Confederation kan användas i förening med route reflectors.

BGP problem och åtgärder

Route flapping 
En funktion som kallas "dampening" är inbyggd i BGP för att lindra effekterna av route flapping. Fladdrande routes kan orsakas av WAN-länkar eller fysiska interface som går sönder, felkonfigureras eller av felhanterade routes. Utan dampening kan routes läggas till och dras tillbaka ofta från routingtabellen vilket kan leda till hög processorbelastning på routrar samt försämrad stabilitet i routningen.

Med dampening fördröjs en fladdrande route exponentiellt. Första gången när en route blir oåtkomlig men fort återkommer, oavsett orsak, så gör dampeningen ingenting, för att tillåta normal felhantering i BGP. Nästa gång undanhåller BGP prefixet en förutbestämd tid, som ökar exponentiellt. Efter att detta onormala tillstånd slutat och en passande tid har gått för den fladdrande routen så blir den åter insatt i tabellen och dess status återställs. Dampening kan också lindra mot illasinnade Denial of Service-attacker. Tiderna är mycket konfigurerbara.

Då nätverkens ryggradslänkar och routerprocessorerna har blivit kraftfullare så föreslår vissa nätverksarkitekter att flap dampening inte längre är så viktigt som det tidigare har varit eftersom ändringar i routingtabellen absorberas mycket fort av routers. Några arkitekter har till och med föreslagit att dampening kan göra saken värre i dessa miljöer. Detta är ett kontroversiellt ämne och det bedrivs mycket forskning här.

Routingtabellers tillväxt 
Ett av de största problemen för BGP och Internets infrastruktur som helhet kommer från tillväxten av routingtabellen. Om den globala routingtabellen växer till den storleken att vissa äldre och mindre kapabla routrar inte kan klara av de minnes- eller CPU-krav som behövs för att underhålla tabellen så kommer dessa routrar att sluta vara effektiva vägar mellan de delar av internet de sammankopplar. Ett annat problem med detta, och kanske ännu värre, är att stora routingtabeller tar längre tid att stabiliseras efter stora anslutningsförändringar vilket gör att nätverksanslutningarna blir osäkra eller till och med otillgängliga.

Fram till 2001 växte den globala routingtabellen exponentiellt, vilket kunde leda till vittspridda anslutningsproblem. Ett försök att förhindra detta är en gemensam ansträngning från internetleverantörer att hålla den globala routingtabellen så liten som möjlig, genom att använda CIDR och route aggregation. Detta har sänkt tillväxthastigheten på routingtabellen till en linjär process, vilket gör att äldre routrar kan användas mycket längre innan de måste ersättas.

Incidenter 
En omtalad incident med BGP inträffade 1997 då en liten internetleverantör i Florida oavsiktligt annonserade specifika nätblock på ett sätt som gjorde just dem till den mest attraktiva destinationen för andra routrar. Resultatet av detta blev att en stor del av internets trafik dirigerades till denna lilla leverantör som inte hade möjlighet att hantera den massiva trafik som det resulterade i. Trots att operatörens system blev överbelastat på grund av trafiken, fortsatte det att komma vilket ledde till ett stort avbrott i internettrafiken.

År 2008 ville Pakistan Telecom blockera åtkomsten till Youtube för medborgarna i landet. Det gjordes genom att annonsera BGP-rutter till Youtube som passerade Pakistan Telecoms nät. Rutterna nådde utanför Pakistan och ledde till att stora delar av internet skickade sin Youtube-trafik till Pakistan Telecom. Den stora mängden trafik kunde inte hanteras av internetleverantören vilket ledde till ett avbrott.

Källor 

Nätverksskiktsprotokoll

Noter