De afkorting BGP staat voor Border Gateway Protocol. Het is een zogenaamd path-vector routing protocol waarmee de verschillende autonome systemen (AS) van het internet met elkaar kunnen worden verbonden en data over AS-grenzen heen kan worden gerouteerd.
Volgens de rapporten ging een update van de BGP-software mis en veroorzaakte dit de Facebook-storing.
Het Border Gateway Protocol kan over AS worden gebruikt. Binnen een AS werkt het vaak met zogenaamde Interior Gateway Protocols (IGP) zoals Open Shortest Path First (OSPF) of Intermediate System to Intermediate System (IS-IS).
Het Border Gateway Protocol (BGP) is een netwerkstandaard die de logische verbindingspaden tot stand brengt tussen autonome systemen waar gegevens doorheen gaan. De belangrijkste kenmerken van BGP worden beschreven in RFC 1163. De momenteel gebruikte versie is BGPv4, dat onder andere is gedefinieerd in RFC’s 4271, 4760 en 4364.
Het Border Gateway Protocol is niet beperkt tot de routering van IPv4 of IPv6, maar kan ook worden gebruikt voor andere protocollen of MPLS-labels. BGP is ontworpen om te schalen en betrouwbaar te zijn. Het is een moeilijk routeringsmechanisme om aan de slag te gaan en het kost tijd voordat de verbindingspaden convergeren.
Hoe werkt het Border Gateway Protocol?
Het Border Gateway Protocol werkt pad vectorgebaseerd. Om routeringsinformatie te communiceren, brengen de routers veilige TCP-verbindingen met elkaar tot stand. Via deze BGP-sessies worden berichten en informatie verzonden en ontvangen. De poort die hiervoor wordt gebruikt is TCP-poort 179. Mogelijke berichttypen zijn:
- OPEN: om de uitwisseling van informatie binnen een sessie te starten
- KEEPALIVE: om een OPEN-bericht te bevestigen en om de sessies te behouden. De sessies worden levend gehouden met regelmatige KEEPALIVE-berichten van de aangesloten routers
- UPDATE: om te informeren over padwijzigingen
- KENNISGEVING: voor het beëindigen van een verbinding en het verwijderen van paden, bijvoorbeeld omdat KEEPALIVE-berichten niet meer worden ontvangen
De UPDATE-berichten spelen een centrale rol binnen het Border Gateway Protocol. De routers gebruiken deze meldingen om nieuwe routes te ontdekken of om op de hoogte te worden gehouden wanneer bestaande routes zijn verdwenen. De router kan een grafiek maken die de netwerken van autonome systemen weergeeft op basis van de ontvangen gegevens. De procedure voor het genereren van de grafiek houdt geen rekening met lussen en houdt rekening met de kenmerken van de paden die in de update zijn opgenomen. Mogelijke kenmerken van een route zijn:
- AS_PATH: Informatie over welk AS een doel kan worden bereikt. De autonome systemen worden weergegeven door AS-nummers
- Next Hop: IP-adres van het volgende tussenknooppunt op weg naar een prefix
- IGP metric: Informatie over de kosten via het eigen netwerk
- Multi-Exit Discriminator (MED): voor het prioriteren van parallelle verbindingen
- Routing-tags of communities: 32-bit lange waarden waarmee prefixen kunnen worden gemarkeerd voor filterdoeleinden
- Lokale voorkeur: voor het selecteren van een pad binnen een AS
- Oorsprong: bron van een voorvoegsel. Mogelijke waarden zijn intern, extern of onvolledig
Differentiatie tussen EBGP en IBGP
Met het Border Gateway Protocol kunnen niet alleen verschillende autonome systemen worden aangesloten. Het routeringsprotocol kan ook worden gebruikt om routers binnen een AS met elkaar te verbinden. Afhankelijk van het gebruik spreekt men van externe of interne BGP (EBGP of IBGP).
De gegevens worden doorgestuurd via een autonoom systeem via de routers van een AS aangesloten op IBGP. Hiervoor propageren de routers de via EBGP geleerde routes binnen hun eigen AS. Dit maakt het mogelijk om de BGP-specifieke attributen van de prefixen te verzenden. Er moeten BGP-sessies tot stand worden gebracht tussen alle routers die het Border Gateway Protocol gebruiken om te communiceren.
Voor de daadwerkelijke verbinding tussen de routers is meestal een Interior Gateway Protocol (IGP) zoals OSPF (Open Shortest Path First) of IS-IS vereist. Routereflectoren zijn een methode die wordt gebruikt om schaalproblemen als gevolg van volledige mesh in grote netwerken te voorkomen. Elke BGP-router heeft slechts één verbinding met de routereflector nodig, die alle via EBGP ontvangen routes bijhoudt en via IBGP naar alle routers in het AS distribueert.