AS 100AS 200AS 300AS 400Tier 1AS 1

Border Gateway Protocol

11 min lästNätverk

Internet är inte ett nätverk – det är tiotusentals oberoende nätverk som hålls samman av ett enda routningsprotokoll från 1989. BGP bestämmer hur paket hittar sin väg från något av dessa nätverk till något annat. När BGP går sönder går internet sönder; hela länder har gått offline på grund av en felskriven rutt. Att förstå det förklarar varför.

Hela artikeltexten finns på engelska nedan.

BGP (Border Gateway Protocol) är routingprotokollet som används mellan stora oberoende nätverk på Internet. Det finns cirka 75 000 sådana nätverk – kallade autonomous systems – och BGP är hur de berättar för varandra vilka IP-adressintervall de kan nå och på vilken väg. Varje paket som korsar ISP:s gränser dirigerades av ett BGP-beslut någonstans.

Grundidén

Varje autonoma system (AS) tillkännager "Jag kan nå dessa IP-prefix" till sina grannar. Grannarna sprider tillkännagivandet och lägger fram sitt eget AS-nummer. Ett mottagande AS ser något i stil med "prefix 8.8.8.0/24 kan nås via AS 15169 (Google) via AS 3356 (Lumen) via AS 1234 (din ISP)." Varje AS utvärderar dessa vägar genom konfigurerbar policy – ​​kortaste AS-väg, billigaste peering-relation, lägsta latens, vad nätoperatören än bestämmer – och installerar den vinnande vägen i sin vidarebefordrantabell.

BGP kör över TCP på port 179. Två BGP-routrar upprättar en session och utbyter stegvis uppdateringar när rutter ändras. Det finns inga sändningar eller översvämningar; allt är unicast.

eBGP vs iBGP

Ttvå varianter av BGP-sambo:

  • eBGP (extern BGP) går mellan två olika autonoma system. Det är hur en Tier-1-operatör lär sig rutter från en kund-ISP eller hur Google pear med Comcast på en internetbörs.
  • iBGP (intern BGP) kör inside en enda AS för att sprida de externa rutterna i alla andra ruttarna som lärts av samma routrar. Utan iBGP skulle en multi-router AS inte kunna känna till sin egen kollektiva syn på Internet.

Policy, inte kortaste vägen

Till skillnad från interiörprotokoll (OSPF, IS-IS) som hittar den matematiskt kortaste vägen, optimerar BGP1 nätverksoperatörens XPL3-bussar policy. En typisk internetleverantör föredrar:

  1. Rutter genom sina egna kunder (de betalar det för transit) framför peers (inga pengar) framför uppströmsleverantörer (den betalar dem).
  2. Kortare AS-vägslängder, tiebreaking på lokala preferenser och lägsta router-ID.XPLZi-värde försummat mellan peers.

Detta betyder att BGP-rutter kan vara avsiktligt suboptimala i latens eller hoppräkning om policyn säger det. Det är designen — BGP är protokollet där affärsmodellen möter tråden.

De berömda felkonfigurationerna

BGP har orsakat några av de största internetavbrotten i historien. Pakistan Telecom satte hål på YouTube globalt 2008 genom att tillkännage en mer specifik rutt. China Telecom absorberade kort 15 % av all internettrafik under 2010 genom att tillkännage tiotusentals prefix som det inte ägde. Facebooks massiva avbrott 2021 kom från ett BGP-uttag som tog deras auktoritativa DNS-servrar bort från Internet, varefter de inte ens kunde ta sig in i sina egna byggnader för att fixa det.

Det gemensamma temat: BGP är ett förtroendebaserat protokoll. Tills nyligen fanns det ingen kryptografisk verifiering av vem som kunde meddela vilka prefix. Den som tillkännagav det högst, trodde Internet.

RPKI: den långsamma fixen

The Resource Public Key Infrastructure (RPKI) låter adressinnehavare kryptografiskt deklarera "endast dessa ASer är auktoriserade att tillkännage mina prefix." Routrar som validerar RPKI släpper obehöriga meddelanden. RPKI-distributionen har accelererat till och med 2024–2026 och täcker nu mer än 50 % av routade prefix; de flesta större Tier-1-operatörer och CDN:er validerar. Det är inte en komplett lösning – RPKI säger vem som har behörighet att originate ett prefix, inte vem som får transit det – men det har eliminerat många enkla kapningar. IP-adressen löser sig till den av dussintals fysiska servrar som är närmast. Cloudflare, Googles 8.8.8.8 och Quad9s 9.9.9.9 använder alla BGP anycast. När du ansluter till en av dessa adresser väljer BGP-routing den närmaste instansen åt dig utan DNS-baserad geo-omdirigering.

Varför det är svårt att ersätta

BGP har välkända svagheter: långsam konvergens (minuter för att sprida ruttändringar), förtroendebaserad som standard, skalas linjärt med antalet prefix (för närvarande cirka 1 miljon IPv4 + 200 000 IPv6). Flera forskningsprojekt har föreslagit ersättningar genom åren; ingen har utplacerats. Anledningen är sökvägsberoende: varje router på Internet talar BGP, varje operatör har byggt operativ praxis kring det, och ingen vill vara först med att byta till något annat. Protokollet från 1989 är under överskådlig framtid Internets protokoll.

Vanliga frågor

Är BGP något jag behöver förstå som en normal användare?
Inte direkt, men det förklarar nyheten. När du läser om "en BGP-läcka" eller "ett större avbrott från ett AWS-meddelande", läser du om routingprotokollet som beslutade att dina paket inte kunde nå en tjänst. Att förstå BGP förvandlar dessa rubriker från vaga till tydliga.
Varför har Internet så många autonoma system?
Varje meningsfull nätoperatör vill ha sin egen. Universitet, ISP:er, molnleverantörer, stora företag, innehållsleveransnätverk - alla med flera anslutningar till Internet får vanligtvis ett ASN för att hantera sin egen routingpolicy. Det nuvarande antalet är runt 75 000 globalt.
Kan ett litet nätverk meddela vilket prefix det vill ha?
Tekniskt sett ja - BGP själv har ingen verkställighet. I praktiken filtrerar uppströmsleverantörer vanligtvis sina kunders meddelanden mot dokumenterade tilldelningar, och RPKI används alltmer för att validera ursprung. Otillåtna meddelanden glider fortfarande igenom ibland, vilket är hur BGP-kapningar sker.
Hur påverkar BGP VPN-prestanda?
När du ansluter till en kommersiell VPN:s anycast IP väljer BGP den närmaste servern åt dig. Detta kan ändras när som helst om en peering-länk går ner eller en ny väg blir tillgänglig - vilket är anledningen till att ett VPN som kändes snabbt igår kan vara långsammare idag utan ditt fel.
Är BGP svårt att lära sig?
Grundkonceptet är enkelt - "vem kan nå vad, sprida sig till grannar." Det svåra är policyn: hur ruttattribut interagerar med lokala preferenser, MEDs, samhällen, AS-path-manipulation. De flesta nätverksingenjörer som hävdar BGP-expertis menar att de har felsökt tillräckligt mycket av dessa interaktioner för att veta vad som är troligt.
BGP förklarat: Protokollet som håller ihop internet