IPv6アドレスはインターフェースに複数のIPアドレスがつけられるようになって います。元々はこうした設定は Unix ではエイリアス(alias)アドレスと呼ばれ、 IPv4でも使える機能でした。
UnixでIPアドレスをインターフェースに設定するには ifconfig コマンドを利用 します。
# ifconfig fxp0 inet 192.168.1.1/24 alias
|
一方、IPv6 では以下のように指定します。
# ifconfig fxp0 inet6 fe80::10 alias
|
FreeBSDのifconfig では、alias と add は同じ意味です。また、つけたIPアドレス を削除する場合には、-alias (deleteと同じ)を使います。
# ifconfig fxp0 inet6 fe80::10 -alias
|
また、EUI-64から作ったインターフェースIDをつけるのは面倒なので、これを 自動的に行うオプションもあります。
# ifconfig fxp0 inet6 fec0:: eui64 alias
|
これを実行すると、以下のようにリンクローカルのインターフェースIDを 使って、プレフィックスとつけたアドレスが合成されます(但し、この例は サイトローカルですので、実際には使わないことになっています)。
# ifconfig fxp0
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3<rxcsum,txcsum>
inet 10.16.164.110 netmask 0xffffff00 broadcast 10.16.164.255
inet6 fe80::290:ccff:fe22:8b4c%fxp0 prefixlen 64 scopeid 0x1
inet6 fec0::290:ccff:fe22:8b4c prefixlen 64
ether 00:90:cc:22:8b:4c
|
実際には、EUI-64から生成されたインターフェースIDは自動的に振られるので、 こうした手動設定は必要ありません。しかし、サーバなどを立てる場合には、 このEUI-64から生成した集約可能ユニキャストアドレスは不便な部分もあります。 というのは、サーバのインターフェースカードを交換したり、サーバのマシン自体 を交換するたびにDNSを書き換える必要があるからです。そして、DNSの情報の 書き換えは即座には反映されないので、そのために問題になる場合もあります。 従って、サーバなどのインターフェースIDは、ステートレスで自動構成される アドレスの他に、公開用のアドレスを振るのが賢明です。この際には、EUI-64の グローバルビットに注意してください。通常は、インターフェースIDの 上位32bitは全て0 にしておけば良いでしょう。
下の例では、ステートレス設定によって集約可能なユニキャストアドレスは 既に自動設定されており、そのプレフィックス(/64)を使って、インターフェースID に :0:0:0:1 を手動で設定しています。
# ifconfig fxp0 inet6 2001:2f8:43:1000::1 alias
# ifconfig fxp0
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::290:27ff:feba:6fc9%fxp0 prefixlen 64 scopeid 0x1
inet6 2001:2f8:43:1000:290:27ff:feba:6fc9 prefixlen 64
inet6 2001:2f8:43:1000::1 prefixlen 64
|
これらの手動設定は、リブートすると消えてしまいますので、/etc/rc.confに 設定しておきます。
# サーバなどに固定IPv6アドレスを振る場合 /etc/rc.confへ追加 1 ipv6_ifconfig_fxp0_alias0="2001:2f8:43:1000::1" |
勿論、複数ある場合には、複数を書きます。
# サーバなどに固定IPv6アドレスを振る場合 /etc/rc.confへ追加 2 ipv6_ifconfig_fxp0_alias0="2001:2f8:43:1000::1" ipv6_ifconfig_fxp0_alias1="2001:2f8:43:1000::2" |
これらのアドレスは実際には
/etc/rc.d/network_ipv6 のスクリプトによって読み込まれ、
自動的に設定されます。しかし、残念ながらまだこれらのスクリプトも完全では
なく、プレフィックス 2001:2f8:43:1000 を取得した後に、そこに
::1 や ::2 を追加するようにはなっていません。従って、一度
手動でプレフィックスを取得し、その後 ifconfig コマンドを使ってそれらの
プレフィックスをカット&ペーストし /etc/rc.conf に設定しなければならない
のです。