【ルーティング⑧】ルーティングを冗長化する方法3選

routing-part8

それなりの規模のネットワークであればルーティングも冗長化されるわよね?でも設計ってどうやるのかしら?

チャーチルさん

ポン先生

ルーティングの冗長化のやり方は色々あるけど基本は3パターンかな。実際の環境ではルーティング以外の設計も組み合わせて冗長化するけどルーティング自体は基本を理解できれば大丈夫だよ。

ルーティングの冗長化と言うと少し難しく感じるかもしれませんがルーティングが決定するプロセスを理解できていればそこまで複雑ではありません。この記事ではルーティングの冗長化設計を考える際に基本となる3パターンを紹介します。構築時だけでなく障害時のトラブルシューティングでも役に立つ知識なので是非理解しましょう。

ルーティルングの冗長化とは

まずルーティングの冗長化とは何でしょうか?結論としては下図のように通常時にトラフィックが通過するルートで何かしら障害が発生した場合に、もう一つのバックアップルートへ自動的に切り替わる仕組みの事です。例えば機器が故障した場合でもひとまずユーザの通信は継続出来るので業務は続行、その間に故障した機器を交換し完全に復旧することができます。

ルーティングの冗長化

因みに上記はActive/Standby構成と言います。通常時はActive機のみ通信を転送、Standby機は障害発生時のみ転送という構成です。設計次第では常時両方稼働するActive/Active構成も可能ですがこの記事は分かりやすくするために基本となるActive/Standby構成を前提とします。

また、ルート数はやろうと思えば3つ4つと増やす事もできますが一般的な企業LANであれば2ルートでの冗長化が多いです。もちろん、大規模なネットワークやデータセンターでは4本で冗長化というパターンも有りますが基本的な考え方は同じです。この記事では最もシンプルな2本構成で説明します。

ルーティングを冗長化する方法3選

では具体的な設計方法を説明します。基本は下記3つの方法になります。

ルーティングを冗長化する方法3選
  • ロンゲストマッチによる冗長化
  • AD値による冗長化
  • メトリックによる冗長化

ロンゲストマッチ、AD値、メトリックの仕組みはこの記事で解説しています。まずはこちらの内容を理解しましょう。

ロンゲストマッチによる冗長化

1つ目はロンゲストマッチによる冗長化です。ロンゲストマッチとはざっくり言うと、『宛先IPアドレスを含む複数の経路情報の内、サブネットマスク(aa.bb.cc.dd/xxのxx)の数字が一番大きいものが有利である』というルールです。例えば下記のような構成で考えてみましょう。

ネットワーク構成(ロンゲストマッチ)

■シチュエーション
宛先IPアドレス:192.168.100.1
ルータAから広報される経路情報:192.168.100.0/24
ルータBから広報される経路情報:192.168.0.0/16

この場合、ルータ1はどちらに転送するでしょう?どちらも宛先IPアドレスである192.168.100.1を含んでいますが192.168.100.0/24の方が/xxの数字が大きい(=よりピンポイントで宛先IPアドレスを含んでいる)ためルータAが採用されます。

しかしこれはこの通信の瞬間はルータAへ転送されるというだけあってルータBの存在が無くなる訳ではありません。ルータAが故障した場合192.168.100.0/24の経路も消滅します。その時192.168.100.1宛の通信を転送出来るのは192.168.0.0/16だけなので自動的にルータB経由へ切り替わります。

このようにロンゲスマッチベースの冗長設計では、メインルータの経路とバックアップルータの経路でサブネットマスク値に差を付ける事で冗長化を実現します。

ポン先生

これはRIPやOSPFなどのダイナミックルーティング想定の絵だけど、一応スタティックルーティングの設定でもできない事は無いよ。ただ少しマニアックな話になるからここでは割愛するね。

AD値による冗長化

