はじめに
最小の構成をまとめている人が見当たらなかったので備忘録も兼ねての投稿です。
検証環境
- ホストOS: Windows11 Pro
- ハイパーバイザ: VMWare Workstation 17 Pro
- ゲストOS: Ubuntu 24.04 LTS
ネットワーク構成
+---------+ 192.168.51.1/24 +--------------+ +-----------+
| IPv4 NW |--------------------------| Ubuntu 24.04 |-----------| IPv6 Host |
+---------+ +--------------+ +-----------+
インストールと設定ファイル準備
apt update
apt upgrade
apt install jool-tools
mkdir /etc/jool
設定ファイルの編集
# テンプレートとなるファイルをコピーして編集
cp /usr/share/doc/jool-tools/examples/jool.conf /etc/jool
vi /etc/jool/jool.conf
編集前のテンプレートファイルは以下のようになっています
{
"comment": {
"description": "Sample full NAT64 configuration.",
"notes": [
"192.0.2/24 and 2001:db8::/32 are documentation blocks",
"(RFC 5737 and RFC 3849), and you WILL need to change or",
"remove them for your setup."
],
"last update": "2022-03-20"
},
"instance": "sample-nat64",
"framework": "netfilter",
"global": {
"pool6": "64:ff9b::/96",
"lowest-ipv6-mtu": 1280,
"logging-debug": false
},
"pool4": [
{
"protocol": "TCP",
"prefix": "192.0.2.1/32",
"port range": "61001-65535"
}, {
"protocol": "UDP",
"prefix": "192.0.2.1/32",
"port range": "61001-65535"
}, {
"protocol": "ICMP",
"prefix": "192.0.2.1/32"
}
],
"bib": [
{
"protocol": "TCP",
"ipv6 address": "2001:db8::1#80",
"ipv4 address": "192.0.2.1#62000"
}, {
"protocol": "UDP",
"ipv6 address": "2001:db8::2#10000",
"ipv4 address": "192.0.2.1#62000"
}
]
}
これを以下のように編集します
{
"comment": {
"description": "Sample full NAT64 configuration.",
"notes": [
"192.0.2/24 and 2001:db8::/32 are documentation blocks",
"(RFC 5737 and RFC 3849), and you WILL need to change or",
"remove them for your setup."
],
"last update": "2022-03-20"
},
"instance": "default", # インスタンス名をdefaultに変更
"framework": "netfilter",
"global": {
"pool6": "64:ff9b::/96",
"lowest-ipv6-mtu": 1280,
"logging-debug": false
},
"pool4": [
{
"protocol": "TCP",
"prefix": "192.168.51.1/32", # 自身のIPv4アドレスに変更
"port range": "61001-65535" # ポート番号はお好みで
}, {
"protocol": "UDP",
"prefix": "192.168.51.1/32", # 自身のIPv4アドレスに変更
"port range": "61001-65535" # ポート番号はお好みで
}, {
"protocol": "ICMP",
"prefix": "192.168.51.1/32" # 自身のIPv4アドレスに変更
}
]
}
pool6で指定したIPv6プレフィックスの下32ビットをIPv4アドレスのビットで置き換えたアドレスに通信すると、pool4で指定したIPv4アドレスに変換されて通信が可能になります。
サービスの再起動
systemctl restart jool.service
確認
IPv6ホストにて以下の通信が成功する
ping 64:ff9b::8.8.8.8
Ubuntuサーバにて
# インスタンス名の確認
jool instance display
# IPv4プールの確認(なぜか一番上に書いたものしか表示されない)
jool pool4 display
# セッションの確認
jool session display
おわりに
ただのアドレス変換なのでNIC間転送のカーネルパラメータ変更は不要でした。
SIITやらCLATとかPLATとかいろいろあるらしいですがよくわからないのでとりあえず以上。