From f6699f13aa76fda5141939939973c6fa935c475f Mon Sep 17 00:00:00 2001 From: Nick Pegg Date: Tue, 18 Aug 2020 16:18:44 -0700 Subject: [PATCH] [post] IPv6 tunnel with Wireguard --- media/img/home-ipv6-tunnel-thumb.png | Bin 0 -> 29935 bytes media/img/home-ipv6-tunnel.png | Bin 0 -> 23133 bytes ...2020-08-18_ipv6-tunnel-with-wireguard.yaml | 93 ++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 media/img/home-ipv6-tunnel-thumb.png create mode 100644 media/img/home-ipv6-tunnel.png create mode 100644 posts/2020-08-18_ipv6-tunnel-with-wireguard.yaml diff --git a/media/img/home-ipv6-tunnel-thumb.png b/media/img/home-ipv6-tunnel-thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1bd3536f6868dc652338642d497f5a4da96714fe GIT binary patch literal 29935 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 literal 0 HcmV?d00001 diff --git a/media/img/home-ipv6-tunnel.png b/media/img/home-ipv6-tunnel.png new file mode 100644 index 0000000000000000000000000000000000000000..2bb3777a6e3ece06819f64b330200f613370cb06 GIT binary patch literal 23133 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 literal 0 HcmV?d00001 diff --git a/posts/2020-08-18_ipv6-tunnel-with-wireguard.yaml b/posts/2020-08-18_ipv6-tunnel-with-wireguard.yaml new file mode 100644 index 0000000..b2d8210 --- /dev/null +++ b/posts/2020-08-18_ipv6-tunnel-with-wireguard.yaml @@ -0,0 +1,93 @@ +date: 2020-08-18 +tags: +- linux +- networking +- home-router +title: IPv6 Tunnel with Wireguard +--- +In my [last post]({{"/2020/08/home-vpn-with-wireguard/" | absolute_url}}) I +talked about setting up a VPN tunnel to my home network using Wireguard, but +did you know that Wireguard also makes for a good IPv6-in-IPv4 tunnel? + +--- +This setup involves a VM from Linode as well as some IPv6 address blocks +assigned from them. If you're interested is replicating this setup, you'll have +to open a support ticket with them to request both a /116 block, and a /64 +block which gets routed to your VM. + +Here's a diagram of how all this will fit together (click the image for a +larger view of it): +[![IPv6 tunnel network diagram](/media/img/home-ipv6-tunnel-thumb.png)](/media/img/home-ipv6-tunnel.png) + +Here I'm using the /116 I got from Linode, `2600:3c01::xxxx:f000/116` for the +VPN tunnel communication, and the /64 I got, `2600:3c01:e000:yyyy::/64` for my +home network. + +I've already [previously talked over the basics of setting up +Wireguard]({{"/2020/08/home-vpn-with-wireguard/" | absolute_url}}) so I'm just +going to skip straight to the configs. + +`/etc/wireguard/wg-ipv6.conf` on the Linode VM: +``` +[Interface] +Address = 2600:3c01::xxxx:f000/116 +ListenPort = 51820 +PrivateKey = + +[Peer] +PublicKey = +# Here we tell Wireguard to route traffic for the router's address in the /116 +# as well as the whole /64 to this peer. +AllowedIPs = 2600:3c01::xxxx:f001/128, 2600:3c01:e000:yyyy::/64 + +``` + +`/etc/wireguard/wg-ipv6.conf` on my router: +``` +[Interface] +Address = 2600:3c01::xxxx:f001/116 +PrivateKey = + +# I'm blocking forwarded traffic by default on my router, so I need to allow +# traffic from my home network out through the Wireguard interface. I don't +# need a rule in the reverse direction since I already have a rule allowing all +# related traffic back. +# +# %i will automatically get replaced by the Wireguard interface name. +PostUp = ip6tables -A FORWARD -i br0 -o %i -j ACCEPT +PostDown = ip6tables -D FORWARD -i br0 -o %i -j ACCEPT + +[Peer] +PublicKey = +# Here we tell Wireguard to route the Linode VM's address from the /116 as well +# as the default route to this peer +AllowedIPs = 2600:3c01::xxxx:f000/128, ::/0 +Endpoint = linode_vm.yourdomain.com:51820 +``` + +For IPv6 addresses on each of the clients, I'm using +[radvd](http://www.litech.org/radvd/) on the router to advertise itself as the +router and hand out [SLAAC +addresses](https://en.wikipedia.org/wiki/IPv6#Stateless_address_autoconfiguration_(SLAAC)). +Here's what `/etc/radvd.conf` looks like on the router: +``` +# br0 is my inside network bridge interface +interface br0 +{ + AdvSendAdvert on; + # Send router advertisements every 10 seconds at most + MaxRtrAdvInterval 10; + + # This is the /64 subnet that Linode allocated to me + prefix 2600:3c01:e000:yyyy::/64 + { + }; +}; +``` + +And then, like with the last time, I enabled and started the systemd service +units on each machine: +```shell +sudo systemctl enable wg-quick@wg-ipv6.service +sudo systemctl start wg-quick@wg-ipv6.service +```