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>
8.8 KiB
Internet Numbering Resources
Notes: Before we look at what's going on in the internet, let's refresh on how the Internet is even addressed.
Packets are sent to IP addresses
lookup AAAAIP packets are sent to IP addresses, not domain names. Every time you use a domain name, it is resolved into an IP address via DNS.
Notes: Live: type a few names the students use. ethz.ch has an AAAA record; github.com has none (only A), which shows that the two address families are separate. The answer comes from Google Public DNS over HTTPS (dns.google), so it needs the lecture-hall network.
Who does the address belong to?
whoisThe inet6num says who was assigned the block; the route6 says which AS is allowed to originate it.
Notes: Paste the AAAA answer from the previous slide. ETH's /48 is ASSIGNED PI (provider independent, sponsored by SWITCH) and its route6 names AS559, SWITCH. Try 2a0d:d741:1::1 as well: the lab prefix, origin AS210036. The box takes AS numbers too (AS559). Same source as whois -h whois.ripe.net, over the database's REST API.
An IPv6 address is 128 bits
2001:0db8:0001:0000:0000:0000:0000:0001 eight groups of 16 bits, in hex
2001:db8:1:0:0:0:0:1 drop leading zeros in a group
2001:db8:1::1 one run of zero groups becomes ::
:: may appear once, or the address would be ambiguous. 2001:db8::/32 is reserved for documentation, so it never appears on the real Internet.
Notes: Ask: why only once? Because 2001::1::1 could put the zeros in several places. 2001:db8::/32 is RFC 3849: set aside for examples, never routed.
A prefix is a range of addresses
In BGP, the control plane for the internet, it's not viable to talk about single addresses, so we use prefix ranges.
Notes: Live. Drag the slider: the fixed part grows and the range shrinks by half per bit. Try /47 or /50 to see a hex digit split in two. The three rows above the bar are three of the shorter prefixes that contain it, with its position and share in each: there is no such thing as "the" parent prefix, only whatever someone chose to allocate from. 2^80 addresses in one /48, about 1.2 million billion billion. The /n is a count of leading bits, nothing more.
The global IPv6 address space
Notes: Not to scale: a /64 is 2^-64 of the space. Only the first ring matters for routing; the others are how the space is handed down, which is next.
Who hands out the addresses
Notes:
- The Internet Assigned Numbers Authority comes up with allocations of IP addresses from the global space
- Blocks are assigned to Regional Internet Registries (RIRs), which allocate them to Local Internet Registries (LIRs), who assign to end users
- The RIPE lookup two slides back showed exactly this chain: ETH's /48 is ASSIGNED PI, sponsored by SWITCH (the LIR), registered at RIPE NCC (the RIR). Nobody owns addresses; they are registered to you.
AS numbers
- Used to identify networks under a single oeprator, and required for exchanging BGP traffic
- Managed by IANA and the RIRs
- 16 bits at first:
1to65535 - 32 bits since RFC 6793: up to
4294967295 - In order to have a smooth transition,
AS23456is used as a placeholder when the AS number is > 16 bits - 32 bit AS numbers are then exchanged using a BGP capability message to be backwards compatible
- Private use:
64512–65534and4200000000–4294967294
AS numbers come down the same chain: IANA to the RIRs, an RIR to whoever runs a network. The lab daemon is AS4200000001, a private one, stripped before the Internet sees your route.
Notes: Nobody "owns" numbers or addresses; they are registered to you. RFC 6996 reserves the private ranges. The upstream router removes the private AS from the path, so the origin everybody else sees is AS210036.