wireguardでIPv6を利用する設定(疑似 IPv6 over IPv4)

概要

WireguardでIPv6通信ができるようにします。


目次


環境

OS: Ubuntu 22.04.4 LTS
プラットフォーム: OCI無料枠

事前準備

ip6tablesを使えるようにする

ubuntuであればあらかじめインストールされていると思います。

カーネルの設定でIPv6フォワードを有効にする

/etc/sysctl.confを任意のテキストエディタで開き、ファイルの末尾に以下の設定を追加します

1
2
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

その後端末を再起動します

設定

まずはIPv6のULAアドレス(ローカルIP)を生成します。
Unique Local IPv6 Generator
※fd00::/8を使ってもよいですが、推奨されていないようです。


次にwireguardのコンフィグを投入します。

IPv4のローカルIPを172.24.255.0/24
先ほど生成したIPv6のULAをfdac:756c:6733::/48
とすると以下の通りです

サーバー

1
2
3
4
5
6
7
8
9
10
11
12
[Interface]
PrivateKey = ****
Address = 172.24.255.1/24, fdac:756c:6733::1/48
ListenPort = 51820
SaveConfig = false
MTU = 1374 # これぐらいにすると通信が安定する
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE;ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

[Peer]
PublicKey = ***
AllowedIPs = 172.24.255.2/32, fdac:756c:6733::2/128

クライアント

1
2
3
4
5
6
7
8
9
10
[Interface]
PrivateKey = ***
Address = 172.24.255.2/32, fdac:756c:6733::2/128
DNS = 2606:4700:4700::1111, 2606:4700:4700::1001, 1.1.1.1, 1.0.0.1
MTU = 1374

[Peer]
PublicKey = ***
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 203.0.113.55:51820

参考文献

Linux で IP 転送を有効にする方法
Chat GPT

Author

fuchse-ohren

Posted on

2024-06-29

Updated on

2026-03-11

Licensed under

コメント