Files
ferrix/slides/sections/04-transit-and-ix.md
T
Rayhaan JaufeerallyandClaude Fable 5.1 2910a2a800 slides: light theme, final edits, single-file bundle
As presented. The palette is light on request of the reviewer; code blocks
and byte dumps keep a dark ground so the byte colours still work. The OPEN
walk lights the hovered bytes as an inverted block and its table cells are
dark text on a tint of their group colour.

build.py inlines reveal.js, the stylesheets, scripts and Markdown sections
into slides/dist/hands-on-bgp.html for uploading.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-01 20:40:55 +02:00

106 lines
4.0 KiB
Markdown

# Transit and exchanges
Notes:
Section 4. Two very different ways of getting routes, and what an Internet
exchange physically is.
---
## Two ways to reach other networks
<div class="cols">
<div>
### IP transit
- You **pay** a provider
- They give you routes to _everyone_
- They announce you to _everyone_
</div>
<div>
### Peering
- Usually **free**, by mutual benefit
- You exchange _your own_ routes, and your customers'
- Traffic between the locally connected parties only
</div>
</div>
Notes:
Transit is a customer-provider relationship; peering is between equals. A peer
does not carry your traffic to third parties. Most networks have both: transit
as the fallback, peering to keep traffic cheap and close.
---
## An exchange is a big Ethernet switch
<svg class="diagram" viewBox="0 0 1000 400" role="img" aria-label="Members attached to a shared Ethernet peering LAN, with a route server">
<g class="fabric"><rect x="60" y="175" width="880" height="56" rx="10"/></g>
<text x="500" y="200" class="accent">peering LAN: one Ethernet segment, one subnet</text>
<text x="500" y="220" class="small">SwissIX 2001:7f8:24::/64</text>
<g class="hot"><rect x="70" y="40" width="180" height="70" rx="8"/></g>
<text x="160" y="70">AS210036</text><text x="160" y="92" class="small">::c9</text>
<rect x="300" y="40" width="180" height="70" rx="8"/><text x="390" y="70">AS559 SWITCH</text><text x="390" y="92" class="small">::35</text>
<rect x="530" y="40" width="180" height="70" rx="8"/><text x="620" y="70">AS2906 Netflix</text><text x="620" y="92" class="small">::55</text>
<rect x="760" y="40" width="180" height="70" rx="8"/><text x="850" y="70">AS13335 Cloudflare</text><text x="850" y="92" class="small">::c0</text>
<line class="link" x1="160" y1="110" x2="160" y2="175"/><line class="link" x1="390" y1="110" x2="390" y2="175"/>
<line class="link" x1="620" y1="110" x2="620" y2="175"/><line class="link" x1="850" y1="110" x2="850" y2="175"/>
<rect x="385" y="300" width="230" height="70" rx="8"/><text x="500" y="330">route servers</text><text x="500" y="352" class="small">AS42476 ::a5ec:a:1</text>
<line class="link" x1="500" y1="231" x2="500" y2="300"/>
<path class="bgp" d="M 140 110 C 140 290, 300 335, 385 335"/>
<path class="bgp" d="M 410 110 C 410 250, 440 270, 470 300"/>
<path class="traffic" d="M 180 110 C 180 165, 370 165, 370 110"/>
<text x="275" y="138" class="small" style="fill:#4fd98a">traffic</text>
<text x="215" y="300" class="small accent">BGP</text>
</svg>
Notes:
Every member plugs one router port into the same layer-2 network and gets one
address in a shared subnet. No routing inside the exchange: just Ethernet.
Dashed blue is a BGP session, green is where the packets actually go.
---
## What that implies
- Peering participants in an exchange are all one hop away, found by neighbour discovery
- A route's next hop is the peer's LAN address, so traffic goes **directly** member to member
- The exchange is a simple layer 2 switch, allowing for a large capacity at low cost
- Strict(ish) rules on what traffic is allowed on the peering lan (e.g. no DHCP or broadcast packets)
Notes:
- IPv6 neighbour discovery and ARP are used to discover the MAC addresses of peers
- after which traffic can flow directly
---
## Route servers
Are a piece of shared infrastructure that simplifies peering.
- Most participants peer with the route server and annouce their prefixes there
- The route server can then distribute these routes to every other participant
- Simplifes from `n²` to `n` sessions
- Not in the traffic path and does not add its own AS into the path
- Allows controlling behaviour with communities, e.g. `42476:0:<as>` "not to `<as>`", `42476:1:<as>` "only to `<as>`"
Notes:
A route server is a BGP speaker that only redistributes. Because it is
transparent, the AS path looks exactly as if you peered with each member
directly. We will use those communities in the lab.
---
## Looking glasses
Are a useful tool to inspect the state of another network or internet exchange
- SwissIX https://lg.swissix.ch/
- NL-ix https://lg.nl-ix.net/
- BGP tools https://bgp.tools/