■ フォルトトレラント
フォルトトレラントってなんです?
ん〜、なかなか日本語では適当な訳がないな。
「耐障害性」……、違うな。「耐誤作動性」……、う〜ん。
つまり、どういうことなんですか?
「誤り(fault)」に「耐性のある(tolerant)」ということだ。
つまり、システムの一部に障害・誤作動が発生してもシステムとして動作しつづける機能を持っていること、ということだ。
あ〜なんか聞いたことあるような。
ふぇーるせーふ? ふぇーるそふと? ふーるぷるーふ? ふぇいるおーばー?
フェールセーフとフールプルーフは違うだろう。
フェールソフトもちょっと違うな。今回の話はフェイルオーバかな。
ははぁ、フェイルオーバ。
というか、経済産業省の基本情報処理試験のような話になってきましたね。 ▼ link
あ〜、確かによくでる設問の1つだな。
まぁ、ともかくだ。このフォルトトレラントについての話だ。
「システムの一部に障害・誤作動が発生してもシステムとして動作しつづける」……?
例えば、冗長構成とかですか?
そうだ。冗長構成をとったシステムはフォルトトレラントである、と言えるだろう。
最近説明した例でいえば、スイッチの冗長構成を実現させるSTPがそうだな。
ですよね。
あとは、複数のルータで複数の経路を維持、それの管理をおこなうルーティング・ルーティングプロトコルとか。
ロードバランサなどもそうだ。
ルーティングも言われてみれば、複数経路の冗長構成って感じですね。
うむ、こうして考えてみるとネットワーク、特にレイヤ2・3というのはフォルトトレラント、24 × 365をいかに成立させるかというところに力が結構さかれているものなのだよ。
ははぁ。で、今回はどんなフォルトトレラントの実現方法なんですか?
BCMSNだからな。LAN内での冗長構成だな。
特にデフォルトゲートウェイの冗長化だ。
でふぉるとげーとうぇいの冗長化?
■ デフォルトゲートウェイの障害
キャンパスネットワークのところでもでてきたが、ディストリビューション層のマルチレイヤスイッチが、アクセス層の各サブネットのデフォルトゲートウェイになるわけだ。
[FigureSW02-06:ディストリビューション層の冗長化]
冗長構成にした場合、前に使った図だが、上図のようになるわけだ。
あ〜、はいはい。1つのスイッチコアに2つのマルチレイヤスイッチ。STPでブリッジングループを回避して……。
何が問題なんです?
問題は、デフォルトゲートウェイの設定は静的に行われることと、多くの場合デフォルトゲートウェイは1つだけ設定可ということだな。
設定は静的? だって、DHCPで配布可能じゃないですか、デフォルトゲートウェイ。
動的ですよ?
あぁ、そういう意味では動的だが。
つまり、こうだ。
[FigureSW18-01:デフォルトゲートウェイの障害]
デフォルトゲートウェイの配布という点では確かにDHCPで動的だが。
設定を動的に変更できるわけではない。
じゃあ、ルータがダウンしたら、DHCPで新しいデフォルトゲートウェイを配布すればいいじゃないですか。
それは確かにそうだが、デフォルトゲートウェイがダウンしたことを、ネットワーク管理者が知り、それをDHCPサーバに設定しなおさなければならない。
人の手が入る時点で、それは動的な冗長構成とは言えんだろう。
あ〜、そういうことですか。
確かに、そういう意味では静的ですね。
つまりホストのルーティングが静的なのが問題なわけだな。
異サブネット間の通信がまったくダメになってしまうとどうなるかは、20/80ルールを考えてみるとわかるだろう。
20/80だから、異サブネット宛が80%ってわけですからね。
全体の通信量の80%が通信不可ってかなり痛いですよね。
もう1つ、プロキシARPを使っていた場合も、同様のことが起きる。
[FigureSW18-02:プロキシARPでの障害]
こっちはARPキャッシュが残っている間、ですか。
そうだな。プロキシARPは場合によっては同サブネットで別リモートサイトとの接続にも使われたりするから、ARPキャッシュのタイムアウトが長いと結構困る。
要約すると、「デフォルトゲートウェイがダウンすると困る」ですか?
ま、そういうことになるな。
物理的な冗長化だけではデフォルトゲートウェイは冗長化できないと言ってもいいだろう。
あ〜、確かにそうかも。
■ デフォルトゲートウェイの冗長化
では、どのように冗長化するか、という点だが。
Windows2000やXPならば、複数のデフォルトゲートウェイを設定する、という方法もあるが…。
[FigureSW18-03:デフォルトゲートウェイの複数設定]
あるが? ダメなんですか、この方式?
いや、切り替えまでに結構時間がかかったり、制限があったり、手間なのだよ。 ▼ link
面倒なんですね。
面倒、というかTCPタイムアウト3回って結構長く感じるものなのだよ。
ともかく、他にも手はある。ホスト側でルーティングプロトコルを使用するという手だな。
ホスト側でルーティングプロトコル? OSPFとかRIPとか?
そうだ、そうすれば、ルータ(デフォルトゲートウェイ)のダウンがルーティングプロトコルにより通知される。
通知されれば、ルーティングプロトコルによりルーティングテーブルの書き換えが行われるからな。
あ〜、なるほど。
さっき「ホストのルーティングが静的」だっていってたので、動的にしちゃうんですね。
そういうことだな。まぁ、ホスト側だけだから、RIPで十分だろう。
ホスト側からアップデートかける必要もないだろうから、passive-interfacをつかってだな。
そうだとすると、デフォルトゲートウェイでRIP以外を使ってたら再配布が必要ですね。
そうだな。
あ〜、RIPでいいといったが、RIPだとコンバージェンスの問題があるな。
じゃ、OSPFか何かを。
まぁ、OSPFが使えれば、な。
ただ問題はホストをわざわざルータにする必要がほんとにあるのか、という点だな。
デフォルトゲートウェイの冗長化のためでしょ?
確かにそうだが、もうちょっと、こうスマートにだな。
すまーと、っすか。
というわけで、ここで違うソリューションの説明になるわけだ。
今回の主役である、HSRPだ。
えいちえすあーるぴー。ほっとすたんばいるーてぃんぐぷろとこる?
■ HSRPの概要
そうだ。冗長のための予備のルータをホットスタンバイ状態において置くためのプロトコルだな。
ははぁ、ホットスタンバイ。
ちなみに、HSRPはCisco独自の規格だ。
IETFにはデフォルトゲートウェイの冗長化のために、VRRPというプロコトルがある。 ▼ link
ばーちゃるるーたりだんだしーとぷろとこる?
バーチャルルータって仮想ルータ? リダンダンシーってどういう意味です?
リダンダンシーは「冗長」だな。無理に日本語訳すると、「仮想ルータによる冗長化プロトコル」かな?
は〜。それは今回のHSRPとは別の話ですね?
別といえば別だが。実をいうと、VRRPはHSRPをベースに汎用化されたもの、と言っていいくらい似ているのだよ。RFC2338からして[VRRP provides a function similar to HSRP]と言っているぐらいだからな。
は〜。IETFお約束の標準化ですかね。
ま、そういうことだ。さて、VRRPの名前にあるバーチャルルータ、つまり仮想ルータだが。
これがVRRPの冗長化の要であり、さらにHSRPでも仮想ルータを使用して冗長化している。
仮想ルータ…。
どんなルータです?
独自のIPアドレスとMACアドレスを持つ、実体のないルータだ。
仮想ルータ宛のパケットは実体のある別のルータが受け取り、ルーティングする。
?
詳細な動作は次回以降に譲るが、簡単な説明ならば、こう。
[FigureSW18-04:HSRP]
は〜、なるほど。仮想ルータのアドレス宛に送ると、主系か予備系か、どちらかのルータが受け取るんですね。
そういうことだ。
なんか、幼稚園でやるサンタさんへの手紙みたいですね。子供達がサンタさんへ手紙を送るんだけど、実際受け取るのは子供達のパパ、みたいな。
いやそれは、例としてどうだろう?
まぁ、ネット君のように中学校までサンタを信じていた人間にとっては適当な例かもしれんが。
な、何故それをっ!?
何故博士が僕の中学校時代の逸話を知ってるんですか?
それは宿題にしておこう。
うぁ〜、気になる〜。
ともかく、HSRPでは4種類のルータが稼動する。
- アクティブルータ
- スタンドバイルータ
- 仮想ルータ
- その他のルータ
その他のルータって出てきませんでしたけど、なんです?
うむ、アクティブとスタンドバイ両方のルータがダウンした際に、その他のルータからアクティブとスタンドバイが選ばれる、ということだ。
あ〜、予備系の、さらに予備系ってことですか。
ま、そうだな。これらのルータ群でHSRPグループを形成するわけだ。
ぐるーぷ?
つまり、グループでアクティブ、スタンドバイによる仮想ルータが1つ設定され、グループ内の他のルータはさらに予備系として存在する、ということだな。
なるほど。
ちなみにルータは複数のグループに所属してもよい。さらに、グループでどの役割になるかということはグループで決定される。
?
つまり、こう。
[FigureSW18-05:複数のグループに所属するルータ]
サブネット1にHSRPを提供するグループとしては、ルータAがアクティブ、ルータBがスタンバイ。
サブネット2にHSRPを提供するグループとしては、ルータAがスタンバイ、ルータBがアクティブ。
は〜。
ま、そういうことだ。
次回はHSRPの動作を詳細に説明しよう。
はい。
というわけで、また次回。
いぇっさ〜。
30分間ネットワーキングでした〜♪
- フォルトトレラント
-
[Fault Tolerant]
「フォールトトレラント」とも。
- フェイルセーフ
-
[Fail Safe]
障害が発生した際に被害を最小限にとどめるよう動作すること。
- フールプルーフ
-
[Fool Ploof]
誤作動を発生しづらい設計。
- フェイルソフト
-
[Fail Soft]
障害が発生した際、障害部を切り離し、最低限の動作を可能にすること。
- フェイルオーバ
-
[Fail Over]
障害が発生した際、セカンダリがその業務を引き継ぐこと。
- ロードバランサ
-
[Load Balancer]
負荷分散装置。
その中でも単純な分散だけでなく、ホストの状態を確認して分散するもののなかにはフォルトトレラント性があるものがある。
- 24 × 365
-
24時間 × 365日の意味。
「常に稼動していること」という意味になる。
- 手間
-
TCPで検出されないと切り替わらなかったり、TCPタイムアウト3回必要だったり。
詳しくは参考リンクの「停止しているゲートウェイの検出」を参照のこと。
- HSRP
- [Hot Stand-by Routing Protocol]
- ホットスタンバイ
-
[Hot Stand-by]
主系と予備系があり、予備系を主系と同じ状態においておき、主系の障害に備える方式。
ちなみに予備系を通常ダウンさせておき、主系の障害時に立ち上げる方式は「コールドスタンバイ[Cold Stand-by]」と呼ばれる。
- VRRP
-
[Virtual Router Redundancy Protocol]
RFC2338で規定。
- 言っている
-
正確には、
VRRP provides a function similar to a Cisco Systems, Inc. proprietary protocol named Hot Standby Router Protocol (HSRP) [HSRP] and to a Digital Equipment Corporation, Inc. proprietary protocol named IP Standby Protocol [IPSTB].
です。DECのIPSTBも入ってます。
- ハイパーネット君の今日のポイント
-
- デフォルトゲートウェイの障害はホストに対し大きな影響力を持つ。
- ホストのルーティングが静的であるため、障害に対して動的にルートを変更できない
- HSRPはデフォルトゲートウェイの冗長化を実現する。
- 独自のアドレスを持つ仮想ルータが存在する。
- 仮想ルータ宛のパケットはアクティブルータが処理する。
- アクティブがダウンの際は、スタンバイが処理を代行する。
- ホスト側ではアクティブ・スタンバイを認識する必要はない。
- デフォルトゲートウェイの障害はホストに対し大きな影響力を持つ。
- 参考リンク
-
- 情報処理技術者試験センターhttp://www.jitec.jp/▲
- Windows TCP/IP のデフォルトゲートウェイの動作http://www.microsoft.com/japan/technet/community/columns/cableguy/cg0903.mspx▲
- RFC2338http://www.rfc-editor.org/rfc/rfc2338.txt▲