IPv6 アドレスの 64 ビットインタフェース ID は、IPv6 Addressing Overviewで説明したように、「「IPv6 アドレス指定の概要」」とも呼ばれます。トークンは、アドレスが自動構成されるときに、インタフェースの MAC アドレスに関連付けられます。ほとんどの場合、経路制御を行わないノード (IPv6 ホストと IPv6 サーバー) では、自動構成されたトークンを使用するようにしてください。
ただし、システムが保守されるときにインタフェースが定期的に交換されるサーバーでは、自動構成されたトークンを使用すると問題が発生することがあります。インタフェースカードが変更されると、MAC アドレスも変更されます。その結果、IP アドレスが変わらないことを前提とするサーバーでは、問題が発生することがあります。ネットワークインフラストラクチャーの各ノード (DNS、NIS など) に、サーバーのインタフェースに固有の IPv6 アドレスが保存されている場合があります。
アドレスが変わることで発生する問題を回避するために、IPv6 アドレスのインタフェース ID として使用されるトークンを手動で構成できます。トークンを作成するには、IPv6 アドレスのインタフェース ID 部分に相当する 64 ビット以下の 16 進数を指定します。それ以降は、アドレスが自動構成されるときに近傍検索によって作成されるインタフェース ID は、インタフェースの MAC アドレスからは作成されません。代わりに、手動で作成したトークンがインタフェースID になります。このトークンは、カードを交換しても、インタフェースに割り当てられたままになります。
ユーザー指定のトークンと一時アドレスとの違いは、一時アドレスがランダムに生成されるのに対し、ユーザー指定のトークンはユーザーが明示的に作成する点です。
次の手順は、インタフェースが定期的に置き換えられるサーバーで特に役立ちます。また、任意の IPv6 ノード上でユーザー指定のトークンを構成する場合にも有効です。
トークンを構成するインタフェースが plumb されていることを確認します。
IPv6 アドレスのトークンを構成するときは、そのインタフェースが plumb されている必要があります。
# ifconfig -a6 |
qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2 ether 0:3:ba:13:14:e1 inet6 fe80::203:baff:fe13:14e1/10 |
この出力から、ネットワークインタフェース qfe0 が plumb されていて、リンクのローカルアドレス fe80::203:baff:fe13:14e1/10 が割り当てられていることがわかります。このアドレスは、インストール中に自動的に構成されています。
ノードのインタフェースのトークンとして使用する、1 つまたは複数の 64 ビットの 16 進数を作成します。トークンの例については、「リンクローカルユニキャストアドレス」を参照してください。
各インタフェースをトークンで構成します。
次の形式の ifconfig コマンドを使用して、ユーザー指定のインタフェース ID (トークン) を各インタフェースに割り当てます。
ifconfig interface inet6 token address/64 |
たとえば、インタフェース qfe0 をトークンで構成するには、次のコマンドを使用します。
# ifconfig qfe0 inet6 token ::1a:2b:3c:4d/64 |
ユーザー指定のトークンを割り当てるインタフェースごとに、この手順を繰り返します。
(省略可能) 新しい IPv6 アドレスがリブート後も保持されるように設定します。
トークンを構成したインタフェースごとに、/etc/hostname6.interface ファイルを編集または作成します。
各 /etc/hostname6.interface ファイルの末尾に次のテキストを追加します。
token ::token-name/64 |
たとえば、/etc/hostname6.interface ファイルの末尾に次のテキストを追加します。
token ::1a:2b:3c:4d/64 |
システムをリブートしたあとに、/etc/hostname6.interface ファイルに構成したトークンがそのインタフェースの IPv6 アドレスに適用されます。この IPv6 アドレスは、それ以降何度リブートしても保持されます。
変更に合わせて、IPv6 デーモンを更新します。
# pkill -HUP -in.ndpd |
次の例のインタフェース bge0:1 には、自動構成された IPv6 アドレスが割り当てられています。サブネット接頭辞 2001:db8:3c4d:152:/64 は、ノードのローカルリンク上のルーターから通知されます。インタフェース ID 2c0:9fff:fe56:8255 は、bge0:1 の MAC アドレスから生成されます。
# ifconfig -a6 lo0: flags=2002000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 bge0: flags=2100801 <UP,MULTICAST,IPv6> mtu 1500 index 5 inet6 fe80::2c0:9fff:fe56:8255/10 ether 0:c0:9f:56:82:55 bge0:1: flags=2180801 <UP, MULTICAST,ADDRCONF,IPv6>mtu 1500 index 5 inet6 2001:db8:3c4d:152:c0:9fff:fe56:8255/64 # ifconfig bge0 inet6 token ::1a:2b:3c:4d/64 # vi /etc/hostname6.bge0 token ::1a:2b:3c:4d/64 # pkill -HUP -in.ndpd # ifconfig -a6 lo0: flags=2002000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 bge0: flags=2100801 <UP,MULTICAST,IPv6> mtu 1500 index 5 inet6 fe80::2c0:9fff:fe56:8255/10 ether 0:c0:9f:56:82:55 bge0:1: flags=2180801 <UP, MULTICAST,ADDRCONF,IPv6>mtu 1500 index 5 inet6 2001:db8:3c4d:152:1a:2b:3c:4d/64 |
トークンの構成が終了すると、bge0:1 の 2 番目の状態行のグローバルアドレスは、そのインタフェース ID に構成された 1a:2b:3c:4d になります。
ネームサービスをサーバーの IPv6 アドレスで更新する方法については、「ネームサービスの IPv6 サポート用の構成」を参照してください。
サーバーの性能を監視する方法については、第 8 章TCP/IP ネットワークの管理 (手順)を参照してください。