ネットワークトポロジ

読み:ねっとわーくとぽろじ / 英語表記:Network Topology

ネットワークを構成する端末や機器(ノード)と、それらを結ぶ回線(リンク)の接続形態である。ケーブルの配線で見た物理トポロジと、データが実際に流れる道筋で見た論理トポロジを区別して扱う。

イマシルちゃんの解説

ネットワークトポロジは、端末や機器がどんな形でつながるかを表す言葉だよ。
1本の線を共有するバス型、中心の機器に集めるスター型などがあるんだ。
輪につなぐリング型や、網の目のように複数の道を作るメッシュ型もあるよ。
ケーブルのつなぎ方を見る物理トポロジと、データが流れる道筋を見る論理トポロジは区別するの。
配線に複数の道があっても、一部を使わずに通信する場合があるからね。
形が変わると、必要なケーブルの本数や、1か所が壊れたときに止まる範囲も変わるんだ。
だから設計では、費用と壊れにくさのつり合いを考えて形を選ぶんだよ。

より深い解説

形を区別する理由

ネットワークトポロジは、ノードとリンクの接続関係を図形として抽象化したものである。ノードには端末だけでなく、スイッチやルータ、拠点そのものも含まれる。見る単位によって、建物内のLANの配線にも、データセンターのスイッチ群にも、拠点間のWANにも同じ考え方を当てはめられる。

形を区別するのは、形がそのまま設計上の性質になるからである。リンクの本数は機器のポート数と回線費用を決める。経路の数は冗長性を決め、どのノードを経由するかは障害の影響範囲と遅延を決める。トポロジを読めることは、構成図から「どこが壊れると何が止まるか」を判断する前提になる。

基本となる5つの形

代表的な形を、リンク数と障害時の影響で比べる。ノード数をnとし、スター型の中心機器はnに含めない。

形接続のしかたリンク数の目安1か所の障害の影響
バス型1本の幹線ケーブルに全ノードをつなぐ幹線1本と各ノードの分岐幹線の断線で全体が止まり得る
スター型中心の機器に各ノードを個別につなぐn本枝のリンク障害はそのノードだけ。中心機器の故障で全体が止まる
リング型隣のノードと順につなぎ、輪にするn本一方向に回す単一リングでは1か所の断線で全体が止まる
メッシュ型ノード同士を複数のリンクで網の目につなぐ全組合せなら最大迂回路があればほかのノードは通信を続けられる
ツリー型スター型を階層的に重ねるn−1本(ループなし)上位の機器や回線の障害で、その配下全体が止まる

バス型は、初期のイーサネットである10BASE5や10BASE2の同軸ケーブルが代表例である。幹線の両端には信号の反射を防ぐターミネータを付ける。すべてのノードが同じ媒体を共有するため、送信の衝突を扱うCSMA/CDのような制御が必要になる。

スター型は、現在の有線LANの基本形である。各端末はツイストペアケーブルでスイッチにつながり、配線の追加や切り離しが中心で完結する。その代わり、中心のスイッチが単一障害点(SPOF:Single Point of Failure)になる。

リング型では、データを輪に沿って次のノードへ順に渡す。FDDIは逆向きに回る二重リングを持ち、1か所が切れても折り返して輪を保つ。輪をつくる構成は、冗長性を持たせた形として現在も広域イーサネットや産業用ネットワークで使われる。ただしイーサネットで輪をつくると後述するループの問題が生じる。

ツリー型は、スター型のスイッチを上位のスイッチにつなぎ、階層を重ねた形である。企業のLANでよく見るコア・ディストリビューション・アクセスの3階層構成は、基本的にこの形をとる。末端の変更は容易だが、上位ほど障害の影響範囲が広い。

メッシュ型とリンク数の計算

すべてのノード同士を直接結ぶ形をフルメッシュ、一部のノード間だけを直接結ぶ形をパーシャルメッシュという。フルメッシュでは、n台のノードから2台を選ぶ組合せの数だけリンクが必要になる。

フルメッシュのリンク数 = n × (n − 1) ÷ 2

各ノードはほかのn−1台とつながる。全ノード分を合計するとn×(n−1)だが、1本のリンクを両端の2台で数えているため2で割る。

