"Social decay" van Andrei Lacatusu

Het is ons allen niet ontgaan vandaag: de enorme uitval van Facebook en haar dochterbedrijven zoals WhatsApp, Instagram en Messenger. Dit is niet zoals eerdere storingen die het platform had die beperkt waren tot bepaalde regio’s of diensten, en na enkele minuten verholpen waren.

Dit omdat de oorzaak van de storing van vandaag veel complexer is dan eerdere storingen die vermoedelijk “software bugs” waren die snel en gemakkelijk gecorrigeerd kunnen worden binnen het wereldwijde platform.

In deze blogpost probeer ik op een versimpeld te toe te lichten wat er vandaag is gebeurd, de impact hiervan, en waarom dit niet snel opgelost kan worden.

Of beluister mijn interview op Paradise FM over dit onderwerp:

Het internet is een complex netwerk van computers die allemaal met elkaar moeten communiceren, hierbij komt dat de gebruikers van de computers (wij, de mens) niet direct “computertaal” spreken en dus op een voor ons toegankelijke wijze computers moeten instrueren.

De diensten die dit regelt voor Facebook zijn vandaag de oorzaak van de storing.

DNS

Dit is de dienst die het voor de mens toegankelijk maakt om het internet te navigeren. DNS, of Domain Name Services, wordt vaak vergeleken met het digitale equivalent van een telefoonboek.

Door DNS kunnen we namelijk gemakkelijk internet “domeinen” omzetten naar concrete (IP) adressen die computers nodig hebben om uiteindelijk verbinding te maken met (bijvoorbeeld) een bepaalde website, app of mailserver.

Als voorbeeld: als je bijvoorbeeld dit artikel nu leest dan heeft jouw device in de achtergrond het domein michel.greijmans.co omgezet naar een IP-adres, in dit geval: 45.71.158.53.

Achter elk domein zit dus een DNS dienst die ervoor zorgt dat zijn/haar domein is om te zetten naar (voor computers) bruikbare IP-adressen.

BGP

Vervolgens weet de machine welk IP er benaderd moet worden voor een bepaalde website of app, zoals vandaag Facebook. Maar dan zijn we er nog niet. Het internet is een complex en gigantisch computernetwerk waar je je in moet weten te navigeren.

Bedenk maar eens dat je op vakantie bent in een onbekend land, je bent aangekomen op de airport en wilt vanuit de airport naar je hotel. Wat hebben we nodig?

  1. We weten hoe ons hotel heet (we hebben deze uiteraard zelf geboekt toch?), maar wat is het adres?
    Oftewel: we typen facebook.com in onze browser, en dan moet je device weten uit te vogelen wat het digitale (IP) adres is van de dienst. Zoals zojuist beschreven wordt dit gedaan met DNS.
  2. Vervolgens weten we het adres van het hotel, of het digitale equivalent: het IP-adres, en moeten we de weg, oftewel de route naar onze bestemming vinden.

Het distribueren van internetverkeer wordt gedaan door routers, je kan ze het beste vergelijken als tram, bus of treinstations. Dit zijn koppelpunten die passagiers (of het digitale equivalent: datapakketten) naar het volgende tussenstation sturen of hun eindbestemming.

Visualisatie van het BGP protocol (via Wikicommons media)

De dienst dit mogelijk maakt is BGP (Border Gateway Protocol), deze dienst die genereert als het ware de (digitale) landkaart die vervolgens gebruikt wordt om route uit te stippelen van je beginpunt (source) naar je eindbestemming (destination).

Om het nog complexer te maken: het internet leeft en is constant aan het veranderen. Een adres wat vandaag fysiek op locatie A is, zou morgen eventueel op een heel andere locatie vindbaar kunnen zijn. Deze “navigatiekaart” is dus constant aan het veranderen, en het communiceren (technische term: announcing) van deze veranderingen wordt gedaan met BGP.

Deze dienst is behoorlijk complex en heb je als eindgebruiker nooit mee te maken, alleen jouw internetprovider komt hier mee in contact.

Dus wat is er met Facebook gebeurd vandaag?

Wat al snel duidelijk was bij de eerste meldingen van deze uitval was dat de DNS van Facebook en haar dochterbedrijven/diensten ineens niet meer werkte.

Bij nader onderzoek bleek dat niet alleen deze dienst niet reageerde (wat bijvoorbeeld het geval kan zijn bij een misconfiguratie of mogelijk een aanval) maar compleet onvindbaar was op het internet! Toen was het duidelijk: er is iets mis met de BGP van Facebook.

Visualisatie van facebook BGP routes (via cloudflare.com)
Visualisatie van facebook BGP routes (via cloudflare.com)

Analisten zagen dat vlak voor de storing grote delen van de facebook adressen van het internet werden ge-“ withdrawn” (onttrokken) van het internet, dus werden opgeheven. Waaronder dus de IP-adressen waarop de DNS diensten draaien van Facebook en haar dochterapps.

De exacte oorzaak hiervan is (op dit moment) niet bekend, ik hoop dit ooit nog te weten te komen want het zal uitermate interessant zijn! Wat mogelijk gebeurd kan zijn is een misconfiguratie van een engineer, sabotage of mogelijk een hack in de core routers van Facebook.

Het vervelende is dat dit niet zomaar gefikst is. Los van dat Facebookmedewerkers niet eens fysiek toegang kunnen krijgen tot hun werkplek omdat hun toegangssysteem nu niet meer werkt, zal het uren duren voordat de correcte route aanpassingen zijn gedistribueerd en toegepast op het complete internet. Dit proces duurt normaal tussen de 4-24 uur!

Vandaag is dus een mooie Facebook afkick-dag! Goed moment om even stil te staan bij de mogelijke afhankelijkheid die we hebben opgebouwd van deze grote bedrijven.


About Michel

Michel is a ICT professional on the beautiful island of Curaçao. Founded Sincere ICT Solutions B.V. in 2013 from which we provide managed ICT services and consultancy for a wide range of customers.