Files
notes/docs/lectures/acn/14_bgp.md
John Gatward c1b84c7f7d Add acn
2026-03-25 15:04:03 +00:00

4.3 KiB

Border Gateway Protocol

Routing Protocols

The main job is to distribute the data to build forwarding tables

  • These are intra-domain routing protocols
    • Or Interior gateway protocols
    • When the source and destination are inside the same network

It is important to distinguish between local and global protocols

  • Interior vs Exterior Gateway Protocol (IGP vs EGP)
BGPv4

The internet inter-domain routing protocol

  • Derives from GGP & EGP
  • Deals in IP prefixes and autonomous systems
    • autonomous systems are purely administrative
    • Purpose is to enable policy to be applied
    • Only prefixes matter in the data-plane
  • Internet policy domains
    • Logical construct only
    • No meaning outside BGP
    • Do not map simply onto ISPs or networks
  • Currently ~493,000 prefixes & ~46,000 ASs
    • Because we have less ASs, the routing is easily -> less complex
    • Reduces complexity
    • Speeds up performance

BGP uses TCP as transport

  • OPEN, UPDATE, KEEPALIVE, NOTIFICATION

Sessions between peers have:

  • Simple capability negotiation
  • Manage simultaneous OPEN connections
  • Lose everything on session failure

Sessions and Routing Information Base (RIBs)

A BGP peer typically has many sessions

  • Logically, for each peer, it receives the information about routing from peers, this is sorted into Adj-RIB-in table.
  • After processing, it produces a Adj-RIB-out table which it sends to other peers
    • Advertisements received and to be sent
  • Generates a local RIB table from Adj-RIB-in
    • Routes to use and potentially distribute
    • Resolved into per-port forwarding tables
  • Generate Adj-RIB-out from Loc-RIB and policy

Update messages

  • Incremental - indicate changes to state
    • These updates could be:
    • Withdrawn routes
    • Path attributes, common to all advertised routes
    • Advertised routes, known as NLRI
  • There are ~27 path attributes
    • Only ~12 are in common use
    • Communicate information about prefixes
    • Used to apply policy in BGP decision process
Path Attributes

Mandatory - every AS has to inform the other ASs about these 3 attributes:

  • Next hop
  • AS Path
  • Origin

Discretionary

  • Local preferences
    • Allows prioritisation of ASs

Optional & transitive

  • Aggregator
  • Community
  • Extended Communities

Optional & non-transitive

  • Multi-exit discriminator
  • Originator ID

Path Vectors

Distance Vector - prefer lowest cost path (not always)

Path Vector

  • How do we know if an AS has seen this advert before
  • Store the list of ASs in the packet
    • This is called the AS_PATH
  • This way loops can be broken
    • If our ASN appears in a received AS_PATH, drop the advert
Decision Process

Drop prefix if:

  • NEXT_HOP is unreachable via local routing table
  • Local AS appears in AS_PATH (packet in a loop)

Then (commonly) apply following preference:

  1. Higher weight (local to this router)
  2. Highest LOCAL_PREF
  3. Shortest AS_PATH
  4. Lowest ORIGIN
  5. Lowest MED
  6. EGP to IGP (hot potato)
  7. Shortest internal path
  8. Prefer oldest route
    • Oldest routes are often most stable
  9. Lowest interface IP address

Consistency

Learn external routes on EBGP sessions

  • EBGP defined as peers having different ASNs
  • Must ensure every router knows all external routes
  • Redistribute external routes inside the network
    • Via IGP - only in small networks
    • via IBGP - gives full control over route distribution
Scaling

Can distribute IBGP routes on IBGP sessions

  • Have to maintain N\cdot \frac{(N-1)}{2} IBGP sessions
    • Each carrying up to 490k routes x2 tables
  • Two standard solutions
    1. Route Reflectors
      • Super nodes re-advertising IBGP routes
      • Allows for hierarchy
    2. AS Confederations
      • split AS up into mini-ASs
Failures
  • Handling link failures
    • Bind to loopback
      • If it cant talk to other nodes, will only support communication internally
    • Flap damping
      • A warning message saying don't send traffic to me
      • This can make things worse if this message is delayed
  • Process failures
    • Out of memory error due to too many routes
Network Inter-connection
  • Networks interconnect via EBGP sessions
    • POPs - points of presence or IX internet exchanges
  • Multi-homing