← Blog

Onondaga County AMPRNet

Feb 15, 2020 · 2 min read · amprnet, networking, raspberry-pi

AMPRNet (44net) is amateur radio’s own IP address space — a real, routable network operated by and for licensed hams. This post covers what AMPRNet is, how we run it in Onondaga County, and how to get your station on the K2EXE 44net mesh with a Raspberry Pi.

The full slide deck from the original presentation is still available: Onondaga County AMPRNet slides

What is AMPRNet?

AMPRNet — the AMateur Packet Radio Network — traces its roots to the mid-1980s, when it was proposed by Brian Kantor as a packet radio network allocation. The entire 44.0.0.0/8 block was assigned to amateur radio, making it one of the oldest “special use” networks on the internet.

Today 44net serves a wide variety of internet- and radio-connected services: traffic over RF, over 802.11 WiFi, and over VPN tunnels that stitch regional networks together into a worldwide ham-run internet.

Our allocation: 44.68.204.0/28

Onondaga County operates on the 44.68.204.0/28 sub-block allocated from the AMPR.ORG space — 16 addresses, one of which belongs to the gateway, with the rest allocated one per node.

The K2EXE network architecture

The local 44net is built as a Tinc VPN mesh, anchored by a gateway in AWS (us-east-1) with services published under k2exe.ampr.org:

Portable Raspberry Pi nodes

The intended client is a portable Raspberry Pi station — flash the config, pick an IP, and you’re on 44net from anywhere with internet. That makes it a great fit for portable operations, emcomm go-kits, and club demos.

Getting on the mesh

1. Request an IP allocation

You’ll need to contact K2EXE to get an address allocated from our 44.68.204.0/28 pool.

2. Run the Ansible provisioning scripts

The automation lives in the k2exe-rpi-config repository. Set your callsign and node IP in tinc/vars/main.yml, then:

pi@k2exe-1:~/k2exe-config$ ansible-playbook playbook.yml --tags tinc

Ansible installs the server config and generates the keyfiles for your node.

3. Send your public key

Send your public key file — /etc/tinc/k2exe/hosts/<your-node-name-or-callsign> — back for configuration on the server.

4. Enable and start Tinc

sudo systemctl enable tinc@k2exe

Installing radio tools

The same playbook can provision a full software-defined radio station in one command — or select individual items with Ansible tags: