We will use and test it in near future, but currently I did only basic tests.
I configured IPv6 via tunnelbroker.net:
```
[ Internet ]
^
|
[ tunnelbroker ]
2001:470:7ad7::/48
2001:470:1f14:7bf::1/64
^
|
2001:470:1f14:7bf::2/64 gif0
[ NPT Host ]
fd00:dead:c0de::1/48 em0
^
|
fd00:dead:c0de::2/48 em0
[ Client Host ]
```
NPT configs:
```
route add -6 default 2001:470:1f15:7bf::1
# ipfw nptv6 all list
nptv6 NPT int_prefix fd00:dead:c0de:: ext_prefix 2001:470:7ad7:: prefixlen 48
# ipfw show
00100 0 0 allow ipv6-icmp from any to any icmp6types 138,139135,136
00200 7097 2965601 nptv6 NPT ip6 from any to any
65535 29757 7630936 allow ip from any to any
```
Client configs:
```
# route add -6 default fd00:dead:c0de::1
# ping6 www.freebsd.org
```
On the NTP Host:
```
# tcpdump -ni em0 ip6
15:47:56.904218 IP6 fd00:dead:c0de::2 > 2001:1900:2254:206a::50:0: ICMP6, echo request, seq 0, length 16
15:47:57.117328 IP6 2001:1900:2254:206a::50:0 > fd00:dead:c0de::2: ICMP6, echo reply, seq 0, length 16
15:50:07.032047 IP6 2a02:6b8:0:204::1 > fd00:dead:c0de::2: ICMP6, echo request, seq 0, length 16
15:50:07.032414 IP6 fd00:dead:c0de::2 > 2a02:6b8:0:204::1: ICMP6, echo reply, seq 0, length 16
# tcpdump -ni gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 262144 bytes
15:47:56.904259 IP6 2001:470:7ad7:fd44::2 > 2001:1900:2254:206a::50:0: ICMP6, echo request, seq 0, length 16
15:47:57.117312 IP6 2001:1900:2254:206a::50:0 > 2001:470:7ad7:fd44::2: ICMP6, echo reply, seq 0, length 16
15:50:07.032022 IP6 2a02:6b8:0:204::1 > 2001:470:7ad7:fd44::2: ICMP6, echo request, seq 0, length 16
15:50:07.032428 IP6 2001:470:7ad7:fd44::2 > 2a02:6b8:0:204::1: ICMP6, echo reply, seq 0, length 16
```
From Internet:
```
# ping6 2001:470:7ad7:fd44::2
```
Also I tried to open www.freebsd.org, www.google.com, ipv6-test.com from Client. All worked.