- ネットワーク
ネットワークトポロジーとは|スター型・バス型・リング型の違いを切断実験で比較
結論
ネットワークトポロジーとは、機器(ノード)と線(リンク)の「つなぎ方の形」のことです。代表はスター型・バス型・リング型・メッシュ型・ツリー型で、違いがいちばんはっきり出るのは「1本の線や1台の機器が止まったとき、どこまで通信が止まるか」です。
この記事でわかること
- 5つの形の違いと、物理トポロジー・論理トポロジーの違い
- ip netns で各形を組み、線を切って届くか試した結果の表
- ループで起きる嵐(1秒で5万パケット超)と STP の復旧時間の実測
どの形が良いかは、「止まったときに困る範囲」と「線の本数(費用)」の釣り合いで決まります。線を1本切ったときに何が起きるかで、形を見分けられます。
flowchart LR
C[線が1本<br>切れたら]
C --> S[スター型:その1台だけ止まる]
C --> T[ツリー型:その枝が孤立する]
C --> B[バス型:幹線で2つに分かれる]
C --> R[一方向リング型:全部止まる]
C --> M[メッシュ型:迂回して届く]
よく調べられることの答えを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| トポロジーとは | ネットワークの機器と線のつなぎ方の形 | ネットワークトポロジーとは |
| スター型・バス型・リング型の違い | 中心に集める/1本の線を共有/輪にする | トポロジーの種類一覧 |
| 線が切れたら通信はどうなるか | 形ごとに止まる範囲が違う(実測の表あり) | 線を1本切ったら届くか |
| 今のLANで主流の形 | スター型と、それを階層にしたツリー型 | スター型とは・ツリー型とは |
| メッシュ型の線の本数 | n台なら n×(n−1)÷2 本。10台で45本 | メッシュ型とは |
| 物理トポロジーと論理トポロジー | 線の形と、データの流れ方の形。一致しないことがある | 物理トポロジーと論理トポロジーの違い |
| ループすると何が起きるか | ブロードキャストが回り続けて通信が止まる。STPで防ぐ | ループとSTPの役割 |
| データセンターの形 | 全リーフが全スパインにつながるリーフ・スパイン | 家庭・オフィス・データセンター |
確認環境:Ubuntu 24.04.5 LTS(カーネル 6.18.44)の上で、名前が t101 で始まるネットワーク名前空間(ip netns)を作り、その中にだけ Linux ブリッジ(L2スイッチの役)と veth(仮想の LAN ケーブル)を置いて、スター型・バス型(模擬)・リング型・フルメッシュ型・ツリー型・L2リング+STP・リーフ・スパインを組みました。ホストの iptables・sysctl・ブリッジには触れず、IP 転送・rp_filter などの設定は名前空間の中だけで変えています。使った道具は iproute2 6.1.0(ip・bridge)、iputils 20240117 の ping・arping、tcpdump 4.99.4(libpcap 1.10.4)、traceroute 2.1.5 で、ping 以下は Ubuntu の .deb を作業場所に展開して使いました。遅延の計測は Python 3.13 と ping の平均値です。このカーネルには遅延を足す netem が入っていなかった(Error: Specified qdisc kind is unknown.)ため、遅延は仮想の線の素の値(マイクロ秒の単位)で比べています。STP は Linux カーネルの公式ドキュメントと ip-link のマニュアル、データセンターの形は Cisco の公開資料で確かめました。図は mermaid 11.16.0 で描画を確かめています(確認日 2026年10月29日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「ネットワークトポロジーとは|スター型・バス型・リング型の違いを切断実験で比較」
ネットワークトポロジーとは(意味と読み方)
この節では、トポロジーという言葉の意味と、ネットワークの話で何を指すのかが分かります。
ネットワークトポロジー(network topology)とは、コンピューター・スイッチ・ルーターなどの機器(ノード)が、どのような形で線(リンク)につながっているかを表したものです。 「接続形態」とも呼ばれます。点と線の図で描くと、星形・一本の線・輪・網の目のような形が見えるため、スター型・バス型・リング型・メッシュ型と名前が付いています。
- ノード:線の端にある機器。パソコン、サーバー、スイッチ、ルーター、無線 LAN のアクセスポイントなど。
- リンク:ノードどうしをつなぐ通り道。LAN ケーブル、光ファイバー、無線の電波、仮想の線(この記事の実験では veth)。
- トポロジー:ノードとリンクの「つながり方」だけに注目した形。機器の置き場所や線の長さではなく、どれとどれがつながっているかを表す。
形を知っておくと、次の3つを前もって考えられます。
1止まったときの範囲
どの線・どの機器が止まると、何台が通信できなくなるか。単一障害点(そこが止まると全体が止まる場所)の見つけ方。
2費用と増やしやすさ
必要な線とポートの数、機器を1台足すときに止める範囲。台数が増えたときに線が何本になるか。
3速さと見通し
通る機器の数(ホップ数)と遅延、障害が起きたときにどこを調べればよいか、管理のしやすさ。
なお、「トポロジー」はもともと数学の位相幾何学(つながり方を保ったまま伸び縮みさせても変わらない性質を調べる分野)の名前で、この記事のネットワークの形とは別の話です。ネットワークの「トポロジー」は、つながり方だけを見るという考え方を借りた言い方です。
トポロジーの種類一覧(スター型・バス型・リング型・メッシュ型・ツリー型)
この節では、代表的なトポロジーの形と、それぞれの長所・短所・今どこで使われているかが一覧で分かります。
基本の形は、スター型・バス型・リング型・メッシュ型・ツリー型の5つです。 これに、2台を直接つなぐポイントツーポイント型、数珠つなぎのデイジーチェーン型、複数の形を組み合わせたハイブリッド型を加えて説明されることもあります。
スター型
中心のスイッチ(またはハブ)に全台を1本ずつつなぐ。今の有線 LAN の基本。
弱点は中心の1台
バス型
1本の幹線(バス)に全台をぶら下げ、線を全員で共有する。同軸ケーブルの初期の Ethernet。
弱点は幹線
リング型
隣どうしをつないで輪にし、データを順に回す。トークンリング・FDDI。
一方向なら1か所で全停止
メッシュ型
機器どうしを網の目につなぐ。全部つなぐフルメッシュと、一部だけのパーシャルメッシュ。
強いが線が多い
ツリー型
スター型を階層に重ねる(中心→フロア→机)。拡張スター型・階層型とも呼ぶ。
上の線ほど影響が広い
| 形 | 線の本数(n台) | 止まりやすい場所 | 増やしやすさ | 主な使われ方 |
|---|---|---|---|---|
| スター型 | n 本(中心まで) | 中心の機器 | 中心のポートが空いていれば1本足すだけ | 家庭・オフィスの LAN |
| バス型 | 幹線1本+引き込み | 幹線・終端 | 幹線に足すと全体に影響が出やすい | 以前の Ethernet(10BASE5・10BASE2)、機器の制御用バス |
| リング型 | n 本 | どの1本でも(一方向の場合) | 輪を一度切って入れる | 以前の LAN(トークンリング・FDDI)、通信事業者の環状網 |
| フルメッシュ型 | n×(n−1)÷2 本 | ほぼ無い(迂回できる) | 1台足すと線が n 本増える | 拠点間・基幹のルーター、データセンター |
| ツリー型 | n−1 本(木の枝) | 根元に近い線と機器 | 枝を足しやすい | ビル・キャンパスの LAN |
線の本数は、台数が増えると差が大きくなります。Python で計算した値です。
| 台数 | スター型・リング型 | フルメッシュ型 |
|---|---|---|
| 4台 | 4本 | 6本 |
| 8台 | 8本 | 28本 |
| 10台 | 10本 | 45本 |
| 16台 | 16本 | 120本 |
| 50台 | 50本 | 1,225本 |
| 100台 | 100本 | 4,950本 |
フルメッシュ型は100台で4,950本になり、端末を全部つなぐ形としては現実的ではありません。 そのため、メッシュ型はルーターやスイッチなど少数の重要な機器の間だけで使い、端末はスター型でつなぐのが普通です。このように複数の形を組み合わせたものがハイブリッド型で、実際の社内ネットワークの多くはハイブリッド型です。
線を1本切ったら届くか(ip netnsで試した比較表)
この節では、5つの形を実際に組んで線や機器を止めたとき、どの相手に届き、どの相手に届かなくなったかが、実行結果の表で分かります。
違いが出るのは「切った場所の先に、別の道があるかどうか」です。 下の表は、各形を ip netns で組み、ping を5回ずつ送った結果です(「5/5」は5回送って5回返ってきた、「0/5」は1回も返らなかった、の意味です)。
| 形 | 止めたもの | 届かなくなった相手 | 届いたままの相手 |
|---|---|---|---|
| スター型(4台) | h2 の線 | h2 だけ(0/5) | h1→h3・h4、h3→h4(5/5) |
| スター型(4台) | 中心のスイッチ | 全員(0/5) | なし |
| バス型(模擬・4台) | 幹線の真ん中 | 反対側の半分(b1→b3・b4 が 0/5) | 同じ側どうし(b1→b2、b3→b4 が 5/5) |
| バス型(模擬・4台) | 端の1台の引き込み線 | その1台だけ | 残りの3台 |
| リング型(一方向・4台) | r2-r3 の1本 | 全員(隣の r2 も 0/5) | なし |
| フルメッシュ型(4台・6本) | m1-m3 の1本 | なし(m2 経由に迂回) | 全員(5/5) |
| フルメッシュ型(4台・6本) | m2 の全部の線 | m2 だけ | m1・m3・m4 どうし(5/5) |
| ツリー型(中心+2台+端末4台) | 枝 d2 の上り線 | 枝をまたぐ相手(h5→h7・h8 が 0/5) | 同じ枝どうし(h5→h6、h7→h8) |
| L2リング+STP(4台) | 使っていた1本 | 約14秒だけ止まった | 14.03秒後に復旧 |
実験の組み立て方
ip netns は、1台の Linux の中に「ネットワークだけ独立した部屋」を作る機能です。部屋1つを1台の機器に見立て、部屋どうしを veth(両端がある仮想の LAN ケーブル)でつなぎ、スイッチ役の部屋の中には Linux ブリッジを置きました。スター型の中心と端末1台を作る手順は次のとおりです。
部屋(名前空間)を作る
ip netns add t101-sw と ip netns add t101-h1。名前に t101 を付け、自分の実験の部屋だと分かるようにした。
スイッチ役のブリッジを置く
中心の部屋に br0 というブリッジを作って有効にする。ブリッジは L2 スイッチと同じく MAC アドレスを学習して転送する。
線(veth)を部屋の中に直接作る
端末の部屋に eth0、反対の端を中心の部屋に p1 として作り、p1 をブリッジにつなぐ。ホスト側にはインターフェースを作らない。
アドレスを付けて ping する
端末に 10.101.1.1/24 などを付け、ほかの端末へ ping を5回送る。
線を切って、もう一度 ping する
ケーブルを抜く代わりに、中心側の端を link set p2 down にする。終わったら ip netns del で部屋ごと消す。
ip netns add t101-sw
ip netns add t101-h1
ip -n t101-sw link add br0 type bridge
ip -n t101-sw link set br0 up
# 線の片方を h1 の部屋に eth0、もう片方を sw の部屋に p1 として作る
ip -n t101-h1 link add eth0 type veth peer name p1 netns t101-sw
ip -n t101-sw link set p1 master br0
ip -n t101-sw link set p1 up
ip -n t101-h1 link set eth0 up
ip -n t101-h1 addr add 10.101.1.1/24 dev eth0
# (h2〜h4 も同じように作る)
ip netns exec t101-h1 ping -c 5 10.101.1.3
# h2 の線を「抜く」
ip -n t101-sw link set p2 down
# 片付け
ip netns del t101-h1
ip netns del t101-sw
ルーターの役の部屋は、名前空間の中だけで net.ipv4.ip_forward=1 にして、静的な経路(ip route add)で行き先を決めました。ホストの設定は変えていません。
スター型とは(中心が止まると全員が止まる)
この節では、スター型の仕組みと長所・短所、中心のスイッチが止まったときの実測結果が分かります。
スター型は、すべての機器を中心の機器(スイッチやハブ)に1本ずつつなぐ形です。 10BASE-T 以降の、より対線(LAN ケーブル)を使う Ethernet はこの形で、家庭のルーターに付いている LAN ポートや、オフィスのスイッチにパソコンを挿す形がスター型です。
平常時
h1 -> 10.101.1.2 : 5/5 受信 loss 0% avg 0.040 ms
h1 -> 10.101.1.3 : 5/5 受信 loss 0% avg 0.040 ms
h1 -> 10.101.1.4 : 5/5 受信 loss 0% avg 0.039 ms
h2 の線を切る (sw 側 p2 を down)
h1 -> 10.101.1.2 : 0/5 受信 loss 100% avg - ms
h1 -> 10.101.1.3 : 5/5 受信 loss 0% avg 0.034 ms
h1 -> 10.101.1.4 : 5/5 受信 loss 0% avg 0.036 ms
h3 -> 10.101.1.4 : 5/5 受信 loss 0% avg 0.035 ms
中心 br0 を止める
h1 -> 10.101.1.2 : 0/5 受信 loss 100% avg - ms
h1 -> 10.101.1.3 : 0/5 受信 loss 100% avg - ms
h1 -> 10.101.1.4 : 0/5 受信 loss 100% avg - ms
h3 -> 10.101.1.4 : 0/5 受信 loss 100% avg - ms
スター型の長所
1本の線が切れても、止まるのはその1台だけ(実測)
どの線が悪いか、中心のランプやポートの状態で探しやすい
空きポートがあれば、ほかを止めずに1台足せる
スター型の短所
中心が止まると全員が止まる(実測で 4台とも 0/5)
中心までの線が台数分いる。配線が中心に集まる
台数は中心のポート数で頭打ちになる
中心のスイッチは、どの MAC アドレスの機器がどのポートの先にいるかを表(FDB・MAC アドレステーブル)に覚えて、必要なポートだけに送ります。実験の中心の部屋で bridge fdb show を見ると、4台の MAC アドレスとポートの対応が並んでいました。
$ bridge -n t101-sw fdb show br br0 | grep -v permanent
e6:a2:27:ef:43:4d dev p1 master br0
26:96:16:1a:71:39 dev p2 master br0
3e:71:13:55:98:e1 dev p3 master br0
c6:bc:46:20:6c:ec dev p4 master br0
中心が単一障害点になる弱点は、スイッチを2台にして線も2本ずつにする(冗長化)か、上位の機器との間をリンクアグリゲーション(複数の線を束ねて1本として扱う)で太くする、といった方法で補います。中心を2台にすると線の形は輪になるため、次に説明する STP やそれに代わる仕組みが要ります。
バス型とは(共有の線と、幹線が切れたとき)
この節では、バス型の仕組みと、幹線の途中が切れたときに何が起きるかが、模擬した実験の結果で分かります。
バス型は、1本の幹線(バス)に全員がぶら下がり、同じ線を共有する形です。 同軸ケーブルを使った 10BASE5・10BASE2 の Ethernet がこの形で、幹線の両端には信号の反射を防ぐ終端抵抗(ターミネーター)を付けます。線を共有するため同時に送ると信号がぶつかり(コリジョン)、CSMA/CD という「送る前に線が空いているか確かめ、ぶつかったら少し待って送り直す」決まりで調整していました。今の社内 LAN でバス型を見ることはほとんどありませんが、機器の制御用ネットワークなどには一筆書きでつなぐ形が残っています。
同軸ケーブルそのものは用意できないため、実験では「幹線を区間ごとのブリッジ4つの直列」として作り、各ブリッジに1台ずつつなぎました。さらに MAC アドレスを覚えない設定(ageing_time 0)にして、届いたフレームを全員に流すようにしています。つまり線の共有と、途中の切断だけを再現した模擬です。
平常時
b1 -> 10.101.2.2 : 5/5 受信 loss 0% avg 0.056 ms
b1 -> 10.101.2.4 : 5/5 受信 loss 0% avg 0.064 ms
b1->b2 の通信を b4 が受け取るか (共有の線)
b4 が受け取った ICMP: 10 個
幹線の真ん中 (s2-s3) を切る
b1 -> 10.101.2.2 : 5/5 受信 loss 0% avg 0.045 ms
b1 -> 10.101.2.3 : 0/5 受信 loss 100% avg - ms
b1 -> 10.101.2.4 : 0/5 受信 loss 100% avg - ms
b3 -> 10.101.2.4 : 5/5 受信 loss 0% avg 0.040 ms
- b1 が b2 に送った ping 5往復(10個)を、関係のない b4 がすべて受け取りました。 線を共有する形では、ほかの人あての通信も全員の手元に届きます。通信の中身を守るには暗号化が要ります。
- 幹線の真ん中を切ると、ネットワークが左右の2つに分かれました。左側どうし(b1→b2)、右側どうし(b3→b4)は通じ、反対側には届きません。
- 本物の同軸のバスでは、終端抵抗が外れると反射した信号で幹線全体が不安定になるとされます。この部分は模擬では再現できないため、一般的な説明にとどめます。
リング型とは(一方向の輪は1か所の切断で全部止まる)
この節では、リング型の仕組みと、データが一方向に回る輪で1本の線が切れたときの結果、二重リングの考え方が分かります。
リング型は、隣どうしを順につないで輪にし、データを決まった向きに回していく形です。 以前の LAN 規格のトークンリング(IEEE 802.5)は、「トークン」という送信の権利を輪の中で回し、トークンを持つ機器だけが送ることで衝突を起こさない仕組みでした。FDDI は光ファイバーで輪を2重にした規格です。どちらも今の LAN ではほとんど使われていません。
実験では4台のルーター役(r1〜r4)を輪につなぎ、全員が「時計回りの隣」へ送るよう経路を決めました。行きと戻りの道を traceroute で見ると、輪をぐるっと一周していることが分かります。
traceroute r1 -> r3 :
1 10.101.100.2 0.026 ms
2 10.101.100.3 0.007 ms
traceroute r3 -> r1 (戻りの道) :
1 10.101.100.4 0.018 ms
2 10.101.100.1 0.006 ms
r2-r3 間を切る (r2 側 cw を down)
r1 -> 10.101.100.2 : 0/5 受信 loss 100% avg - ms
r1 -> 10.101.100.3 : 0/5 受信 loss 100% avg - ms
r1 -> 10.101.100.4 : 0/5 受信 loss 100% avg - ms
r2-r3 の線を1本切っただけで、隣の r2 にも届かなくなりました。 r1 から r2 への行きは切れた場所を通りませんが、r2 からの返事は時計回りに r3→r4→r1 と回って戻るため、切れた場所を必ず通ります。一方向の輪では、どの2台の間の往復も輪を一周するので、どこが1か所切れても全員の往復が止まります。
二重リング(デュアルリング)
この弱点を補うのが、逆向きに回る2本目の輪を持つ二重リングです。FDDI では、1か所が切れると、切れた場所の両隣の機器が1本目と2本目の輪を折り返してつなぎ(ラップ)、1つの大きな輪として通信を続けます。この折り返しは、ルーターの経路ではなく、FDDI の機器の中で行われる動きです。今回の静的な経路では、折り返したパケットが送り元のルーターを再び通るときに捨てられたため、二重リングの再現はしていません。現在の Ethernet で輪の形を冗長化するときは、次の節以降で扱う STP などで「普段は1か所を止めておき、切れたら開ける」方法をとります。
メッシュ型とは(フルメッシュとパーシャルメッシュ)
この節では、メッシュ型の仕組みと、線が切れたときに迂回する様子、フルメッシュとパーシャルメッシュの違いが分かります。
メッシュ型は、機器どうしを網の目のように複数の線でつなぐ形です。 すべての組み合わせをつなぐものをフルメッシュ型、重要な機器の間だけをつなぐものをパーシャルメッシュ型(部分メッシュ)と呼びます。拠点間をつなぐ WAN のルーターや、データセンターの中心の機器など、止まると困る場所で使います。
実験では、4台のルーター役(m1〜m4)を6本の線で全部つなぎ、「直接の線」を第1候補、「別の1台を経由する道」を第2候補として経路に入れました。
traceroute m1 -> m3 :
1 10.101.100.3 0.020 ms
m1-m3 の線を切る
m1 -> 10.101.100.2 : 5/5 受信 loss 0% avg 0.032 ms
m1 -> 10.101.100.3 : 5/5 受信 loss 0% avg 0.048 ms
m1 -> 10.101.100.4 : 5/5 受信 loss 0% avg 0.034 ms
traceroute m1 -> m3 (切断後):
1 10.101.100.2 0.021 ms
2 10.101.100.3 0.010 ms
中心が無いので、m2 を止めても他は通る
m1 -> 10.101.100.3 : 5/5 受信 loss 0% avg 0.044 ms
m1 -> 10.101.100.4 : 5/5 受信 loss 0% avg 0.034 ms
m3 -> 10.101.100.4 : 5/5 受信 loss 0% avg 0.038 ms
m1 -> 10.101.100.2 : 0/5 受信 loss 100% avg - ms
m1-m3 の線を切ると、道が「直接(1ホップ)」から「m2 経由(2ホップ)」に変わり、全員に届いたままでした。 m2 を丸ごと止めても、止まったのは m2 あての通信だけです。中心が無いので、どの1台・どの1本が止まっても全体は止まりません。
- 迂回先は、今回は手で書いた予備の経路で決めました。実際のネットワークでは OSPF や BGP などのルーティングプロトコルが、つながり方を交換して自動で道を選び直します。
- フルメッシュ型の線の本数は n×(n−1)÷2 本です。4台で6本、10台で45本と増え方が大きいため、重要な数台だけをメッシュにするパーシャルメッシュがよく使われます。
- 無線のメッシュ Wi-Fi は、アクセスポイントどうしが電波で網の目につながり、どれか1台を通れない場合に別の1台を通る、という考え方を無線に当てはめたものです。
ツリー型とは(階層と、上り線が切れたときの範囲)
この節では、ツリー型(階層型・拡張スター型)の仕組みと、どの線が切れると影響が広がるのかが、実測で分かります。
ツリー型は、スター型を何段にも重ねた形です。 中心のスイッチ(コア)から各フロアのスイッチ(ディストリビューション)、さらに机の近くのスイッチ(アクセス)へと枝分かれします。ビルやキャンパスの LAN はこの形が多く、コア層・ディストリビューション層・アクセス層の3階層で説明されます。
実験では、中心 core の下に d1・d2 の2台、それぞれの下に端末を2台ずつ置きました。
平常時
h5 -> 10.101.5.6 : 5/5 受信 loss 0% avg 0.042 ms
h5 -> 10.101.5.7 : 5/5 受信 loss 0% avg 0.052 ms
h7 -> 10.101.5.8 : 5/5 受信 loss 0% avg 0.040 ms
d2 の上り線 (core 側 p2) を切る
h5 -> 10.101.5.6 : 5/5 受信 loss 0% avg 0.029 ms
h5 -> 10.101.5.7 : 0/5 受信 loss 100% avg - ms
h5 -> 10.101.5.8 : 0/5 受信 loss 100% avg - ms
h7 -> 10.101.5.8 : 5/5 受信 loss 0% avg 0.032 ms
core を止める
h5 -> 10.101.5.6 : 5/5 受信 loss 0% avg 0.033 ms
h5 -> 10.101.5.7 : 0/5 受信 loss 100% avg - ms
h7 -> 10.101.5.8 : 5/5 受信 loss 0% avg 0.037 ms
枝の上り線が切れると、その枝の全員がほかの枝と通信できなくなりました。 一方で、同じ枝の中(h7→h8)は通じたままです。中心(core)を止めた場合も、同じ枝の中だけは通じました。スター型では「中心が止まると全員が止まる」のに対し、ツリー型では「止まった機器より上をまたぐ通信だけが止まる」と言えます。
根元に近いほど影響する台数が多いため、ツリー型ではコアと上り線を2重にするのが普通です。2重にすると線は輪になるので、ループの対策(STP やリンクアグリゲーション、ルーターでの経路の冗長化)とセットで設計します。
ホップ数と遅延の比較(ルーターとスイッチを8台並べた実測)
この節では、通る機器の数(ホップ数)が増えると遅延がどう変わるか、ルーターとスイッチで見え方がどう違うかが分かります。
ホップ数とは、宛先に着くまでに通るルーターの数です。 ルーターを1台通るたびに、IP パケットの TTL(生存時間)が1減ります。スイッチ(ブリッジ)は TTL を減らさないので、traceroute には出てきません。ルーター8台とブリッジ8台をそれぞれ直列に並べ、1,000回の ping の平均を3回測りました。
| 直列の機器 | 宛先までの線 | 受け取った TTL | 平均 RTT(µs、3回) |
|---|---|---|---|
| ルーター | 1本 | 64 | 4・5・5 |
| ルーター | 2本 | 63 | 7・6・5 |
| ルーター | 4本 | 61 | 12・9・10 |
| ルーター | 8本 | 57 | 15・16・12 |
| ブリッジ | スイッチ1台 | 64 | 6・8・8 |
| ブリッジ | スイッチ2台 | 64 | 11・9・14 |
| ブリッジ | スイッチ4台 | 64 | 12・13・13 |
| ブリッジ | スイッチ8台 | 64 | 17・21・18 |
traceroute c0 -> c8: (ルーター8台)
1 10.101.200.1 0.022 ms
2 10.101.200.2 0.008 ms
...
8 10.101.200.8 0.011 ms
traceroute e1 -> t8: (スイッチ8台)
1 10.101.201.18 0.039 ms
- 機器が増えるほど遅延は増えましたが、8台通っても増えたのは約10µs(0.01ミリ秒)でした。 仮想の線と1台の CPU の中の転送なので、実際の機器・ケーブルとは桁が違います。実機では機器ごとの処理時間に加え、距離による伝わる時間(光ファイバーで1kmあたり約5µs)が加わります。
- スイッチを8台通っても TTL は64のままで、traceroute には宛先1行しか出ませんでした。traceroute で見えるホップ数は、通ったスイッチの数ではなく、ルーターの数です。
- トポロジーによってホップ数の最大値が変わります。リング型は最悪で輪の半分〜一周、ツリー型は木の深さの2倍、フルメッシュ型は常に1です。データセンターのリーフ・スパインは「どのリーフからどのリーフへもスパイン1台を通る」形にして、ホップ数をそろえています。
遅延の意味と目安、測り方は、関連記事「レイテンシとは|意味・目安・測り方を遅延0〜300msの実測で解説」で扱っています。
ループで起きることとSTPの役割(ブロードキャストストームの実測)
この節では、スイッチを輪につないだときに起きるブロードキャストストームと、それを防ぐ STP(スパニングツリープロトコル)の動きが、カウンターと時間の実測で分かります。
スイッチどうしを輪(ループ)につなぐと、宛先が全員のブロードキャストが輪を回り続け、通信が止まります。 これをブロードキャストストームと呼びます。Ethernet のフレームには TTL が無いため、ルーターのように回数で捨てられることがありません。4台のブリッジを輪につなぎ、STP を無効にしたまま ARP(相手の MAC アドレスを尋ねるブロードキャスト)を1回だけ送りました。1秒後に輪を切っています。
STP なしでループを閉じ、ARP を1回だけ送る(1秒後に切る)
5 packets transmitted, 0 received, 100% packet loss, time 813ms
k2 の r21 で受けたパケット: 送信前 7 → 1秒後 53022 → ping の後 208248 → 切断直後 208472 → さらに1秒後 208472
たった1回の ARP が、1秒で5万個を超えるパケットになって輪を回り続けました。 その間は ping も1回も届かず、輪を切った瞬間にカウンターの増加が止まりました。ブロードキャストが回るだけでなく、スイッチの MAC アドレス表の行き先が輪の右回りと左回りで入れ替わり続けるため、普通の通信も正しい向きに送れなくなります。会議室で余っていた LAN ケーブルの両端を同じスイッチに挿す、といった配線の誤りで起きる障害です。
STP は「普段は1か所を止めておく」
STP(Spanning Tree Protocol、IEEE 802.1D)は、スイッチどうしが BPDU という制御用のフレームを交換して1台の「ルートブリッジ」を決め、ルートまでの最短の道以外のポートをブロッキング(止めた状態)にすることで、輪の形の配線をループの無い木の形として使う仕組みです。Linux カーネルの公式ドキュメントは、STP を「冗長なリンクを見つけて無効にし、ループとブロードキャストストームを防ぐ」プロトコルだと説明しています。
同じ4台の輪で STP を有効にし(k1 をルートにするため優先度を最小にし、タイマーを短くした)、1秒ごとにポートの状態を見ました。
2s: ... r34@r32::blocking ... r14@pa::listening ... r41@if5::listening
5s: ... r34@r32::blocking ... r14@pa::learning ... r41@if5::learning
9s: ... r34@r32::blocking ... r14@pa::forwarding ... r41@if5::forwarding
[k3]
r32@r34: ... master br0 state forwarding priority 32 cost 2
r34@r32: ... master br0 state blocking priority 32 cost 2
pb@br0: ... master br0 state forwarding priority 32 cost 2
k3 の k4 側のポート(r34)が blocking になり、輪のうち1本が使われない形で落ち着きました。 この状態で同じ ARP を送ると、パケットは3個で止まり、ping は 5/5 で届きました。
使っていた線を切ったときの復旧時間
次に、ha から hb への通信に使っていた k2-k3 の線を切り、0.1秒ごとの ping とポートの状態を記録しました。
1.0s k3 r34 state listening
5.1s k3 r34 state learning
9.1s k3 r34 state forwarding
切断後に最初の応答まで 14.03s
400 packets transmitted, 266 received, 33.5% packet loss, time 41530ms
カーネルのログにも、状態の移り変わりとトポロジー変更の通知が残っていました。
br0: port 2(r34) entered listening state
br0: port 2(r34) entered learning state
br0: port 2(r34) entered forwarding state
br0: topology change detected, sending tcn bpdu
br0: port 3(r14) received tcn bpdu
br0: topology change detected, propagating
- 止めていたポートが転送を始めたのは切断から約9秒後、通信が戻ったのは約14秒後でした。 listening と learning にそれぞれ forward_delay(今回は4秒)ずつかかり、その後、各スイッチの MAC アドレス表に残っていた以前の行き先が入れ替わるまで待ったと考えられます(STP では、トポロジー変更の通知を受けると MAC アドレス表を早めに消す決まりになっています)。
- Linux ブリッジの既定値は forward_delay 15秒・hello_time 2秒・max_age 20秒です(カーネルの公式ドキュメント、手元の
ip -d link showでも 1500・200・2000 と表示)。既定のままなら、復旧には30秒以上かかる計算です。 - 収束を速くした改良版が RSTP(Rapid STP)で、IEEE 802.1D-2004 に取り込まれています。企業向けのスイッチでは RSTP や MSTP、または STP を使わずに複数の線を束ねるリンクアグリゲーション、ルーター側の経路の冗長化(VRRP など)を組み合わせます。
スイッチを2重にするときの配線
家庭用の小さなスイッチには STP の無い製品もあるため、輪にしない
物理トポロジーと論理トポロジーの違い(ハブとスイッチの実測)
この節では、線の形(物理トポロジー)とデータの流れ方の形(論理トポロジー)が違うことがある理由が、ハブとスイッチの比較で分かります。
物理トポロジーはケーブルや機器が実際にどうつながっているか、論理トポロジーはデータがどう流れるかを表します。 2つは一致することも、しないこともあります。代表的な例は次のとおりです。
| 方式 | 物理トポロジー | 論理トポロジー |
|---|---|---|
| リピーターハブを使った Ethernet | スター型 | バス型(全員に流れる) |
| スイッチを使った Ethernet | スター型 | スター型(宛先のポートにだけ流れる) |
| トークンリング(集線装置 MAU を使う) | スター型 | リング型 |
| トークンバス | バス型 | リング型 |
| STP で1本止めたスイッチの輪 | リング型 | ツリー型 |
手元では、スター型の中心のブリッジを「スイッチとして動かす」場合と、「MAC アドレスを覚えず全ポートに流す(ハブのように動かす)」場合で、h1 から h2 への ping 10往復を、関係のない h3 で tcpdump したときに何個見えるかを比べました。
[switch] h1->h2 の ping 10往復中に h3 が受け取った ICMP: 0 個
[hub] h1->h2 の ping 10往復中に h3 が受け取った ICMP: 20 個
15:18:42.441215 IP 10.101.1.1 > 10.101.1.2: ICMP echo request, id 3153, seq 1, length 64
15:18:42.441227 IP 10.101.1.2 > 10.101.1.1: ICMP echo reply, id 3153, seq 1, length 64
線の形は同じスター型でも、ハブのように動かすと h3 は20個すべてを受け取り、スイッチとして動かすと1個も受け取りませんでした。 前者は物理がスター型・論理がバス型、後者は物理も論理もスター型です。ハブとスイッチの違いは、関連記事「ハブとは|スイッチ・ルーターとの違いと仕組みを実例で解説」で扱っています。
構成図を描くときも、物理(ラック・配線・ポート番号)と論理(VLAN・IP アドレスの範囲・経路)を分けて描くと、障害のときに「線の問題か、設定の問題か」を切り分けやすくなります。描き方は関連記事「ネットワーク構成図の書き方|記号・レイヤー別の書き分けとAWS構成の例」で扱っています。層の考え方(物理層・データリンク層・ネットワーク層)は、関連記事「OSI参照モデルとは|7層の早見表とTCP/IP対応・パケット実例」が入口になります。
家庭・オフィス・データセンターのトポロジーと選び方(判断表)
この節では、身近なネットワークがどの形でできているかと、データセンターのリーフ・スパインの仕組み、形の選び方の判断表が分かります。
| 場所 | よくある形 | 中身 |
|---|---|---|
| 家庭 | スター型 | Wi-Fi ルーター(中心)にパソコン・スマホ・ゲーム機が有線か無線で1対1につながる。メッシュ Wi-Fi は親機と子機の間がメッシュ |
| 小さなオフィス | スター型・ツリー型 | ルーターの下にスイッチを1〜数台。机ごとに LAN ケーブル |
| ビル・キャンパス | ツリー型(3階層) | コア・ディストリビューション・アクセスの3段。コアと上り線は2重にする |
| 拠点間(WAN) | ハブ&スポーク・メッシュ | 本社を中心に支店をつなぐスター型(ハブ&スポーク)か、重要拠点間のメッシュ |
| データセンター | リーフ・スパイン | 全リーフが全スパインにつながる。サーバーはリーフにつなぐ |
家庭のネットワークでは、Wi-Fi ルーターがインターネット側(WAN)と家の中(LAN)の境目になります。LAN と WAN の違いは関連記事「WANとは|LANとの違い・種類・WANポートを図と実例で解説」で、家の中のプライベート IP アドレスがインターネットに出るときの変換は関連記事「グローバルIPの確認方法|コマンド・プライベートIPとの違いとNATを実演」で扱っています。
リーフ・スパイン(データセンター)を小さく再現する
Cisco のデータセンター向けの資料は、リーフ・スパインを「すべてのリーフ層のスイッチが、すべてのスパイン層のスイッチにフルメッシュでつながる」形とし、リーフとスパインを L3 でつないで ECMP(等コストの複数経路)で通信を分けると説明しています。リーフ3台・スパイン2台で同じ形を作りました。
flowchart TD
S1[spine1] --- L1[leaf1]
S1 --- L2[leaf2]
S1 --- L3[leaf3]
S2[spine2] --- L1
S2 --- L2
S2 --- L3
leaf1 の経路:
10.101.70.3 src 10.101.70.1
nexthop via 10.101.63.2 dev up1 weight 1
nexthop via 10.101.64.2 dev up2 weight 1
traceroute leaf1 -> leaf3 (送信元ポートを変えて6回):
port 33434: 10.101.63.2 10.101.70.3
port 33500: 10.101.64.2 10.101.70.3
port 33600: 10.101.63.2 10.101.70.3
port 33700: 10.101.63.2 10.101.70.3
port 33800: 10.101.63.2 10.101.70.3
port 33900: 10.101.64.2 10.101.70.3
spine1 を止める (全ポート down)
leaf1 -> 10.101.70.2 : 5/5 受信 loss 0% avg 0.044 ms
leaf1 -> 10.101.70.3 : 5/5 受信 loss 0% avg 0.036 ms
10.101.70.3 src 10.101.70.1
nexthop via 10.101.63.2 dev up1 weight 1 dead linkdown
nexthop via 10.101.64.2 dev up2 weight 1
- どの通信も「リーフ→スパイン→リーフ」の2ホップで、送信元ポートによって spine1(10.101.63.2)と spine2(10.101.64.2)に振り分けられました。 輪を作らずに2本の道を同時に使えるので、STP で1本を止めておく必要がありません。
- spine1 を丸ごと止めても、経路の片方に
dead linkdownと付き、残りの spine2 だけで全員に届きました。 - 線の本数は「リーフの数×スパインの数」です(今回は3×2で6本)。サーバーを増やすときはリーフを、通信量を増やすときはスパインを足します。
判断表:どのトポロジーを選ぶか
- 1端末をつなぐ → スター型家庭・小さなオフィス。中心のスイッチだけ質の良いものにする
- 2フロアや建物が分かれる → ツリー型コア・ディストリビューション・アクセス。上り線とコアを2重に
- 3止まると困る数台の間 → パーシャルメッシュ基幹のルーター・拠点間。迂回はルーティングプロトコルに任せる
- 4サーバーどうしの通信が多い → リーフ・スパインデータセンター。ホップ数をそろえ、ECMP で全部の線を使う
- 5スイッチを輪にするなら → STP(RSTP)を先に有効にするまたは輪にせずリンクアグリゲーションで束ねる
| 重視すること | 向く形 | 理由(実測・仕組み) |
|---|---|---|
| 安く簡単に始めたい | スター型 | 線は台数分。端末の線が切れても止まるのは1台だけ |
| 止まらないこと | メッシュ型・リーフ・スパイン | 1本・1台が止まっても迂回して全員に届いた |
| 台数が多い・広い | ツリー型 | 枝を足しやすい。止まる範囲が枝の中に収まる |
| 遅延をそろえたい | リーフ・スパイン | どのリーフ間も2ホップ |
| 線を減らしたい | スター型・ツリー型 | フルメッシュは10台で45本、100台で4,950本 |
| 避けたい形 | STP の無い輪・一方向リング | 前者はストーム、後者は1か所で全停止(実測) |
どの形でも、設計した形を構成図に残し、変更のたびに更新すること、監視でどの線・どの機器が止まったかをすぐ分かるようにしておくことが、障害の時間を短くします。
よくあるつまずき・エラー(原文つき)
この節では、トポロジーの問題(線が切れた・輪になった・経路が片方落ちた)のときに、コマンドに何が表示されるかと、そこから何が分かるかが分かります。
| 表示(原文) | 起きていること | 確かめること |
|---|---|---|
From 10.101.3.1 icmp_seq=1 Destination Host Unreachable |
同じネットワークの相手から ARP の返事が来ない(相手の線が切れている・電源が無い) | ip neigh で相手が FAILED になっていないか、相手側の線 |
ping: connect: Network is unreachable |
宛先への経路が1本も無い | ip route。予備の経路も消えていないか |
100% packet loss(エラー表示なし) |
行きか戻りのどこかで黙って捨てられている(一方向リングの切断で出た) | 戻りの道も traceroute で見る |
traceroute の途中から * が続く |
その先のルーターかその先の線で止まっている | 最後に返事があったルーターの先の線 |
NO-CARRIER・state DOWN(ip -br link) |
線の反対側が無い(抜けた・相手が止まった) | ケーブル・相手のポート |
nexthop via ... dead linkdown |
複数経路の片方の線が落ちている。残りで通信は続く | 落ちた側の線とスパイン |
topology change detected(カーネルログ) |
STP が形を組み直した。数秒〜数十秒止まることがある | どのポートが状態を変えたか |
| ping が全部 0/5・ポートのカウンターが急増 | ループによるブロードキャストストーム | 最近つないだ線を抜く。STP の有効・無効 |
- 1行きと戻りの道を両方見る一方向リングでは、行きの道が無事でも、戻りの道の切断で隣にさえ届かなかった
- 2traceroute に出ないスイッチを数に入れるスイッチ8台を通っても traceroute は1行だった。L2 の経路は構成図と MAC アドレス表で追う
- 3直した直後に通らなくても、STP の時間を待つ今回の短いタイマーでも復旧に14秒。既定値なら30秒以上
- 4線を戻したら、経路も戻っているか確かめる手元の静的な経路は、線を down にした時点で消え、up に戻しても自動では戻らなかった
実験の途中では、ip コマンドならではのつまずきもありました。インターフェースに up・a・b のような名前を付けると、コマンドの予約語として読まれ、Not enough information: "dev" argument is required. や "up" is invalid lladdr. になります。名前は upl・pa のように予約語と重ならないものにします。また、iproute2 6.1.0 では、ブリッジの forward_delay 400 が4秒として働きました(カーネルの文書にある、100分の1秒単位の書き方)。
よくある質問
Q. ネットワークトポロジーとは何ですか? A. 機器(ノード)と線(リンク)のつながり方の形です。スター型・バス型・リング型・メッシュ型・ツリー型が代表で、形によって、止まったときの影響範囲、必要な線の本数、増やしやすさが変わります。
Q. スター型・バス型・リング型の違いを一言で言うと? A. スター型は中心に1本ずつ集める形、バス型は1本の線を全員で共有する形、リング型は隣どうしをつないだ輪です。弱点は、スター型が中心の機器、バス型が幹線、一方向のリング型がどの1本でも、になります。
Q. 今いちばん使われているのはどの形ですか? A. 有線 LAN ではスター型と、それを階層に重ねたツリー型です。スイッチを中心に LAN ケーブルを1本ずつつなぐ形がこれにあたります。データセンターではリーフ・スパインが広く使われています。
Q. メッシュ型は線が何本必要ですか? A. すべてをつなぐフルメッシュでは、n台に n×(n−1)÷2 本です。4台で6本、10台で45本、100台で4,950本になります。そのため、重要な機器の間だけをつなぐパーシャルメッシュがよく使われます。
Q. ツリー型とスター型は何が違いますか? A. ツリー型はスター型を何段にも重ねたものです。実験では、枝の上り線が切れると、その枝の端末はほかの枝と通信できなくなり、同じ枝の中だけは通じました。根元に近い線ほど影響が広いので、上の段を2重にします。
Q. 物理トポロジーと論理トポロジーの違いは何ですか? A. 物理は線のつながり方、論理はデータの流れ方です。リピーターハブを使った LAN は物理がスター型、論理がバス型で、手元でもハブのように動かすと関係のない端末に通信が全部届きました。
Q. スイッチを輪につなぐと、なぜ通信が止まるのですか? A. ブロードキャストが輪を回り続けるためです。Ethernet のフレームには TTL が無く、自然には消えません。手元では1回の ARP が1秒で5万個を超え、ping は1回も届きませんでした。STP を有効にすると、1か所のポートが止められてループが無くなります。
Q. STP を有効にすれば、線が切れてもすぐに戻りますか? A. すぐではありません。止めていたポートが listening・learning を経て転送を始めるまで forward_delay の2倍かかり、手元では短いタイマーでも通信の復旧に14秒かかりました。既定値(forward_delay 15秒)では30秒以上の計算です。速さが要る場合は RSTP やリンクアグリゲーションを使います。
Q. 無線 LAN(Wi-Fi)はどのトポロジーですか? A. 普通の Wi-Fi は、アクセスポイント(親機)を中心にした論理的なスター型です。メッシュ Wi-Fi は、親機と中継機どうしが網の目につながり、通りにくい場所を避けて道を選ぶ形です。
Q. 自分の家や会社のネットワークのトポロジーを知るには?
A. 機器の背面の線をたどって、どの機器がどの機器につながっているかを図にします。会社のネットワークは、管理者が持つ構成図(物理と論理)を見ます。コマンドでは、traceroute でルーターの並び、ip neigh や arp -a で同じネットワークの機器が分かりますが、スイッチは traceroute に出ません。
Q. 「トポロジー」という言葉は数学でも聞きますが、同じものですか? A. 別のものです。数学のトポロジー(位相幾何学)は、つながり方を保ったまま変形しても変わらない性質を調べる分野で、ネットワークの用語は「つながり方だけを見る」という考え方を借りています。
まとめ
- ネットワークトポロジーは機器と線のつながり方の形。スター型・バス型・リング型・メッシュ型・ツリー型が基本で、実際のネットワークの多くは組み合わせたハイブリッド型。
- ip netns で試すと、スター型は端末の線なら1台、中心なら全員が止まり、一方向リングは1本切っただけで隣にも届かなくなり、フルメッシュは2ホップに迂回して全員に届いた。
- ツリー型は上り線が切れると枝ごと孤立し、同じ枝の中だけ通じた。根元に近い線と機器を2重にする。
- スイッチの輪は STP なしだと1回の ARP が1秒で5万パケットを超えて通信が止まった。STP は1ポートを止めてループを防ぎ、切断からの復旧には手元で14秒かかった。
- 物理(線の形)と論理(流れ方)は違うことがある。ハブは物理スター・論理バス、データセンターのリーフ・スパインは全リーフが全スパインにつながり、ECMP で2本の道を同時に使う。
次に読むとよい記事です。ハブ・スイッチ・ルーターの役割は関連記事「ハブとは|スイッチ・ルーターとの違いと仕組みを実例で解説」で、構成図への落とし込みは関連記事「ネットワーク構成図の書き方|記号・レイヤー別の書き分けとAWS構成の例」で扱っています。
参考・出典
確認日はいずれも 2026年10月29日です。
- The Linux Kernel documentation「Ethernet Bridging」(STP の目的・ポートの状態・既定値・名前空間でのカーネル STP):https://docs.kernel.org/networking/bridge.html
- Linux manual page「ip-link(8)」(bridge の forward_delay・hello_time・max_age・ageing_time・stp_state・priority):https://man7.org/linux/man-pages/man8/ip-link.8.html
- Linux manual page「ip-netns(8)」:https://man7.org/linux/man-pages/man8/ip-netns.8.html
- Cisco「Cisco's Massively Scalable Data Center Network Fabric Design and Operation」(white paper c11-743245。リーフ・スパインと ECMP):https://bxin.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-switches/white-paper-c11-743245.pdf
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「ネットワークトポロジーとは|スター型・バス型・リング型の違いを切断実験で比較」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。