IPv6 on HAMNET with 6to4

Josip Tišljar Mataušić (9A3SFZ)

Published on: March 29, 2026

Although there are some proposals for amateurs to receive a 44net equivalent in IPv6, this hasn’t happened yet. However, it’s not true that we don’t have any IPv6 address space at all. In fact, we have a whole /24 dedicated to amateur radio. This has been implicitly given to us via the 6to4 transition mechanism, meaning that anyone who has a 44net address, be it from ARDC directly, HAMNET or any other project, also has a /48 of v6.

These are not normal addresses though. They are meant to support the transition from IPv4 to IPv6 so v6 packets get transferred over a v4 backbone.

         HOST                 ROUTER       44.128.1.1 <--> 44.128.2.1       ROUTER                  HOST
2002:2c80:101::cafe ---> 2002:2c80:101::1 <--------------------------> 2002:2c80:201::1 ---> 2002:2c80:201::baba

The use of an IPv4 backbone is the key here because, while it’s problematic on networks with both v4 and v6 backbones like the Internet, it’s good for isolated networks where there is no IPv6 backbone at all. One such network is HAMNET. 6to4 would be a great way to introduce IPv6 there because two people can start using IPv6 without every hop in the middle needing to be v6 capable. There is also no additional administrative overhead since every IPv4 address nicely translates to a /48 prefix.

On the other hand, if there exist both IPv4 and IPv6 backbones (like on the Internet), a 6to4 host (which uses the v4 backbone) wanting to communicate with a native IPv6 host (uses v6 backbone) needs to go through a relay that bridges the two backbones. This creates bottlenecks, routing inefficiencies and additional points of failure. Therefore, using this technology on the Internet, while possible, is very unreliable and also deprecated since 2015, meaning amateur radio still requires a globally unique IPv6 allocation for the future.

Getting a GUA is not easy. It won’t happen if we don’t show the need for v6 addresses so let’s use what we already have, a gigantic 6to4 prefix, where it’s actually useful, not on the public Internet, but to kickstart IPv6 adoption in isolated networks such as HAMNET.

Simple MikroTik configuration for 6to4 on HAMNET

  1. Go to IPv6 > Settings and make sure Disable IPv6 is unchecked and IPv6 Forward is checked. Now reboot.

  2. Add a 6to4 tunnel interface with the Local Address set to the HAMNET address of your router. Leave the Remote address empty or set to 0.0.0.0.

  1. Paste the same address of your router in the tool below:
IPv4 address:
6to4 prefix:
  1. Give your router an IPv6 address from the prefix calculated above by going to IPv6 > Addresses. Make sure to select your LAN interface when adding the address. Also, always use /64 prefix size, that’s the standard.

  1. Go to IPv6 > Routes and add a route for HAMNET. Destination Address should be 2002:2c80::/26 which maps to 44.128.0.0/10. Gateway should be the name of your 6to4 interface.

At this point, devices connected to the interface you added the IPv6 address to (in my case ether1) should get themselves v6 addresses automatically, but you can also configure them manually:

        Address: 2002:2c80:801::2
  Prefix length: 64
Default gateway: 2002:2c80:801::1
            DNS: 2002:2c94:d388::

Available services

I run a recursive DNS resolver available on 6to4 hamnet. Its address is 2002:2c94:d388::. You can try pinging it to see if your setup is working.

This website is also accessible over 6to4 at http://[2002:2c94:d2ff::]

If you decide to make a service of your own available using this method drop me an e-mail. I’ll happily include it here.

Systemd-Networkd

In a previous post I mentioned that my router is a pure Linux machine rather than a MikroTik so here is the config for that:

sudo nano /etc/systemd/network/60-6to4-hamnet.netdev

[NetDev]
Name=sit-hamnet
Kind=sit
Description=6to4 tunneling on HAMNET

[Tunnel]
Local=44.148.211.136
Remote=0.0.0.0
TTL=255
sudo nano /etc/systemd/network/60-6to4-hamnet.network

[Match]
Name=sit-hamnet

[Network]
Address=2002:2c94:d388::/26

Parent interface:

[Match]
Name=wg-hamnet

[Network]
Address=44.148.211.136/32
Tunnel=sit-hamnet # Important - defines that this is the parent interface of the tunnel

[Route]
Destination=44.128.0.0/10