ECMPって、そもそもナニ?

はじめに

突然ですが、あなたが毎朝通勤しているとしましょう。自宅から会社まで行くルートが1本しかないとしたら、どうなるでしょうか? 事故があっても、工事があっても、その1本の道に全員が集中します。当然、大渋滞です。

でも現実には「裏道」や「高速道路」など、複数のルートがありますよね。賢いドライバーなら、混み具合を見ながら道を選びます。おかげで全体の渋滞が緩和されます。ネットワークの世界でも、全く同じ問題があります。 そしてそれを解決するための技術が、今日紹介する「ECMP」です。

ECMPとは?

ECMPとは、Equal-Cost Multi-Path routingの略したもので、日本語にすると「等コスト複数経路ルーティング」。 ……なんだかお堅い言葉が並んでいますが、ひとつずつ分解すると簡単です。

単語意味
Equal-Cost同じコスト(距離・優先度)の
Multi-Path複数の経路を
Routingデータの転送に使う

まとめると、「同じくらい良い道が複数あるなら、全部使っちゃおう!」という発想の技術です。

そもそも「コスト」とは?

ネットワークの世界では、ルーター(データを転送する機器)が「どの道を通ればいいか」を判断するとき、各経路に「コスト」という点数をつけています。コストは数字が小さいほど「良い経路」と見なされます。たとえば——

  • 速い回線の道 → コスト 10
  • 少し遅い回線の道 → コスト 20

この場合、ルーターはコスト10の道を選びます。コスト20の道は使われません。ここで、もし2本の道が両方ともコスト10だったら? 「どっちを使えばいいの?」と迷う必要はありません。

ECMPでは、「両方使えばいい!」 と割り切ります。これがECMPの基本的な考え方です。

ECMPは何をしている?

ちょっと図を使って見てみましょう。

送信元のPCから目的地サーバーへ向けて、2本の経路があります。 どちらもコストが同じ「10」です。

ECMPがない時:どちらか片方だけを使う

ECMPがある時:両方を使って、データを振り分ける

これにより、1本の道に集中していた負荷が2本に分散されるので、それぞれの経路が楽になります。

「振り分け」の方法は?

「両方の経路に振り分ける」といっても、いくつかの方法があります。

方法1:ラウンドロビン(順番に割り振る)

単純に交互に送る方法です。わかりやすいですが、現実にはあまり使われません。なぜなら、パケットが順番通りに届かない問題が起きやすいからです。

方法2:ハッシュベース(これが主流)

現在の多くのネットワーク機器では、「ハッシュ計算」 という方法を使っています。

具体的には——

  • 送信元のIPアドレス
  • 宛先のIPアドレス
  • 使用しているポート番号(アプリの種類)

……これらの情報を組み合わせて計算し、「この通信はA、あの通信はB」と自動的に振り分ける仕組みです。

ポイント:同じ「会話」は同じ道を通る

たとえばあなたがYouTubeを見ているとき、その動画のデータは常に同じ経路を通ります。 途中でルートが変わったりしないので、通信が安定します。

ECMPのメリット

  • メリット1:スループット(速度)が上がる
    複数の経路を同時に使うので、理論上は経路の数だけ帯域が増えます。 2本使えば最大2倍、4本使えば最大4倍の転送量が期待できます。
  • メリット2:冗長性が高まる(壊れにくくなる)
    1本の経路が故障しても、残りの経路でデータが流れ続けます。 「1本道」だったら、壊れた瞬間に通信がストップしてしまいますよね。
  • メリット3:コストを抑えられる
    高価な超高速回線を1本引くのではなく、普通の回線を複数本使うことで、同等以上の性能を安く実現できます。

ECMPの注意点(弱点)とは?

もちろん、ECMPにも弱点はあります。

  • 注意点1:完璧に「均等」にはならないことがある
    ハッシュ計算による振り分けは、通信の内容(アドレスやポート)に依存するため、偶然一方の経路に負荷が偏ることもあります。これを「ハッシュの偏り」と呼びます。
  • 注意点2:経路の数が増えると管理が複雑になる
    2本くらいなら簡単ですが、大規模なデータセンターでは何十本もの経路を管理することになります。適切な設計が必要です。
  • 注意点3:対応していない機器もある
    古いルーターやシンプルな機器の中には、ECMPに対応していないものもあります。導入前に確認が必要です。

どんな場所で使われているの?

ECMPは、特に大量のデータが行き交う場所で活躍しています。

場所活用例
データセンターサーバー間の大量通信を複数経路に分散
インターネットサービスGoogleやAmazonなどの巨大サービスの内部ネットワーク
企業ネットワーク拠点間をつなぐWAN回線の冗長化・負荷分散
クラウド基盤仮想サーバー間の通信を効率化

あなたが普段使っているWebサービスやアプリの裏側でも、ECMPはひっそりと活躍しているかもしれません。

まとめ

最後に、ECMPのポイントを振り返りましょう。

ECMPとは 「コストが同じ複数の経路を同時に使い、データを分散して転送する技術」

キーワード内容
Equal-Cost同じコスト(優先度)の経路が対象
負荷分散データを複数の経路に振り分ける
ハッシュ計算同じ通信は同じ経路を通るよう賢く振り分け
メリット高速化・冗長性・コスト削減
使用場面データセンター・クラウド・企業ネットワークなど