Network Users' Group ``wheel'' / Dai ISHIJIMA's Page / RTシリーズルータ /
FreeBSDでIPv6 Privacy Extensionを使う
| はじめに | 設定 | 関連リンク |

初版: 2011-05-15
最終更新日: 2012-02-14


FreeBSDでIPv6 Privacy Extention を使う

あなたは ec2-3-141-46-108.us-east-2.compute.amazonaws.com (3.141.46.108) から
IPv4 でアクセスしています。

☆はじめに

FreeBSDにおいて、 /etc/rc.confに「ipv6_enable="YES"」と書くと、 IPv6が(利用可能な環境であれば)使えるようになります。 このとき、IPv6アドレスは、 ネットワークインターフェイスのMACアドレスを元に自動生成されます。 たとえば、 MACアドレスが「PP:QQ:RR:XX:YY:ZZ」で IPv6プレフィックスが「2001:0db8:1234:5678/64」だったとすると、
	% ifconfig -a
	中略
        ether PP:QQ:RR:XX:YY:ZZ
        inet6 2001:0db8:1234:5678:PpQQ:RRff:feXX:YY:ZZ prefixlen 64 autoconf 
となります。ここで、Pp = 0x02 ^ PP です。

48ビットのMACアドレスを24ビットずつに分け、その間に「ff:fe」を入れた、

	PP:QQ:RR:ff:fe:XX:YY:ZZ
を48ビットのMACアドレスから生成したEUI-64識別子と呼ぶらしいです。 ここから、先頭の7ビット目を反転させた(Pp = 0x02 ^ PP とした)、
	Pp:QQ:RR:ff:fe:XX:YY:ZZ
を(48ビットMACアドレスから or EUI-64識別子から生成した) インターフェイス識別子と呼ぶそうです。 詳しい話はRFC2373を参照してください。

前置きが長くなりましたが、 IPv6アドレスの下位64ビットを見ると、MACアドレスがバレバレです。 つまり、IPv6アドレスの下位64ビットを調べると、 『MACアドレスが「PP:QQ:RR:XX:YY:ZZ」な ネットワークインターフェイスを使っている人』を 追いかけることが可能ということです。

これはなんとなく気持ち悪い、と感じる方のためには、 Privacy Extension (RFC4941) という仕組みが用意されています。 Windowsなどでは、これがデフォルト設定のようです。

FreeBSDでは、デフォルトでは無効になっているらしいですが、 これは、/etc/sysctl.conf で設定できます。

ちなみに、Linuxでの設定方法は、 Ubuntu Linuxで匿名アドレス(RFC4941)を有効にするhttp://dr.slump.jp/IPv6/rfc3041/) などを参照してください。


☆/etc/sysctl.confの設定例

以下の2行を/etc/sysctl.confに追加します。
	net.inet6.ip6.use_tempaddr=1
	net.inet6.ip6.prefer_tempaddr=1
1行目は、Privacy Extension(による一時的なIPv6アドレス)を使う設定、 2行目は、Privacy Extension(による一時的なIPv6アドレス)を優先的に 使用する設定です。 これを追加して再起動すると、
	% ifconfig -a
	中略
        ether PP:QQ:RR:XX:YY:ZZ
        inet6 2001:0db8:1234:5678:02QQ:RRff:feXX:YYZZ prefixlen 64 autoconf 
        inet6 2001:0db8:1234:5687:適当に:乱数を:下位に:割り当て prefixlen 64 autoconf temporary 
となります。

Privacy Extensionに関する設定は、

	% sysctl -a | grep inet6 | grep temp
	net.inet6.ip6.use_tempaddr: 1
	net.inet6.ip6.temppltime: 86400
	net.inet6.ip6.tempvltime: 604800
	net.inet6.ip6.prefer_tempaddr: 1
こんな感じで出てきます。 あとは適当に調べてみてください。

「net.inet6.ip6.use_tempaddr=1」だけだと、 一時的なIPv6アドレスが割り当てられるだけで、 実際に使われるのはMACアドレス由来のIPv6アドレスが優先されるかも知れない… ので、どのIPv6アドレスが使われるのかを確認してくださいね。


関連リンク


ご質問などありましたらお気軽に