さて、VRRPv3でゲートウェイを冗長化した場合、ルータ以外のホスト(PCやサーバ)でも必ず固定のIPv6アドレスを設定して、VRRPの仮想IPを明示的にゲートウェイとして設定しなければならないのでしょうか? もしそうだとすると、プリンタなどの固定デバイスならまだしも、ラップトップPCや無線LAN経由で接続する携帯ゲーム機、スマートフォンなどを接続する際、とても面倒な設定が必要になってしまいます。
この問題を解決するために、モバイルデバイスを収容するLANではVRRPv3とRAを併用するとよいでしょう。
VRRPv3とRAを併用すると、ルータ側でゲートウェイの冗長制御を行い、プリンタなどのノンインテリジェントなホストを収容しつつ、NDPに対応したホストのアドレス設定を自動化できます。
VRRPv3で冗長化された2台のルータにRAを有効にする設定を追加します(図5)。
これまで見てきた例のとおり、一般的なルータでRAを有効にするには“no ipv6 nd suppress-ra”と指定するだけでよく、しかもこの設定は、先に述べたようにほとんどのルータ/スイッチではデフォルトで有効となっているため、多くの場合、明示的に設定する必要はありません(先のVRRPv3の設定では“ipv6 nd suppress-ra”として、明示的にRAがオフなるように設定していました)。
・ルータAの設定内容
interface vlan 100 ipv6 address 2001:db8:ace::2/64 ipv6 address fe80::ace:2 link-local ipv6 enable vrrp 1 ipv6 2001:db8:ace::1 vrrp 1 priority 100 vrrp 1 accept no ipv6 nd suppress-ra // この行を設定
・ルータBの設定内容
interface vlan 100 ipv6 address 2001:db8:ace::3/64 ipv6 address fe80::ace:3 link-local ipv6 enable vrrp 1 ipv6 2001:db8:ace::1 vrrp 1 priority 10 vrrp 1 accept no ipv6 nd suppress-ra // この行を設定
続いて、RAによって、ホストで正しくIPv6アドレスが設定されていることを確認します。
Windows系のOSでは、確認用のコマンド“ipconfig”を用い、MacOSなどのUnix系では“ifconfig”を用います。ここではWindows 7で実行した例を挙げます。
・隣接するWindows 7でのIPv6アドレスの確認
C:\>ipconfig Windows IP 構成 イーサネット アダプター ローカル エリア接続: 接続固有の DNS サフィックス . . . : IPv6 アドレス . . . . . . . . . . . : 2001:db8:ace:0:c414:4e77:b627:40e7 リンクローカル IPv6 アドレス. . . . : fe80::c414:4e77:b627:40e7%12 デフォルト ゲートウェイ . . . . . . : fe80::ace:2%12
・隣接するWindows 7でのIPv6近隣キャッシュの確認例
C:\>netsh interface ipv6 show neighbor ... インターフェイス 12: ローカル エリア接続 インターネット アドレス 物理アドレス 種類 -------------------------------------------- ----------------- ----------- 2001:db8:ace::1 00-00-5e-00-01-01 到達可能 (ルーター) 2001:db8:ace::2 00-12-e2-f8-40-6f 到達可能 (ルーター) 2001:db8:ace::3 00-12-e2-f8-26-2a 到達可能 (ルーター) fe80::ace:2 00-12-e2-f8-40-6f 到達可能 (ルーター) fe80::ace:3 00-12-e2-f8-26-2a 到達可能 (ルーター)
期待どおり、“2001:db8:ace”のネットワークを認識し、正しく収容されています。
VRRPv3では、バックアップステータスのVRRPv3ルータはRAを送信しないので、問題が発生してマスターが切り替わらない限り、ゲートウェイルータは1台しか認識されません。
ここで注目すべきなのは、デフォルトゲートウェイのアドレスです。上の例ではゲートウェイとして、VRRPv3のマスターであるルータAのリンクローカルアドレス“fe80::ace:2”(%12はインターフェイスインデックスです)が指定されています。
これは、VRRPv3の仮想アドレスとしてグローバルアドレスを設定したときの特徴です。問題が発生してルータBにマスターが切り替わると、NDP(Neighbor Discovery Protocol)の機能により、ルータBのリンクローカルアドレス“fe80::ace:3”に隣接ホストの優先経路が自動的に切り替わります。
・[VRRPv3 ルータAで障害発生中]Windows 7でIPv6近隣キャッシュを確認した例
C:\>netsh interface ipv6 show neighbor ... インターフェイス 12: ローカル エリア接続 インターネット アドレス 物理アドレス 種類 -------------------------------------------- ----------------- ----------- 2001:db8:ace::1 00-00-5e-00-01-01 到達可能 (ルーター) 2001:db8:ace::2 到達不可 到達不可 2001:db8:ace::3 00-12-e2-f8-26-2a 到達可能 (ルーター) fe80::ace:2 到達不可 到達不可 (ルーター) fe80::ace:3 00-12-e2-f8-26-2a 到達可能 (ルーター)
VRRPv3の仮想アドレスにリンクローカルアドレスを指定した場合、隣接ホストのデフォルトゲートウェイはどのように認識されるでしょうか?
次の例では、仮想アドレスにリンクローカルアドレス“fe80::ace:1”を指定します。
・[Lonk Local VIP設定時]ルータAの設定内容
interface vlan 100 ipv6 address 2001:db8:ace::2/64 ipv6 address fe80::ace:2 link-local ipv6 enable vrrp 1 ipv6 fe80::ace:1 // この行を修正 vrrp 1 priority 100 vrrp 1 accept no ipv6 nd suppress-ra
・[Lonk Local VIP設定時]ルータBの設定内容
interface vlan 100 ipv6 address 2001:db8:ace::3/64 ipv6 address fe80::ace:3 link-local ipv6 enable vrrp 1 ipv6 fe80::ace:1 // この行を修正 vrrp 1 priority 10 vrrp 1 accept no ipv6 nd suppress-ra
隣接するWindows 7ホストでRAによるIPv6アドレスの設定状態を確認すると、VRRPv3仮想アドレスとして設定したリンクローカルアドレス“fe80::ace:1”(%12はインターフェイスインデックスです)がデフォルト ゲートウェイに指定されていることが分かります。
・[Lonk Local VIP設定時]隣接するWindows 7でのIPv6アドレスの確認
C:\>ipconfig Windows IP 構成 イーサネット アダプター ローカル エリア接続: 接続固有の DNS サフィックス . . . : IPv6 アドレス . . . . . . . . . . . : 2001:db8:ace:0:c414:4e77:b627:40e7 リンクローカル IPv6 アドレス. . . . : fe80::c414:4e77:b627:40e7%12 デフォルト ゲートウェイ . . . . . . : fe80::ace:1%12
さらに、この状態で隣接するWindows 7での近隣キャッシュを確認すると、デフォルト ゲートウェイ“fe80::ace:1”に到達可能で、かつリンクローカルのIPv6仮想アドレスに対して仮想MACアドレス“00-00-5e-00-01-01"”がマッピングされていることが分かります。
・[Lonk Local VIP設定時]隣接するWindows 7でIPv6近隣キャッシュを確認した例
C:\>netsh interface ipv6 show neighbor ... インターフェイス 12: ローカル エリア接続 インターネット アドレス 物理アドレス 種類 -------------------------------------------- ----------------- ----------- 2001:db8:ace::2 00-12-e2-f8-40-6f 到達可能 (ルーター) 2001:db8:ace::3 00-12-e2-f8-26-2a 到達可能 (ルーター) fe80::ace:1 00-00-5e-00-01-01 到達可能 (ルーター) fe80::ace:2 00-12-e2-f8-40-6f 到達可能 (ルーター) fe80::ace:3 00-12-e2-f8-26-2a 到達可能 (ルーター)
つまり、VRRPv3の仮想アドレスにリンクローカルアドレスを指定すると、問題が発生してVRRPが切り替わっても、収容されているホストは、ルーティングテーブルおよび近隣キャッシュを更新する必要がなく、通信を継続することができます。
【関連リンク】
IPv6 VRRPとRAの連携について - アラクサラネットワークス(AlaxalA Networks Corp,.)
http://www.alaxala.com/jp/techinfo/archive/manual/AX3650S/HTML/11_7/CFGUIDE2/0321.HTM
http://www.alaxala.com/jp/techinfo/archive/manual/AX3650S/HTML/11_7/CFGUIDE2/0322.HTM
ここまで、IPv6を運用する観点から、ルータの冗長化についていくつか例を挙げて紹介しましたが、運用レベルで実現できる冗長構成は、ほかにもまだたくさんあります。特に、最近のレイヤ3スイッチの中には、複数の筐(きょう)体を仮想的に1台のように扱う機能(バーチャルシャーシやスタック)を搭載するものも増えてきましたし、従来からあるリングプロトコルなどの冗長制御も、よりインテリジェントに実装されています。
しかしこれらの機能も、基本は、ポートのブロッキングやVLANのアップ/ダウンの制御を契機として、ノードのNDP処理により通信経路を切り替える方式がほとんどです。それらの挙動を整理するうえでも、本稿でまとめたNDP、RA、近隣キャッシュに関する記事が役に立つと思います。
連載はまだ続きますので、今後の記事にもご期待ください。
株式会社日立製作所/アラクサラネットワークス株式会社 ネットワーク技術部 課長
IPv4アドレス枯渇対応タスクフォース テストベッドワーキンググループ
高津智明(Tomoaki Kohzu[MooMoo])
Copyright © ITmedia, Inc. All Rights Reserved.