次はAD値を使った冗長化です。AD値とはルーティングプロトコル毎の信頼度を表す数字です。より信頼出来る(AD値の小さい)プロトコルが優先されるという事ですね。基本的な流れはロンゲストマッチのケースと同じで、比較する指標が違うというイメージです。

ネットワーク構成(AD値)

■シチュエーション
宛先IPアドレス:192.168.100.1
ルータAから広報される経路情報:192.168.100.0/24、OSPF
ルータBから広報される経路情報:192.168.100.0/24、RIP

今度はどちらも192.168.100.0/24でロンゲストマッチ的には同じです。違いはルーティングプロトコルが『OSPFかRIPか』の部分です。OSPFはAD値110、RIPは120です。つまり『一般的な話としてRIPよりもOSPFの方が信頼できるプロトコルである』という事なのです。

したがって通常時はOSPFで経路広報しているルータAへ転送、ルータA障害時はルータBへ切り替わります。

AD値による冗長化

AD値ベースの冗長設計では各プロトコルが持つ固有のAD値の差を利用して冗長化を実現します。

ポン先生

ただし、OSPF=110、RIP=120というのはデフォルトのAD値であって変更もできるよ。例えば『どうしてもRIP側の経路を優先させたいけど、プロトコル自体は変更できない』なんて時はRIP側のAD値を下げればルータBがメインになるよ。

メトリックによる冗長化

最後はメトリックによる冗長化です。メトリックとは同じプロトコル同士で経路を比較する時の指標です。例えばOSPFのメトリックはコスト値で、複数のOSPFの経路がある場合はコスト値が低い経路が優先されます。

ネットワーク構成(メトリック)

■シチュエーション
宛先IPアドレス:192.168.100.1
ルータAから広報される経路情報:192.168.100.0/24、OSPF、コスト20
ルータBから広報される経路情報:192.168.100.0/24、OSPF、コスト100

この例ではロンゲストマッチ的にもAD値的にも同じなのでOSPFのコスト値で比較します。ルータ1から見ると、ルータAの経路はコスト20、ルータBの経路はコスト100です。

したがって通常時はルータAへ転送、ルータA障害時はルータBへ切り替わります。

メトリックによる冗長化

メトリックベースの冗長設計では各経路のメトリックに差を付ける事で冗長化を実現します。

ポン先生


メトリックに関してもデフォルト値のままでも良いけど、設定で調整する事も可能だよ。明示的にデフォルトとは違う値を設定する事で設計上のポイントを強調しよう。

細かい事を言えばもう少し違うやり方も有りますが、基本は上記3手法になります。どれもルーティング(ネクストホップ)が決まる際の基本を使った方法に過ぎません。どのパターンを採用してどのような冗長構成を組むかがネットワークエンジニアの腕の見せ所になります

完全な更地から新規構築するのであればいくらでもやりようがありますが、頻度として多いのは既存環境の構成変更です。シングル構成からの冗長化、既存は冗長構成だが要件変更に伴い構成も変更、既存環境の設定不備の手直し等々・・・

要件を確認した上で、最適な構成を作って行きましょう!

まとめ

ポイント
  • ルーティングの冗長化とは障害発生時にバックアップルートへ自動的に切り替わる仕組み

  • 冗長化の基本的な方法は3パターン

    • ロンゲストマッチによる冗長化 → サブネットマスクの差を利用

    • AD値による冗長化 → プロトコル毎の信頼度の差を利用

    • メトリックによる冗長化 →プロトコル毎の指標の差を利用

実はこの記事1本を完璧に理解しているだけルーティングの基本はほぼOKと言っても過言ではありません。もちろん、個別のルーティングプロトコルの勉強は必要ですが、ルータがどういう状態の時にAルートに転送 or Bルートに転送、という事の整理がルーティグの勉強です。『正常時はxxxという状態、障害時はyyyという状態です』という事が即答できるのであればあなたはプロのネットワークエンジニアです!その調子で頑張って行きましょう(*^^*)