Protokollen som binder internett sammen, og den en bedrift bruker der den møter andre: ISP-er, skyen, MPLS fra operatøren og ofte SD-WAN. BGP velger ikke bare korteste vei. Den velger etter regler du bestemmer (policy).
Path vector. EGP, men brukes også inne i store nett og i data center.
Metric
Ingen enkel metric. Valget gjøres med path attributes som Local Preference og AS_PATH.
Går over
TCP 179. Neighbors (peers) settes opp manuelt, de oppdages ikke selv.
Timere
Keepalive 60 og hold time 180 sekunder er vanlig, men noen bruker 90. Bruk BFD for rask feiloppdagelse.
Administrative distance
Vanligvis 20 for eBGP og 200 for iBGP, men varierer mellom leverandører
AS-nummer
Private: 64512–65534 og 4200000000–4294967294. Offentlige deles ut av RIPE NCC i Europa.
Standard
BGP-4: RFC 4271
Slik virker BGP
Sett opp en session: du forteller routeren hvem neighbor er og hvilket AS den er i. De åpner en TCP-forbindelse på port 179 og sender OPEN.
Bytt routes: hver side sender UPDATE med prefixene den vil dele, sammen med attributter som AS_PATH og next hop. Etterpå sendes bare endringer.
Filtrer og sett policy: på vei inn og ut bestemmer du hva som slippes gjennom, og hva som skal foretrekkes.
Velg beste vei: kjenner routeren samme prefix fra flere neighbors, går den gjennom en fast liste med regler (best path selection).
Internet edge med to ISP-er
Det vanligste BGP-oppsettet i en bedrift: to edge-routere, hver koblet til sin ISP. Bedriften har sitt eget AS-nummer og sin egen adresseblokk, så nettet er nåbart selv om én ISP faller ut.
Trafikk ut styrer du selv med Local Preference, fordi det er dine routere som velger. Trafikk inn kan du bare påvirke: du gjør stien via ISP B lengre (prepend), og håper resten av internett velger den korteste. Annonser bare ditt eget prefix, ellers kan bedriften bli en snarvei (transit) mellom ISP A og ISP B.
Bare default route fra ISP-eneEnklest og vanligst. Routeren trenger lite minne, og failover skjer når én ISP slutter å sende default.
Full table (hele internett)Rundt én million IPv4-routes. Gir beste vei til hvert mål, men krever kraftige routere. Sjelden nødvendig i en bedrift.
eBGP og iBGP
eBGP går mellom to ulike AS. iBGP går mellom routere i samme AS, for eksempel E1 og E2 over. Inne i et AS endres ikke AS_PATH, så BGP har en egen regel for å unngå loops.
iBGP-neighbors trenger ikke stå ved siden av hverandre. De kobler seg ofte mellom loopback-adresser, og en IGP som OSPF sørger for at loopbackene og next hop kan nås. BGP bygger alltid oppå en IGP inne i nettet.
Session states
Dette ser du i oversikten over BGP-neighbors på routeren. Bare Established betyr at alt virker. Står det et tall i stedet for en tilstand, er sessionen oppe, og tallet er antall prefixer mottatt.
Hvordan BGP velger beste vei
Kjenner routeren samme prefix fra flere neighbors, sjekkes reglene ovenfra og ned. Første regel som gir en forskjell, avgjør. Rekkefølgen er nesten lik hos alle leverandører; de små forskjellene ligger mot slutten.
Local Preference – høyest vinner (standard 100). Deles i hele AS-et. Verktøyet for å styre trafikk ut.
Locally originated – routes routeren selv har lagt inn, foretrekkes.
AS_PATH – kortest vinner. Det prepend påvirker.
Origin – IGP foran EGP foran incomplete (redistribuert).
MED – lavest vinner. Et ønske du sender til naboen om hvilken link du vil ha trafikken inn på.
eBGP foran iBGP.
Lavest IGP metric til next hop – den nærmeste utgangen.
Eldste eBGP-route – for å unngå unødvendig bytte.
Lavest router ID – siste utvei.
BGP velger bare én beste vei per prefix, med mindre du slår på multipath. Mange leverandører har i tillegg et lokalt steg før Local Preference, weight, som ikke er med i standarden og bare gjelder på den ene routeren. Bruk Local Preference når du vil styre trafikk ut.
BGP i et enterprise-nettverk
Hvor
Hvorfor BGP
Internet edge
To ISP-er, eget AS og eget prefix. Failover og kontroll på trafikken, som tegningen over.
Skyen
Azure ExpressRoute og AWS Direct Connect bruker BGP. Det gjør også IPsec VPN mot skyen når du vil ha automatisk failover mellom to tunneler.
MPLS fra operatør
Bedriftens router (CE) snakker eBGP med operatørens router (PE) på hvert kontor.
SD-WAN
Mange SD-WAN-løsninger bruker BGP mot resten av nettet, eller en egen variant inne i overlayet.
Data center
eBGP mellom spine og leaf (RFC 7938) i underlay, og EVPN over BGP for VXLAN i overlay.
Eksempel: E1 mot ISP A
Dette settes på E1. Adressene er dokumentasjonsadresser.
Innstilling
I eksempelet
Hvorfor
Eget AS og router ID
AS 64496, 10.0.0.11
Router ID fra loopback.
eBGP til ISP A
192.0.2.1, AS 64500
Direkte link, så vanlig TTL holder.
iBGP til E2
10.0.0.12, AS 64496, fra loopback
Sessionen overlever at én link går ned.
Next hop self
På iBGP mot E2
E2 kan ikke nå ISP-ens adresse som next hop.
Filter ut
Bare 203.0.113.0/24
Aldri send noe annet til ISP-en.
Filter inn
Bare 0.0.0.0/0
Du trenger ikke hele internett-tabellen.
Local Preference inn
200 fra ISP A
ISP A blir førstevalg for trafikk ut.
Annonsert prefix
203.0.113.0/24, med static route til blackhole (Null0)
Prefixet må finnes i routing table for å bli annonsert.
Kommandoene er forskjellige fra leverandør til leverandør, men det er disse innstillingene du ser etter.
Må være på plass
Riktig neighbor-adresse og remote-asPå begge sider. Feil AS-nummer gir en session som går ned med en gang.
TCP 179 åpenBrannmurer og ACL-er mellom routerne må slippe den gjennom.
Riktig TTL for eBGPeBGP forventer en direkte link. Peering mellom loopbacks krever ebgp-multihop og update-source.
Next hop som kan nåsRoutes fra iBGP har ofte next hop hos ISP-en. Bruk next-hop-self på edge-routerne.
Prefixet må finnes i routing tableMed network annonseres det bare hvis nøyaktig samme prefix finnes. En static route til blackhole (Null0) sørger for det.
Filtre inn og utSend bare ditt eget prefix, og ta bare imot det du trenger. Mange plattformer sender eller tar ikke imot noe på eBGP før en policy finnes (RFC 8212).
Mot internett: eget AS og egne adresserFra RIPE NCC eller via ISP-en. Minste prefix som slipper gjennom på internett er /24 for IPv4 og /48 for IPv6. Lag ROA i RPKI, så andre kan sjekke at prefixet er ditt.
Fordeler
Laget for å møte andre nett: ISP-er, skyen og partnere snakker BGP.
Full kontroll: policy bestemmer hva som deles og hvilken vei som brukes.
Skalerer enormt: bærer hele internett.
Stabil: endringer sprer seg kontrollert, uten at alle må regne på nytt.
Bærer mye mer enn IPv4: IPv6, MPLS VPN og EVPN går over samme protokoll.
Ulemper
Treg uten hjelp: hold time 180 sekunder. Bruk BFD for rask failover.
Mye å konfigurere: neighbors, filtre og policy settes opp for hånd.
Feil sprer seg til andre: et manglende filter kan lekke routes ut på internett.
Trafikk inn kan bare påvirkes, ikke styres.
Trenger en IGP under: iBGP er avhengig av OSPF eller IS-IS inne i nettet.
Passer når: bedriften kobles til to ISP-er, skyen, MPLS fra operatør eller SD-WAN, og i data center-fabric.
Passer ikke når: du bare har én ISP og ingen egne adresser. Da holder en static default route. BGP er heller ikke et godt valg som eneste protokoll i en vanlig campus: der gjør OSPF jobben enklere.
Ord du møter
AS / ASN
Autonomous System og nummeret dets. Et nett med én felles routing-policy.
Peer / neighbor
En router du har en BGP-session med.
eBGP / iBGP
Session mellom to ulike AS / innenfor samme AS.
AS_PATH
Lista over AS-ene ruten har gått gjennom. Brukes til loop-sjekk og valg av vei.
Next hop
Adressen trafikken skal sendes til for å nå prefixet.
Local Preference
Hvor mye du liker en vei ut. Høyest vinner, gjelder i hele AS-et.
MED
Multi-Exit Discriminator. Et hint til naboen om hvilken link du vil ha trafikken inn på.
Prepend
Å legge eget AS-nummer inn flere ganger i AS_PATH, så veien ser lengre ut.
Community
En merkelapp på en route. ISP-er bruker dem ofte for å la kunder styre trafikk.
Route reflector
En iBGP-router som får sende routes videre til klientene sine, så du slipper full mesh.
Transit
Å bære trafikk mellom to andre nett. En bedrift skal aldri være transit.
RPKI / ROA
En signert oppføring som sier hvilket AS som får annonsere et prefix.