
My Hobby BGP Network: AS218248
AS218248 is my hobby BGP network: a single-operator autonomous system I run from Minnesota, USA, to learn how the internet’s routing actually works — not in a lab, but on the real global routing table. It announces one IPv6 prefix, 2a0c:b641:fa0::/44, and it carries real services: authoritative DNS, an NTP/NTS time server, and my own mail. Everything here runs on one small VPS in Düsseldorf — this page is about that box and the network on it.
The box
The whole network is a single virtual server, gnpk-as, hosted by Servperso in Düsseldorf and operated from Eden Prairie, Minnesota.
| OS | Debian 13 |
|---|---|
| CPU | 3 vCPU |
| RAM | 4.00 GiB |
| Disk | 15 GB bootdisk, growing to 20 GB |
| Host | Proxmox VM 400 (GP-AS218248), node host6-de |
| Router | BIRD 2.17.5 |
The VPS was upgraded in place on Nov 10, 2026 from 2 vCPU / 2 GB to the Advanced plan (3 vCPU, 4 GB); the bootdisk grow to 20 GB is still pending. A 2 GB swapfile was added Nov 9, 2026.
Interfaces
| ens18 | Servperso — 45.154.99.220/27, gateway 45.154.99.222; IPv6 2a0c:b640:10::6:220/112, gateway 2a0c:b640:10::6:ffff |
|---|---|
| ens19 | Pixinko transit |
| ens20 | LocIX Düsseldorf — 1 Gbps port, 185.1.155.205, 2a0c:b641:701:0:a5:21:8248:1 |
| ens21 | Former Servperso IX interface — now the ixFabric GRETAP tunnel (BGP-E-17983), 1 Gbps port |
Services on this box
One box, five services — each with its own page:
| BGP | BIRD — transit, peering, and route filtering (this page) |
|---|---|
| DNS | NSD — authoritative DNS, DNSSEC, DANE (DNS page) |
| Time | chrony — NTP Pool + NTS server (NTP page) |
| Postfix + Dovecot + OpenDKIM (Email page) | |
| Web | nginx — this site, static pages, HTTPS-only |
| Routing security | RPKI validation + RIPE Atlas probe (Routing page) |
The peering policy and exchange details are on the peering page, and the step-by-step of getting the ASN is on the ASN page.
Getting the ASN
The network started in October 2026 with a Servperso ASN + VPS bundle: a RIPE autonomous system number (AS218248), a sponsoring arrangement, and a virtual server in Düsseldorf to run it on. The prefix came with the setup — 2a0c:b641:fa0::/44 — and the first BGP sessions came up on Oct 29, 2026, when the /44 became visible globally. The full step-by-step is on the ASN page.
Transit: two providers, one prefix
AS218248 buys transit from two providers: Servperso (AS34872) and Pixinko (AS210233), both established since Oct 29, 2026. A quirk worth knowing if you’re reading paths: Servperso’s sibling ASN, AS208210, also appears in real paths toward my network, and my ASPA record lists all three providers (AS34872, AS210233, AS208210) so path validation reflects how the routing actually looks. Servperso sends a default route only on its session; the full table comes from elsewhere.
Neither transit supports BFD, so there is no BFD anywhere in this network — failover is plain BGP convergence, and that’s fine at this scale.
Peering: LocIX and ixFabric
Transit alone would be a stub network with extra steps, so AS218248 also peers at two internet exchanges in Düsseldorf:
- LocIX Düsseldorf — connected on a 1 Gbps port, with both route servers (AS202409) established since Nov 4, 2026, plus a bilateral session with AS215248, whose prefixes now reach me over the exchange instead of via transit.
- ixFabric Düsseldorf (AS24381) — reached over a GRETAP tunnel on a 1 Gbps port, route-server session established Nov 8, 2026, importing ~300 routes with a clean leak check: only my own /44 goes out.
Peering policy is open — details, communities and contact info are on the peering page and in PeeringDB (net 44063). Geolocation for the /44 is published as a geofeed (RFC 8805) and referenced from the RIPE inet6num object, so geolocation databases place the prefix in Düsseldorf, Germany.
Route security
A hobby network is no excuse for sloppy routing hygiene. The /44 is covered by an RPKI ROA — tightened on Nov 9, 2026 to exactly 2a0c:b641:fa0::/44 with max-length 44, verified valid in RIPEstat. ASPA records publish my provider set for path validation, and every BGP session exports only my own prefix. A MANRS Network Operator application (Actions 1, 3 and 4) is drafted and in progress.
The other side — validating what I accept — is on the Routing page: BIRD checks routes learned from the route servers and bilateral peers against the global RPKI data and rejects invalid origins, with Routinator serving RTR to BIRD on localhost, and a RIPE Atlas probe (ID 1018873) on the network to observe the filtering.
The ops console
The box is run from a tmux session with one window per service — 1:bgp 2:dns 3:mail 4:ntp 5:web 6:term — saved with tmux-resurrect and continuum, with a status bar script (~/.tmux/net-status.sh) showing BGP, RPKI, DNS, MX, web and NTP state at a glance. The console is the Proxmox serial port over xterm.js, where copy-paste works, and the shell is fish.
Why run a hobby AS at all?
Because there is no substitute for operating the real thing — watching your own prefix propagate, or debugging a GRETAP tunnel that passes traffic but not what you expected, is the education. If you’re thinking about your own ASN, the step-by-step is on the ASN page.
Find AS218248 around the internet: PeeringDB · bgp.tools · RIPEstat · Hurricane Electric · Peering policy