De zes uur durende storing van Facebook op 4 oktober 2021 zorgde ervoor dat mensen klauterden om erachter te komen wat er precies aan de hand was. Een deel van het antwoord ligt in een integraal onderdeel van het internet genaamd Border Gateway Protocol, of BGP.
Wat is eigenlijk BGP eigenlijk?
In recente artikelen zijn verschillende zeer toepasselijke metaforen gebruikt om BGP uit te leggen. Mensen hebben het vergeleken met alles, van een luchtverkeersleider tot een constant evoluerende kaart van internet. Het wordt zelfs wel ‘de ducttape van het internet’ genoemd. En ze zijn in orde.
BGP is het protocol dat gegevensverzoeken vertelt welk pad ze moeten nemen om de server te bereiken. Als u bijvoorbeeld inlogt op Facebook of de app opent om uw feed op te halen, leidt BGP uw datapakket langs de snelste route om die gegevens voor u op te halen van de servers van Facebook.
Cloudflare beschrijft BGP als “de postdienst van internet”, in die zin dat het de snelste en meest efficiënte route kiest voor uw verzoeken om hun beoogde server te bereiken. BGP kijkt naar alle beschikbare routes die uw gegevens kunnen nemen en kiest vervolgens wat het als de beste beschouwt.
Vaak betekent dat dat uw gegevens door de autonome systemen worden geleid die het internet als geheel vormen. BGP zoekt uit welke systemen met elkaar praten en stuurt uw gegevens vervolgens langs het snelste pad ertussen zodat het op de juiste bestemming kan aankomen.
Voortzetting van de metafoor van het postkantoor, elk autonoom systeem op internet is als een filiaal van het postkantoor. Ook al heeft je stad duizenden brievenbussen, elk poststuk moet nog steeds door het postkantoor voordat het wordt afgeleverd.
Voorbeelden van autonome systemen op internet zijn:
- Een internetprovider (ISP) zoals Comcast, AT&T, Verizon, enz.
- Een bedrijf als Facebook
- Andere grote organisaties zoals overheden of universiteiten
Mitchell Clark, schrijven voor De rand, vergelijkt BGP met een constant bijgewerkte kaart en autonome systemen met eilanden op die kaart. Omdat er veel te veel “eilanden” op internet zijn om bruggen tussen elk te bouwen, vertelt BGP je waar de bruggen al zijn.
Er zijn in feite twee soorten BGP:
- Externe BGP (eBGP): Het protocol dat door internet in het algemeen wordt gebruikt. In onze postkantoormetafoor is dit verwant aan internationale verzending.
- Interne BGP (iBGP): een intern BGP-protocol dat autonome systemen kunnen gebruiken om gegevens binnen hun eigen netwerken te routeren. Dit is vergelijkbaar met de postdiensten in verschillende individuele landen.
Het is niet nodig om iBGP te hebben ingesteld om toegang te krijgen tot de eBGP van het bredere internet, maar sommige autonome systemen zoals grote technologiebedrijven gebruiken iBGP toch om intern verkeer te routeren.
Hoe werken BGP en DNS samen?
BGP is wat gegevensroutering op internet mogelijk maakt, waardoor het de lijm – of de ducttape – is die het internet bij elkaar houdt. Een deel van de manier waarop BGP werkt, is dat het bruikbare routes voor gegevens adverteert. Als BGP stopt met werken, kunnen die routes niet worden gevonden en verdwijnen ze van het internet, dus de gegevens kunnen nergens heen.
Dat is een deel van wat er op Facebook gebeurde. Facebook’s VP van Infrastructuur Santosh Janardhan zei het zo in zijn blogpost waarin hij de werking van de storing uitlegde:
“Een van de taken van onze kleinere faciliteiten is het beantwoorden van DNS-vragen. DNS is het adresboek van internet, waardoor de eenvoudige webnamen die we in browsers typen, kunnen worden vertaald naar specifieke server-IP-adressen. Die vertaalvragen worden beantwoord door onze gezaghebbende naamservers die zelf bekende IP-adressen innemen, die op hun beurt naar de rest van het internet worden geadverteerd via een ander protocol, het border gateway-protocol (BGP) genaamd.”
Met andere woorden, het DNS-protocol (Domain Name System) van internet functioneert als een lijst met adressen, en BGP is de postdienst die de post naar die huizen stuurt. Post kan niet bezorgd worden als je een adres hebt maar geen routebeschrijving naar het huis.
Janardhan vervolgt:
“…DNS-servers schakelen die BGP-advertenties uit als ze zelf niet met onze datacenters kunnen praten, aangezien dit een indicatie is van een ongezonde netwerkverbinding. Bij de recente storing is de gehele backbone uit bedrijf genomen, waardoor deze locaties zichzelf ongezond verklaren en die BGP-advertenties intrekken. Het eindresultaat was dat onze DNS-servers onbereikbaar werden terwijl ze nog steeds operationeel waren. Dit maakte het voor de rest van het internet onmogelijk om onze servers te vinden.”
Hoe BGP het internet kan verknoeien
Meerdere factoren kunnen van invloed zijn op de route die uw gegevens afleggen via de internetkaart. De kosten kunnen er één zijn, aangezien sommige providers kosten in rekening brengen voor toegang tot hun systemen. De veranderende aard van het internet zelf is een andere.
Autonome systemen en websites kunnen geheel van de kaart van het internet worden verplaatst of verwijderd. Ze kunnen ook serviceproviders wijzigen of toevoegen – een voorbeeld kan zijn dat een universiteit van ISP’s overstapt van Comcast naar AT&T. BGP moet de routes die gegevens kunnen afleggen regelmatig bijwerken om ervoor te zorgen dat ze actueel blijven en dat uw verzoek niet op een doodlopende weg loopt, in de stijl van Wile E. Coyote.
Autonome systemen voeren voortdurend BGP-updates uit zonder incidenten. Maar als ze fout gaan, kunnen ze heel fout gaan. In hun artikel legt Clark uit dat aangezien BGP is ontworpen om zich snel van systeem naar systeem te verspreiden, een fout een rimpeleffect kan hebben zoals we die op Facebook zagen.
De bugs oplossen
Volgens Cloudflare maakte een slechte BGP-update in 2004 door de Turkse ISP TTNet tijdelijk reclame voor TTNet als de beste bestemming voor al het verkeer op internet. Dat resulteerde een hele dag in verbindingsproblemen totdat het probleem was opgelost.
Incidenten als deze wijzen op bepaalde zwakke punten in BGP, namelijk dat de autonome systemen waaruit het internet bestaat, impliciet vertrouwen op wat BGP hen vertelt dat de beste route voor gegevens is. Hoewel glitches niet vaak voorkomen, hebben sommigen gepleit voor de noodzaak om BGP veiliger te maken. Een update op die schaal zou echter vereisen dat elk autonoom systeem op internet in één keer wordt bijgewerkt. Dat betekent dat het op zijn zachtst gezegd een uitdaging zou zijn om grote wijzigingen in het protocol door te voeren.
BGP is slechts een van de vele elementen die het internet laten werken. Als u de basis begrijpt, kunt u in de toekomst navigeren en inzicht krijgen in uitval en andere problemen.