Files
ferrix/slides/sections/05-lab.md
T
Rayhaan JaufeerallyandClaude Fable 5.1 9d6996c6c1 slides: no step-by-step reveals; UPDATE example is 2a0d:d740::/48 at SwissIX
- Removed every fragment and stepped code highlight: a slide now shows
  everything at once. Two code blocks keep a static highlight on one line.
- Dropped "What stands between you and an outage".
- The UPDATE walked through in section 3 is now 2a0d:d740::/48 as AS210036
  announces it to the SwissIX route servers: next hop 2001:7f8:24::c9
  (pr01's port on the peering LAN), AS path 210036, MED 0 and 210036:10:2,
  matching what pr01's export filter puts on routes to peers. Encoded with
  the packet crate and parsed back to the identical message; the slide
  generator asserted every quoted number, including the next hop, against
  the bytes. Adds a MULTI_EXIT_DISC slide to the walkthrough.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-20 21:48:12 +02:00

4.0 KiB

The lab

Notes: Section 5. What the students are about to touch, and what stands between a typo and the Internet.


What you are connected to

youa browser ferrixAS4200000001 pr01.rue (BIRD)AS210036 HTTPS BGP web page + BGP speakerfilters, then decides where SwissIX NL-ix France-IX DE-CIX transit

Notes: ferrix is a small BGP daemon written for this course; it runs on the same machine as the router. Both dashed hops are real BGP sessions. Everything to the right of pr01 is the actual Internet.


Your prefix

2a0d:d741:<n>::/48

  • <n> is your number in hex: student 10 is 2a0d:d741:a::/48
  • Put your name in owner: only the owner can withdraw a route
  • One prefix each

Notes: Put the URL and the class password on the board. The page is a snapshot by default; turn on auto-refresh at the top right to watch things change.


What happens when you press Announce

  1. ferrix builds an UPDATE. Click bytes to see it, hover to decode it
  2. pr01 checks it against its import filter
  3. pr01 decides, per neighbour, whether to pass it on
  4. Within a minute or so, the Internet can see your prefix
  5. ping 2a0d:d741:<n>::1 answers, from anywhere

Notes: Step 5: pr01 answers for every address in the lab space, so reachability of your prefix depends only on whether your announcement got out.


Steering your route

You add Who acts Effect
nothing announced everywhere
210036:0:0 pr01 announced nowhere
210036:0:0 210036:1:42476 pr01 only to the SwissIX route servers
+ 42476:0:0 42476:1:559 SwissIX …and from there only to SWITCH
NO_EXPORT pr01 accepted, never passed on

Same idea at two hops: never there, only there, nowhere.

Notes: 210036:0: never to that AS, 210036:1: to that AS, 210036:2/3: the same by exchange (1 SwissIX, 2 NL-ix, 3 France-IX, 4 DE-CIX). A "never" always wins. The preset menu next to the field has all of these.


Your turn

  1. Announce your prefix with no options. Find it on a looking glass
  2. Read the bytes: where is your AS number? Where is your prefix?
  3. Restrict it to the SwissIX route servers. Who still sees it?
  4. Narrow it to SWITCH. Can you reach it from the ETH network? From your phone?
  5. Withdraw it and watch it disappear

Notes: Looking glasses: bgp.tools, RIPEstat, and the exchange's own. Global visibility takes a minute or two to settle after each change.