IPv6アドレスの構造 その7 エニーキャストアドレス
目次
エニーキャスト
エニーキャストという通信の仕組みについてもう一度振り返りましょう。エニーキャストは、複数のインタフェースに同じアドレスを設定します。いいかえると、ひとつのアドレスを複数のインタフェースで共有するわけです。この共有しているアドレスがエニーキャストアドレスとなります。
エニーキャストアドレスを送信先アドレスとして指定すると、送信元から最も近いインタフェースにパケットが送信されることになります。ここでいう「近い」というのは、ネットワーク上で利用しているルーティングプロトコルのメトリックによって判断されます。
ちなみに、IPv4ではエニーキャストの概念がなかったって書いているドキュメントなどもありますが、IPv4でもエニーキャストの通信を行うことはできます。たとえば、マルチキャストルーティングを行うPIM-SMのRP(Rendezvous Point)の負荷分散と冗長化を実現するためにエニーキャストを使います。
エニーキャストアドレス
上記のようなエニーキャストの通信を行うためには、エニーキャストアドレスを設定します。ただし、エニーキャストアドレスとして特別なIPv6アドレスが定義されているわけではありません。グローバルユニキャストアドレスのアドレスをエニーキャストアドレスとして利用することになります。つまり、複数のインタフェースに同じグローバルユニキャストアドレスを設定するとエニーキャストアドレスになるわけです。
エニーキャストアドレスは、グローバルユニキャストと区別をつけることはできませんが、エニーキャストアドレスを設定しているホストは、そのアドレスがエニーキャストアドレスであることを認識している必要があります。設定するときに、設定したアドレスはエニーキャストアドレスであることを指定するわけです。
ただ、すぐにエニーキャストアドレスとわかる予約済みのエニーキャストアドレスもあります。64ビットのユニキャストプレフィクスと64ビットの「0」から構成されるアドレスは、サブネットルータエニーキャストアドレスといいます。このエニーキャストアドレスは、特定のユニキャストプレフィクスを持つサブネット上のルータを表しています。
サブネットルータエニーキャストアドレス
[unicast_prefix}::
たとえば、2001:db8:100:1::/64というサブネット上のルータは、2001:db8:100:1::のサブネットルータエニーキャストアドレスを自分のアドレスとして認識します。このサブネットルータエニーキャストアドレスあてのパケットは送信元から考えて、2001:db8:100:1::/64上の最も近いルータに送信されることになり
ます。