第4回 「VRRPによるネットワークの冗長化」
システムダウンなどということが許されない時代。もし障害が発生したときでも、瞬時に復旧するようなネットワークが求められています。とはいえ、絶対に壊れない機器などありえませんし、壊れないにしても復旧に時間がかかる場合もあるでしょう。避けられない障害に対し、2重3重の迂回経路を用意することでネットワークの通信を寸断させない方法、それがネットワークの冗長化です。今回はネットワークの冗長化手法の一つ「VRRP(Virtual Router Redundancy Protocol)」について解説します。
語り手は製品開発本部の清野崇です。
Q:ネットワークの冗長化とは具体的にはどのようなことを指すのでしょうか?
清野:ネットワークの冗長化と一言で言いましてもいろいろあります。例えば、第3回「ネットワークの運用面をサポートするリンクアグリゲーション」で取り上げたリンクアグリゲーションは「回線」を冗長化するための手法でした。今回取り上げますVRRPはネットワークを冗長化するために「機器」を冗長化する重要な手法の一つとなります。
Q:機器を冗長化するということは、障害時用に機器をもう1台用意しておくということですよね?
清野:単純に言うとそうなりますが、通信を途切れさせないためには、マスタ装置(通常運用時の機器)と共にバックアップ装置(障害時用の予備機器)も作動させた状態で待機させ、マスタ装置の障害時には瞬時にバックアップ装置が交代できるようにしておく必要があります。このような方式をホットスタンバイと言いまして、VRRPはルータ(およびL3スイッチ)におけるホットスタンバイ機能の一つです。
VRRPでは、複数のルータに同じ1つの仮想IPアドレスを登録することで、端末側からはあたかも1台のルータ(仮想ルータ)であるかのように見えます。端末側にはこの仮想ルータをデフォルトゲートウェイとして設定することで、ルータに障害が発生しマスタとバックアップが切り替わったとしてもデフォルトゲートウェイのアドレスは変わらないので、端末側では切り替えを意識する必要がありません。つまり、端末側は何もせずともルータが勝手に切り替わってくれるというのが、VRRPの特徴です。
![]() |
| 図1 VRRPによるネットワークの冗長化 |
Q:マスタでの障害の発生を、バックアップ側はどのようにして知るのでしょうか?
清野:マスタとして設定されたルータは、一定の間隔でバックアップ側へ稼動している証としての制御パケットを送っており、この制御パケットを受信している限り、バックアップ側は待機し続けます。しかしマスタに障害が生じバックアップ側が制御パケットを受信できなくなると、バックアップ側は待機状態からマスタ状態へ自動的に切り替わり稼動し始めます。
Q:障害が発生したという特別な通信があるわけではなく、元気でやっていますという便りが無くなったら自主的に交代するのですね。解りやすい仕組みですね。
清野:そうですね。ただVRRPはL3における機能ですが、実際のネットワークにおいてはルータの下にL2スイッチを複数配置するような構成が多いです。そのため、STPやRSTP等といったL2の機能と組み合わせ、L2,L3両方のレベルで全体としての経路の切り替えを行う必要があります。
Q:VRRPを利用することで、確実にネットワークの通信が維持されるというのは魅力的ですね。
清野:はい。しかし、機器の障害だけでなく通信経路上で障害が起こる可能性もあります。そのような場合にも、迂回経路に切り替えるための機能として「VRRPポーリング機能」(図2)があります。VRRPポーリング機能とは、上流ネットワークの宛先ルータへpingで疎通確認を行い、障害を検知した場合にVRRPの経路切り替えにより障害を回避する機能です。これにより、ネットワークのはるか先の障害を迂回できる可能性が高くなります。
![]() |
| 図2 ポーリング機能 |
Q:ネットワークの信頼性が増す付加機能なのですね。
清野:どのような障害でも通信を継続させるというのが冗長化の目的ですので、様々な手段を組み合わせて進化させています。 そのほかにも利便性を増すための付加機能として、仮想ルータのIPアドレス宛のpingコマンドに対しても応答する機能や、障害復旧後にオペレータがコンフィグを修正しなくてもコマンド操作で経路を元に戻すことができる「コマンドによる切り戻し機能」などを用意しています。「コマンドによる切り戻し機能」は、それまで障害復旧後には通信経路が自動的に切り戻されていたのに対し、障害の発生原因を突き止め再発の危険が無いことを確認してから復旧させたいというお客様のご要望に応えたものです。
Q:ところでVRRPで冗長化すること自体は非常に魅力的なのですが、バックアップ用に余分に機器を購入するとなると、コスト的に負担が大きいですね…
清野:ここまでは冗長化の説明のみに焦点を絞ってお話してきましたが、実はVRRPを利用することにより、各ルータに負荷分散をさせることができます。例えば図3のように、通常の運用時には端末Aにはルータ1をマスタとして利用する仮想ルータID:Aをデフォルトゲートウェイとして設定し、端末Bにはルータ2をマスタとして利用する仮想ルータID:Bをデフォルトゲートウェイとして設定します。すると、もしルータ1に障害が発生したときはルータ2がバックアップとしての役割を担い端末Aと端末Bの通信を引き受けるというような利用の仕方ができるのです。 バックアップとはいえ、障害時だけではなく通常の運用時にも活用することができますので、VRRPを利用することで、利便性が高くかつ信頼性の高いネットワークを構築することができます。
![]() |
![]() |
| 図3 VRRPを利用した負荷分散の例 |
Q:通常時は負荷分散装置として利用しつつ、障害時にはバックアップとして機能するということであれば無駄がなく、導入しやすいですね。
清野:ええ。VRRPのプロトコル自体は実装例も豊富で利用されてきたプロトコルです。これに加え、長年の運用実績に基づく使い勝手に対するお客様のご要望をコツコツとフィードバックさせて頂くことにより、このような充実した付加機能を実現することができました。今後も継続して進化させて行きたいと思っていますので、どうぞご期待ください。





