FreeBSD
IPv6

FreeBSDでNAT64(ipfw_nat64編)

TaygaはユーザランドでのNAT64でしたが、カーネル内でのNAT64サポートが昨年ipfwのコードとしてheadにマージされていました。先日リリースされた11.1RにもMFCされています。

Taygaのときとはちょっと構成変わっています。

NAT64_ipfw.png

NATの口を同じサブネットに入れるとarpの解決ができなくて、通信できなくなるため別のサブネットにしています。

以下のようにAR7240でipfwを設定します。

#!/bin/sh
fwcmd="/sbin/ipfw"
kldstat -q -m ipfw_nat64 || kldload ipfw_nat64
${fwcmd} -f flush
${fwcmd} nat64lsn NAT64 create prefix4 10.10.9.0/24
${fwcmd} add allow icmp6 from any to any icmp6types 135,136
${fwcmd} add nat64lsn NAT64 ip6 from any to 64:ff9b::/96
${fwcmd} add nat64lsn NAT64 ip from any to 10.10.9.0/24

10.10.10.3のマシンで以下の設定が必要です

% sudo route add -net 10.10.9.0/24 10.10.10.70

この設定では64:ff9b::のアドレスでアクセスします。

hiroki:~ hiroki$ ping6 -c 1  64:ff9b::10.10.10.3
PING6(56=40+8+8 bytes) 2001:db8:12::1 --> 64:ff9b::a0a:a03
16 bytes from 64:ff9b::a0a:a03, icmp_seq=0 hlim=63 time=1.781 ms

--- 64:ff9b::10.10.10.3 ping6 statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 1.781/1.781/1.781 ms

このAR7240のモジュールは先日ハードオフで108円の10%OFFで購入しました。100円以下でIPv6がしゃべれるとはすごい時代です。