【セグメントルーティング】

セグメントルーティング とは?

最終更新:
💡 経由先や処理を、セグメントの指示で指定する

ネットワークの入口などで、パケットに転送の指示を与える技術。SIDと実際の経路、SR-MPLSとSRv6、残るルーティング状態を解説します。

📌 このページのポイント
セグメントルーティング:指示と経路この例の指示:「Cへ進む」Cを指定するノードSID入口A指示を与える途中B転送する宛先C指定された先BをSIDの一覧に書く必要はない途中のルーターにも、転送表は必要
Cへの経路がBを通ると仮定した例で、矢印はパケットの転送方向です。SIDの並びは全通過ルーターの一覧とは限らず、指示の種類とルーティングで経路が変わります。
ひよこ ひよこ
セグメントルーティングは、通る道を全部書くの?
ペンギン先生 ペンギン先生
必ずしも、通るルーターを一台ずつ書くわけではないよ。ネットワークの入口などで、転送や処理の指示を並べる。その指示一つで、複数のルーターを経由する場合もあるんだ。
ひよこ ひよこ
一つの指示で、複数のルーターを通る?
ペンギン先生 ペンギン先生
例えば「Cへ進む」というノードのSIDを使うと、途中のBを経由してCへ届くことがある。最短経路を使う指示などがあるので、SIDの並びと実際に通る全ルーターの一覧は区別しよう。
ひよこ ひよこ
いつも同じ形式で指示を書く?
ペンギン先生 ペンギン先生
SR-MPLSはMPLSのラベル、SRv6はIPv6のSIDを使う。SRv6では宛先アドレスや、必要に応じてSRHという拡張ヘッダーなどで指示を扱う。MPLSのラベルを外す処理と、SRv6の処理を同じものとして説明しないことが大切だよ。
ひよこ ひよこ
途中のルーターは、何も覚えなくてよい?
ペンギン先生 ペンギン先生
転送表やSIDに対応する処理などは必要だよ。経路ごと・フローごとの状態を途中で持たせずに表現できる、という点と、ルーターの状態が全部なくなる、という点は違うんだ。
ひよこ ひよこ
使えば、必ず遅延が小さくなる?
ペンギン先生 ペンギン先生
経由先を制御する用途はあるけれど、遅延は回線や混雑などにも左右される。指定した方針だけで性能を保証できない。また、管理するネットワークの境界で、不適切な指示の流入や内部情報の漏れを防ぐ設計も必要だよ。
もっと詳しく知りたい人へ

ノードのSIDと、リンクを指定するSIDは違う?

ノード側へ到達するための指示と、特定の隣接リンクへ転送する指示は違います。前者は途中の経路をルーティングに任せられ、後者はそのリンクを指定できます。実際の動きは、SIDの種類や設定されたアルゴリズムなどを確認します。

SRv6では、通過するたびに指示を一つ削除する?

一律にそう動くわけではありません。例えばEnd動作ではSegments Leftなどを更新し、次のSIDをIPv6の宛先にして転送を調べます。途中を通過するだけのノードと、SIDの動作を実行するノードを区別します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「セグメントルーティング」って出てきたら「転送や処理の指示をパケットに与える技術」と思えばだいたいOK!
📖 おまけ:英語の意味
「Segment Routing」 = セグメントによる経路制御
💬 ここでのsegmentは、指定の場所へ転送する、特定のリンクを通す、サービスに渡す、といった指示です。SIDはその指示を識別するSegment Identifierを表します。

参考資料

← 用語集にもどる