jkirkpatrick.dev ASXXXXXX

Josh Kirkpatrick

DevOps engineer, UK. I run this network in my spare time.
ASXXXXXX

One IPv6 /48, two edge routers in London and Amsterdam, and a homelab that's convinced it's a third PoP. I started this because I spent years on top of other people's networks and wanted to see what was underneath.

bgp.tools ↗peeringdb ↗ripe db ↗
EDGE NODES2/3
IPV6 PREFIXES1
IPV4 PREFIXES0
BGP SESSIONS4
RPKIVALID

01Network

2 live · 1 planned · iBGP mesh
lon1
lon1.edge.jkirkpatrick.devLondon · Vultr · LIVE

First edge. Transit from the host, one IXP session waiting on approval. Announces the /48.

ams1
ams1.edge.jkirkpatrick.devAmsterdam · Vultr · LIVE

Second edge, so a reboot in London is not an outage. Also announces the /48.

lab1
lab1.edge.jkirkpatrick.devHome · WireGuard to lon1 · PLANNED

The homelab, joining the mesh over WireGuard. The looking glass will live here once I trust it to stay up.

transit 1 upstream per edgeiBGP lon1 ↔ ams1 up · lab1 pendingdaemon BIRD 2rpki ROV on, all ROAs valid

02Prefixes

1 × IPv6 /48 · no IPv4 yet
PREFIXUSEORIGINROA
2001:db8:1234::/48 Aggregate, announced from lon1 + ams1ASXXXXXX VALID
2001:db8:1234:1::/64 Anycast services (DNS, this site)lon1 · ams1 —
2001:db8:1234:10::/60 lon1 infrastructurelon1 —
2001:db8:1234:20::/60 ams1 infrastructureams1 —
2001:db8:1234:100::/56 Homelab via lab1lab1 —

The bar is how the /48 is split up internally. Only the /48 itself is announced.

03Peering

Open peering. If we share a location, let's set it up.

Email me your ASN, AS-SET and the addresses you want to use for the session. I filter on IRR and RPKI. I usually reply the same day.

peering@jkirkpatrick.dev ↗
aut-num:ASXXXXXXas-name:JKIRKPATRICKdescr:Josh Kirkpatrick personal networkas-set:AS-JKIRKPATRICKmp-import:afi ipv6.unicast from AS-ANY accept ANYmp-export:afi ipv6.unicast to AS-ANY announce AS-JKIRKPATRICKmax-prefix:v6 10remarks:open peering · IRR + RPKI filteredsource:RIPE

04Homelab

lab1 · 4 up · checked --:--
BIRD 2installed and configured, iBGP session not up yet —
k3sthree nodes, one of them a laptop 99.84%
Prometheus + Grafanametrics for everything, including this list 99.97%
Pi-holeDNS for the house. Cause of most complaints 99.62%
WireGuardtunnel to lon1 100.00%
Backupsran once. never tested a restore —
PHOTO OF THE RACK GOES HERE

Three Proxmox hosts in a cupboard under the stairs. One of them is an old ThinkPad with the lid shut. It runs k3s, the monitoring, and the DNS for the house, which means when I break something everyone knows about it within about four seconds.

05Log

2026-10Getting the ASNWhich LIR I used, what it cost, how long RIPE took, and the one field on the form I got wrong.
2026-10First BGP session with BIRD 2Bringing up transit on lon1. Mostly notes to myself, so next time the filter syntax is already written down.
2026-11Announcing one /48 from two placesAdding ams1 and watching the prefix show up on bgp.tools with two origins. Why that was fine.
SoonTunnelling the homelab inlab1 over WireGuard, and whether a cupboard under the stairs counts as a PoP.

06About

Josh Kirkpatrick

I'm a DevOps engineer in the UK. Day to day that's Kubernetes, Terraform and CI pipelines, plus the on-call rota that comes with them. I've been doing it long enough to have strong opinions about YAML.

The network is a hobby that got out of hand. If you're a fellow small-ASN person, or you just want to compare notes on BIRD config, get in touch. If you're hiring, the CV is below.

cv (pdf) ↗github ↗linkedin ↗email ↗
WORKKubernetes, Terraform, GitHub Actions, AWS, Linux, Prometheus, Grafana, Ansible LEARNINGBGP, BIRD 2, RPKI, IRR, anycast, how IXPs actually work BASEDUK. Remote-friendly.