# Get IPv6 connectivity with wireguard
2021-11-10T21:07:51Z

If your ISP or phone operator doesn't provide you an IPv6, you still can get IPv6 connectivity as long as you have somewhere a server with IPv6 -- let's say a VM at openbsd.amsterdam :).

Let's configure IPv6 over ipv4 with wireguard and OpenBSD.

Prerequisite:

* A server with IPv6 connectivity running OpenBSD
* A private IPv6 address range. In this example, it is fd9c:f774:0bfa:acfc. It could be fd42::1, fd42::2... but you might prefer doing this correctly.

=> https://simpledns.plus/private-IPv6 Generate a private IPv6 range

## On the server

```
# cat /etc/pf.conf

[...snip...]
pass in on egress proto udp from any to any port 4545 keep state
match out on egress from (wg0:network) to any nat-to (egress)
pass on egress from (wg0:network) to any
pass on wg0
```

```
# cat /etc/sysctl.conf
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
```

```
# cat /etc/hostname.wg0
inet 10.0.0.1/24
inet6 fd9c:f774:0bfa:acfc::1/64
wgkey [...snip...]
wgport 4545
# peer 1
wgpeer [...snip...] wgaip 10.0.0.2/32 wgaip fd9c:f774:0bfa:acfc::2/128
# peer 2
wgpeer [...snip...] wgaip 10.0.0.3/32 wgaip fd9c:f774:0bfa:acfc::3/128
# peer 3
wgpeer [...snip...] wgaip 10.0.0.4/32 wgaip fd9c:f774:0bfa:acfc::4/128

up
```

I removed the key as you can see.
The port is 4545, but use whatever you want :)

It is really important to end ipv6 allowed ip by /128 !

## On a client

```
# cat /etc/hostname.wg0
wgkey [...snip...]
wgpeer [...snip...] \
	wgendpoint <XX.XX.XX.XX> 4545 \
	wgaip 0.0.0.0/0 \
	wgaip ::0/0 \
	wgpka 25

inet 10.0.0.3/24
inet6 fd9c:f774:0bfa:acfc::3/64
wgrtable 1
up
!route add -inet default 10.0.0.1
!route add -inet6 default fd9c:f774:0bfa:acfc::1
```

```
# cat /etc/hostname.iface
rdomain 1
up
inet autoconf
```

Of course, edit endpoint ipv4.
It is important to set wgaip to any IPv4 and IPv6 to encrypt for both.

As you can see, we set the default route to the VPN endpoint IP.

## Links

=> https://openbsd.amsterdam/
=> https://www.tunnelbroker.net/ HE is another way to get IPv6 connectivity.
=> https://dataswamp.org/~solene/2021-10-09-openbsd-wireguard-exit.html Full WireGuard setup with OpenBSD

## Something to say ?

=> mailto:bla@bla.si3t.ch?subject=ipv6-over-ipv4-wireguard Send your comment by mail.