nexthoptools

Routing / Routing protocols / BGP

BGP

Border Gateway Protocol · path vector · EGP

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).

Type
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

  1. 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.
  2. Bytt routes: hver side sender UPDATE med prefixene den vil dele, sammen med attributter som AS_PATH og next hop. Etterpå sendes bare endringer.
  3. Filtrer og sett policy: på vei inn og ut bestemmer du hva som slippes gjennom, og hva som skal foretrekkes.
  4. 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.

ISP AAS 64500 ISP BAS 64501 eBGP inn: 0.0.0.0/0 ut: 203.0.113.0/24 eBGP inn: 0.0.0.0/0 ut: 203.0.113.0/24 E1 E2 iBGP mellom loopbacks, next-hop-self Core OSPF inne: E1 og E2 gir default route til core Trafikk ut (outbound) Local Preference 200 på routes fra ISP A. All trafikk ut går via A, B er reserve. Trafikk inn (inbound) AS-path prepend mot ISP B: 64496 64496 64496 Lengre sti, så internett velger A. AS 64496 – bedriften · eget prefix 203.0.113.0/24
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.

Regelen: det som er lært via iBGP, sendes ikke videre til en annen iBGP-neighbor AS 64496 ISP R1 R2 R3 eBGP iBGP R3 får ikke ruten Løsning 1: full mesh, alle iBGP-routere med alle. 10 routere = 45 sessions. Blir fort tungvint. Løsning 2: route reflector (RR) RR-en får sende videre til klientene sine RR C1 C2 C3 C4 4 sessions i stedet for 10 Bruk gjerne to RR-er for redundans.

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.

Idle Connect Active OpenSent OpenConfirm Established venter, eller ingenroute til neighbor prøver å åpneTCP 179 TCP feilet, prøverigjen. Sjekk IP/ACL. OPEN sendt: AS,router ID, hold time OPEN mottatt, venterpå KEEPALIVE bytter routes(UPDATE) Navnet lurer: «Active» betyr at routeren aktivt prøver, ikke at sessionen er aktiv.

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.

  1. Local Preference – høyest vinner (standard 100). Deles i hele AS-et. Verktøyet for å styre trafikk ut.
  2. Locally originated – routes routeren selv har lagt inn, foretrekkes.
  3. AS_PATH – kortest vinner. Det prepend påvirker.
  4. Origin – IGP foran EGP foran incomplete (redistribuert).
  5. MED – lavest vinner. Et ønske du sender til naboen om hvilken link du vil ha trafikken inn på.
  6. eBGP foran iBGP.
  7. Lavest IGP metric til next hop – den nærmeste utgangen.
  8. Eldste eBGP-route – for å unngå unødvendig bytte.
  9. 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

HvorHvorfor BGP
Internet edgeTo ISP-er, eget AS og eget prefix. Failover og kontroll på trafikken, som tegningen over.
SkyenAzure 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ørBedriftens router (CE) snakker eBGP med operatørens router (PE) på hvert kontor.
SD-WANMange SD-WAN-løsninger bruker BGP mot resten av nettet, eller en egen variant inne i overlayet.
Data centereBGP 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.

InnstillingI eksempeletHvorfor
Eget AS og router IDAS 64496, 10.0.0.11Router ID fra loopback.
eBGP til ISP A192.0.2.1, AS 64500Direkte link, så vanlig TTL holder.
iBGP til E210.0.0.12, AS 64496, fra loopbackSessionen overlever at én link går ned.
Next hop selfPå iBGP mot E2E2 kan ikke nå ISP-ens adresse som next hop.
Filter utBare 203.0.113.0/24Aldri send noe annet til ISP-en.
Filter innBare 0.0.0.0/0Du trenger ikke hele internett-tabellen.
Local Preference inn200 fra ISP AISP A blir førstevalg for trafikk ut.
Annonsert prefix203.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

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.