8台のスイッチをフルメッシュで結ぶ場合を考える。

8 × (8 − 1) ÷ 2 = 8 × 7 ÷ 2 = 28本

同じ8台をリング型でつなげば8本、1台を中心にしたスター型なら残り7台へ7本で済む。9台目を足すと、フルメッシュでは既存の8台すべてへのリンクが増え、合計は9×8÷2=36本になる。ノード数の2乗に近い速さでリンクが増えるため、フルメッシュは冗長性が最も高い反面、機器のポート数と回線費用がすぐに限界に達する。

実際の設計では、重要なノード間だけを複数経路で結ぶパーシャルメッシュを選ぶことが多い。例えば6台のうち中核の3台だけを互いに結び、残る3台をそれぞれ中核の2台へつなぐとする。中核同士が3本、残りが3台×2本で6本、合計9本となる。フルメッシュの6×5÷2=15本より少ないが、どの1本が切れても全ノードが通信を続けられる。

配線の形とデータの流れの形

配線の形である物理トポロジと、データが流れる道筋の形である論理トポロジは一致するとは限らない。構成図を読むときは、どちらの接続関係を描いているかを確かめる。

例配線の形データの流れ方
リピータハブにつないだイーサネットスター型バス型(全ポートへ信号を繰り返す)
スイッチにつないだイーサネットスター型宛先MACアドレスのポートへ転送する
トークンリングスター型(MAUに集線)リング型(トークンを順に回す)
ループのある配線でSTPが動作メッシュ型ツリー型(一部のポートを止める)

リピータハブは受け取った信号をすべてのポートへそのまま送り出す。配線は中心に集まっていても、全端末が1本の媒体を共有するバス型と同じふるまいになり、同時に送れば衝突する。スイッチに置き換えると、宛先ごとにポートを選んで転送するため、この共有は解消される。

トークンリングはIBMが開発したLANで、IEEE 802.5として標準化された。各端末はMAU(Multistation Access Unit)という集線装置へ星状につながる一方、送信権を表すトークンは端末から端末へ輪をなして回る。IEEE 802.5自体は物理的な形を定めていないが、実装のほとんどはスター型の配線だった。Ciscoのトークンリング解説がこの関係を説明している。

VPNやVLANのように、物理的な回線の上に別の接続関係を重ねる技術では、データの流れる形を自由に設計できる。インターネットという共有の物理網の上でも、拠点間のトンネルの張り方次第でスター型にもメッシュ型にもなる。OSPFのようなリンクステート型ルーティングプロトコルが共有する「トポロジ」も、ルータとリンクのつながりを表す論理的な地図である。

冗長性とループ

障害に強くするには、経路を複数用意して迂回できるようにする。しかし、レイヤー2のイーサネットで経路を複数つくると、フレームが輪を回り続けるループが生じる。イーサネットのフレームにはIPのTTLのような寿命がないため、ブロードキャストがスイッチ間で増幅し続けるブロードキャストストームが起き、ネットワーク全体が使えなくなる。

このため、レイヤー2で物理的にメッシュやリングを組むときは、論理的にはループのない形にする仕組みを併用する。

方法ループへの対処冗長回線の使われ方
スパニングツリープロトコル一部のポートをブロックし、論理的にツリー型にする待機系。障害時に切り替える
リンクアグリゲーション複数の物理リンクを1本の論理リンクとして扱う平常時から複数リンクを使う
レイヤー3で経路制御各リンクを別のIPネットワークにし、ルーティングプロトコルで経路を選ぶ等コストなら複数経路へ振り分けられる

冗長化の効果は、リンクを増やすだけでは得られない。2本の回線を引いても同じ管路や同じ機器を通るなら、その1か所で両方が切れる。構成図で単一障害点を探すときは、ノードとリンクだけでなく、電源や通信事業者の局舎のような共通の要素も確認する。

データセンターのスパイン・リーフ

