Wat is BGP en hoe kiest het internetroutes?

Auteur: Gepubliceerd

In het kort: BGP (Border Gateway Protocol) is het protocol waarmee de netwerken die samen het internet vormen informatie uitwisselen over beschikbare routes naar IP-adressen. Het stelt netwerkoperators in staat te kiezen via welke netwerken het verkeer loopt, op basis van hun beleid en overeenkomsten, niet uitsluitend op basis van de verbindingssnelheid. Een fout in die informatie kan ervoor zorgen dat een werkende website voor een deel van de gebruikers onbereikbaar wordt.

Welke rol speelt BGP op het internet?

Het internet bestaat uit veel onderling verbonden netwerken die worden beheerd door telecomoperators, hostingbedrijven, universiteiten en cloudproviders. De basiseenheid bij BGP-routing is een autonoom systeem (AS): een netwerk of groep netwerken met een gezamenlijk beleid voor het kiezen van routes. Een autonoom systeem wordt geïdentificeerd door een ASN-nummer.

Routing is het kiezen van routes waarlangs datapakketten kunnen worden verstuurd. Routers die BGP gebruiken, informeren elkaar over de bereikbaarheid van IP-prefixen, oftewel blokken adressen. Zo’n aankondiging zegt, eenvoudig gesteld: ‘Via mijn netwerk kun je dit adresbereik bereiken.’

BGP verstuurt zelf geen website-inhoud of e-mailberichten. Het levert informatie waarmee routers routingtabellen opbouwen. Die tabellen worden gebruikt om pakketten de juiste kant op te sturen. BGP regelt dus de route waarlangs de communicatie verloopt, niet de dienst aan het einde van die route.

Hoe kiest BGP een route?

Routers zetten BGP-sessies op: verbindingen waarmee ze route-informatie uitwisselen. Wanneer er een nieuwe route beschikbaar komt of een bestaande route niet meer beschikbaar is, kunnen ze de wijziging aankondigen of een eerdere aankondiging intrekken. Daarvoor hoeven ze niet telkens alle bekende routes opnieuw te versturen.

Naast het prefix bevat een aankondiging attributen die de route beschrijven. Een daarvan is AS_PATH: een lijst met de nummers van de autonome systemen waarlangs de route-informatie is doorgegeven. Deze lijst helpt onder meer om lussen te herkennen. Een netwerk kan een route afwijzen als het zijn eigen nummer in de lijst ziet staan.

BGP zoekt niet automatisch de route met de minste vertraging. Een operator kan een bepaalde provider verkiezen vanwege de kosten, een overeenkomst of het eigen beleid voor verkeersbeheer. Een korter AS_PATH kan een selectiecriterium zijn, maar is niet het enige en ook niet altijd het belangrijkste. Het precieze selectieproces hangt af van de configuratie en implementatie.

Er zijn twee toepassingen van hetzelfde protocol:

iBGP vervangt niet alle mechanismen voor interne routing. In uitgebreide netwerken werkt het samen met protocollen die ervoor zorgen dat routers binnen de infrastructuur van de operator bereikbaar zijn.

Voorbeeld: hosting met twee internetverbindingen

Stel dat een hostingbedrijf een eigen autonoom systeem heeft en verbonden is met twee operators: A en B. Via BGP kondigt het zijn blok IP-adressen bij beide operators aan. Daardoor kunnen andere netwerken meer dan één route naar de hostingservers leren kennen.

Het hostingbedrijf kan operator A instellen als voorkeursroute voor uitgaand verkeer en B als reserve gebruiken. Als de verbinding met A uitvalt en de bijbehorende routes worden ingetrokken, kan het verkeer via B lopen. Die omschakeling hoeft niet onmiddellijk te gebeuren: het detecteren van de storing en het opnieuw berekenen van routes kosten tijd. Tijdens het omschakelen kunnen bovendien pakketten verloren gaan.

Het verkeer in de andere richting hoeft niet dezelfde route te volgen. De route van de gebruiker naar het hostingbedrijf wordt mede bepaald door andere netwerken, die hun eigen regels toepassen. Twee verbindingen betekenen dus niet automatisch dat het verkeer gelijkmatig wordt verdeeld of dat het hostingbedrijf volledige controle heeft over de verkeersstromen.

Hoe ontstaan BGP-storingen en -dreigingen?

Het basisprotocol BGP biedt op zichzelf geen betrouwbare bevestiging dat een netwerk een bepaald prefix mag aankondigen. Een configuratiefout of een opzettelijke handeling kan daardoor ook gevolgen hebben voor verkeer buiten het netwerk waar het probleem is ontstaan.

Prefixkaping, ook wel BGP hijacking genoemd, is het zonder toestemming aankondigen van de adresruimte van een ander. Het lekken van routes, oftewel een route leak, houdt in dat route-informatie verder wordt doorgegeven dan het beleid voor verbindingen tussen netwerken zou moeten toestaan. Beide situaties kunnen diensten onbereikbaar maken en er in sommige gevallen toe leiden dat verkeer via een ongewenst netwerk wordt geleid.

Een van de beveiligingsmaatregelen is RPKI: een infrastructuur waarmee cryptografisch kan worden bevestigd dat een autonoom systeem een prefix mag aankondigen. Operators kunnen daarmee de oorsprong van routes controleren en ongeldige aankondigingen afwijzen. Dit controleert echter niet het volledige AS_PATH en beschermt niet tegen elke route leak. Ook filters, configuratiecontroles en monitoring zijn nodig.

Wat betekent BGP voor een website-eigenaar?

Als je gewone hosting gebruikt, configureer je BGP doorgaans niet zelf. Dat is de verantwoordelijkheid van de infrastructuurprovider of diens netwerkoperators. Alleen voor de aanschaf van een domeinnaam, een TLS-certificaat of een VPS-server heb je geen eigen ASN nodig.

BGP wordt soms verward met DNS, het systeem dat domeinnamen vertaalt naar IP-adressen. DNS helpt het adres van de server te vinden, terwijl routing het mogelijk maakt die server te bereiken. Een correct DNS-antwoord bewijst dus niet dat de netwerkverbinding werkt.

Als je website wel via mobiel internet opent, maar niet via je thuisverbinding, test hem dan vanuit beide netwerken en noteer wanneer het probleem optreedt. Geef de resultaten door aan je hostingprovider, samen met, als je dat kunt, een traceroute- of MTR-meting die het verloop van de verbinding laat zien. Een verschil in bereikbaarheid bewijst niet dat er een BGP-storing is, maar geeft beheerders wel een concreet aanknopingspunt om de routing te onderzoeken.

Lees ook

Lees hoe PHP-FPM PHP-verzoeken verwerkt, verschilt van een webserver en hoe je processen afstemt op verkeer en hostingcapaciteit.
Ontdek hoe BIND als open DNS-serversoftware domeinen beheert, welke rollen het vervult en wanneer zelf beheren zinvol is.
Lees wat het Poolse REGON-register en -nummer betekenen, hoe ze verschillen van NIP en KRS en hoe je bedrijfsgegevens controleert.