従来のデータセンターでも、LANと同じツリー型の3階層構成が使われていた。この形は、利用者とサーバの間を上下に流れる通信を前提にしている。しかし仮想化やクラウドの普及で、サーバ同士が横方向にやり取りする通信が増えた。ツリー型では、離れたサーバ同士の通信が上位の機器まで上がって戻るため、経路の長さが場所によって変わり、上位の機器に負荷が集中する。

そこで使われるのが、2段のスイッチで構成するスパイン・リーフ型である。サーバを収容する下段のスイッチをリーフ、リーフ同士を中継する上段のスイッチをスパインと呼ぶ。各リーフはすべてのスパインに接続し、リーフ同士やスパイン同士は直接結ばない。これは多段の交換網として知られるClos型ネットワークを折り返した形にあたる。

この接続により、別のリーフにつながるサーバへの通信は、どの組合せでも「リーフ → スパイン → リーフ」と3台のスイッチを通る。経路の長さが一定なので遅延が予測しやすい。スパインの台数分だけ等しい長さの経路があり、等コストの経路へ通信を振り分けるECMP(Equal-Cost Multi-Path)で帯域を同時に使える。スパインが1台故障しても、残りのスパインを通る経路で通信を続けられる。

規模の見積もりも単純になる。スパイン4台、リーフ16台なら、リーフとスパインの間のリンクは4×16=64本である。リーフの上り帯域とサーバ向けの帯域の比をオーバーサブスクリプション比として評価する。

サーバ向け帯域 = 48ポート × 25Gbit/s = 1,200Gbit/s
上り帯域       = 4ポート × 100Gbit/s = 400Gbit/s
比             = 1,200 ÷ 400 = 3(3:1)

すべてのサーバが同時に上り方向へ全速で送ると、上りの帯域は3分の1しか足りない。上り帯域を増やすにはスパインを足してリーフの上りポートを増やし、収容数を増やすにはリーフを足す。ただし、リーフ数はスパインのポート数に、スパイン数はリーフの上りポート数に制限される。RFC 7938は、この形のデータセンターをBGPで経路制御する設計を示している。リーフ間を結ぶ仮想ネットワークはVXLANやEVPNで重ねることが多い。

拠点間WANのハブアンドスポーク

複数の拠点を結ぶWANでは、本社やデータセンターを中心に各拠点をつなぐハブアンドスポーク型がよく使われる。中心をハブ、各拠点をスポークと呼び、形としてはスター型である。12拠点で比べると、トンネルや回線の数は次のようになる。

ハブアンドスポーク = 12 − 1 = 11本
フルメッシュ       = 12 × 11 ÷ 2 = 66本

ハブアンドスポークは設定と管理が少なく、ハブにファイアウォールなどを集めて通信を一元的に制御できる。一方、スポーク同士の通信もいったんハブを経由するため、遅延が増え、ハブの回線と機器に負荷が集まる。ハブが止まるとすべての拠点間通信が止まるので、ハブを2か所に置いたり、回線を二重化したりする。

インターネットVPNでは、通常はハブアンドスポークで運用し、拠点間で通信が必要なときだけ直接トンネルを張るDMVPNのような方式もある。IP-VPNのように通信事業者の網が拠点間の経路を持つサービスでは、利用者から見ると任意の拠点間で直接通信できる。SD-WANでは、拠点間をどの形でつなぐかをコントローラーから方針として設定できる。

設計と障害切り分け

トポロジを選ぶときは、次の観点を比べる。

観点考えること
費用リンク数、機器のポート数、回線の契約数
可用性単一障害点の有無、迂回経路の数、障害時の切替時間
性能経由する機器の数、特定の機器や回線への集中、帯域の比
拡張性ノードを1台足したときに増える設定とリンク
運用ループ対策、経路制御、構成変更の影響範囲

障害の切り分けでは、通信できない範囲からトポロジ上の共通点を探す。すべての拠点が本社と通信できなければハブ側、特定の1拠点だけなら、その拠点の回線や機器が疑わしい。同じスイッチ配下の端末だけが止まっているなら、そのスイッチか上位へのリンクを調べる。ネットワーク全体が急に遅くなり、スイッチのランプが激しく点滅しているなら、ループによるブロードキャストストームを疑う。

参考資料

この用語が出てくる記事

↑