TL

SRv6(IPv6ネイティブのセグメントルーティング)

MPLSコアを持たずにトラフィックエンジニアリングとサービス連鎖を実現できる理由が、SRHの中身とSIDのFunctionから正確にわかる。

応用SRv6セグメントルーティングIPv6SRHネットワーク最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.SRv6はSIDを128ビットのIPv6アドレスとして扱い、Locator:Function:Argsの構造でアドレス自体に動作を埋め込む。
  • 2.経路情報はIPv6拡張ヘッダSRHのセグメントリストに列挙され、ヘッダの宛先アドレスは常に先頭(アクティブ)SIDになる。
  • 3.END/END.X/END.DT4などのFunctionを呼び分けることで、転送だけでなくVRF挿入やVNF連鎖までSIDの指定だけで表現できる。

SIDを「宛先アドレス」に埋め込む発想

セグメントルーティングは経路情報を入口でパケットに書き込み、中継ルータからパスごとの状態を消す技術です。そのデータプレーンのうち、SIDを MPLS ラベルではなく 128ビットの IPv6 アドレスそのものとして扱うのが SRv6 です。SR-MPLS がラベルスタックという専用のシムヘッダを必要としたのに対し、SRv6 は素の IPv6 転送だけでセグメントを渡り歩けます。MPLS データプレーンを一切必要としない点が、SRv6 が「IPv6 ネイティブ」と呼ばれる理由です。

なぜMPLSコアが要らないのか

SRv6を解さない中継ルータでも、宛先アドレス(アクティブSID)が指すLocatorプレフィックスへ向けて普通にIPv6として転送できます。SIDが特別なラベル空間ではなく通常のルーティング可能なアドレスだからです。これにより既存のIPv6コアへの漸進的な導入がしやすくなります。

SIDの構造:Locator : Function : Args

SRv6 の SID は128ビット全体が単なる識別子ではなく、内部が3つの領域に分かれます。

|<-- Locator(例 48bit) -->|<-- Function(例 16bit) -->|<-- Args(可変・省略可) -->|
   そのノードへ経路可能な          到達後に実行する動作            動作へ渡す追加パラメータ
   プレフィックス(IGPで広告)      (END, END.X, END.DTなど)      (オプション)
  • Locator は当該ノードへ IGP(IS-IS/OSPFv3 の SR 拡張)が到達可能に広告する上位ビット列で、通常のIPv6プレフィックスとしてルーティングされます。中継ルータはこの部分だけを見て、素のIPv6最長一致転送でSIDの所有ノードまでパケットを運べます。
  • Function はそのノードに着いた後で「何をするか」を指定します。同じLocatorを持つノードでも、Functionを変えるだけで挙動を切り替えられます。
  • Args はFunctionへの追加パラメータで、フローハッシュ用の情報などを詰める用途もあります。

SIDがアドレスであると同時に命令でもある、というのがSRv6の核心です。SR-MPLSではラベルは単なる索引で「何をするか」はノードのローカルなラベル操作テーブルが決めますが、SRv6ではその意味がSIDの値そのものに埋め込まれています。

SRH:セグメントリストを運ぶ拡張ヘッダ

セグメントリストは SRH(Segment Routing Header) という IPv6 拡張ヘッダに格納されます。主要フィールドは次のとおりです。

IPv6ヘッダ
  Destination Address = アクティブSID(先頭で処理すべきSID)

SRH(拡張ヘッダ、Next Header=43)
  Next Header          : SRHの次に続くヘッダ種別
  Hdr Ext Len           : SRHの長さ
  Routing Type          : 4(SRH)
  Segments Left         : 残りセグメント数(デクリメントされるポインタ)
  Last Entry            : セグメントリストの末尾インデックス
  Flags
  Segment List[0..n]    : SID列(末尾がリストの先頭=最初に通ったセグメント)
  (Optional TLV)         : HMAC認証などの追加情報

Segments Left が現在アクティブなセグメントの位置を指すポインタです。ノードがSIDを1つ処理し終えると、Segments Left を1減らし、Segment List[Segments Left] の値を IPv6ヘッダの宛先アドレスへコピー します。この「ポインタを進めて宛先アドレスを書き換える」操作こそがSRv6の転送そのもので、宛先アドレスは常に「次に向かうべきアクティブSID」を表し続けます。

経路: ノードC → ノードB → ノードA(最終目的地)
SegList = [SID_A, SID_B, SID_C]([0]が最後に訪れるセグメント、[n]が最初)

送信元:   DA = SegList[2] = SID_C(アクティブ), SL=2
ノードC:  SLを2→1に更新 → DA = SegList[1] = SID_B
ノードB:  SLを1→0に更新 → DA = SegList[0] = SID_A
ノードA:  SL=0(残りセグメントなし)→ SRHを終端しローカルのFunction(END.DT4など)を実行

SR-MPLSとの違いを構造で押さえる

SR-MPLSは既存MPLS網の再利用、SRv6はMPLSレスとIPv6アドレスへの動作埋め込みが利点。引き換えにヘッダ効率は劣る。
観点SR-MPLSSRv6
SIDの実体20ビットのMPLSラベル128ビットのIPv6アドレス
経路情報の置き場ラベルスタック(シムヘッダ)SRH(IPv6拡張ヘッダ)
転送基盤MPLSラベルスイッチング素のIPv6ルーティング
動作の指定方法ラベルは索引、動作はノード側テーブルで解釈Functionが値としてSIDに埋め込まれる
1SIDのオーバーヘッド4バイト16バイト(SRH上はSID列としてさらに嵩む)
非対応ノードの扱いMPLS転送に非対応だと中継不可宛先アドレスとして素のIPv6転送が可能
ヘッダオーバーヘッドとMTU

SRHはSIDごとに16バイトを消費するため、セグメントリストが深くなるほどヘッダが肥大し、パスMTUを圧迫します。実運用ではリスト長を数個に抑えるか、圧縮SID(uSIDなど、複数のマイクロセグメントを1つの128ビットSID内に連結して詰め込み、セグメントリスト自体を短くする方式)で緩和します。

プログラマブルなネットワーク機能:Function一覧

SRv6が「プログラマブル」と呼ばれるのは、Functionの呼び分けだけでネットワーク機能を合成できるからです。代表的なFunctionは次のとおりです。

Function意味用途
ENDSegmentsLeftをデクリメントし次のSIDへ純粋な中継(次のセグメントへの受け渡し)
END.X指定した特定リンクへ転送SR-MPLSの隣接SIDに相当、リンク強制
END.DT4 / END.DT6SRHを外しVRFへルックアップして転送L3VPNの出口でテナントのルーティングテーブルへ注入
END.DX4 / END.DX6SRHを外し指定ネクストホップへ直接転送PE-CE間のクロスコネクト的な出口処理
END.AD指定したVNFへトラフィックを迂回し戻すサービスチェイニング(FW/DPIなどの挿入)

たとえば [END.AD(FW), END.DT4(VRF-A)] というセグメントリストは「まずファイアウォールVNFを経由させ、その後VRF-Aへルックアップして配送せよ」という指示を、中継ルータへの個別設定なしにパケット自身に埋め込みます。中継ルータはこの意図を知らなくても、宛先アドレス(アクティブSID)に従って処理を委譲していくだけです。これが「SIDの指定だけでネットワーク機能を呼び出す」プログラマビリティの正体で、トンネル終端だけを扱う一般的なオーバーレイと違い、SRv6は経路上の任意ノードでの処理呼び出しまでアドレス空間に統合しています。

試験・実務の要点

(1)SIDはLocator(経路可能)+Function(動作)+Argsの3層構造。(2)SRHのSegments Leftが処理ポインタで、進むたびに宛先アドレスへ次SIDを書き写す。(3)SR-MPLSはラベルスタック+MPLS転送、SRv6はSRH+素のIPv6転送、という基盤の違い。(4)END.DT/END.DX/END.ADなどFunctionの組み合わせがVPN終端やサービスチェイニングを実現する。

まとめ

SRv6の本質は、セグメントルーティングの「経路をパケットに書く」という発想を、専用のラベル空間ではなくIPv6アドレス空間の上にそのまま実装したことです。SIDはLocator:Function:Argsの構造を持ち、アクティブSIDは常にIPv6ヘッダの宛先アドレスとして現れます。SRHのSegments Leftというポインタが処理位置を管理し、1セグメント処理するたびに宛先アドレスを次のSIDへ書き換えます。SR-MPLSがMPLSという既存基盤の再利用だったのに対し、SRv6はMPLSコアなしで完結し、かつFunctionによってVRF挿入やVNF連鎖までアドレスの指定だけで表現できる。オーバーヘッドとMTUという代償はあるものの、この「アドレスがそのままプログラム」という設計が、キャリア網やデータセンターでSRv6が広がっている理由です。

ネットワーク Article

SRv6(IPv6ネイティブのセグメントルーティング)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

SRv6

比較で見る軸

難易度: advanced / カテゴリ: ネットワーク / タグ数: 5

導入後に効く点

経路情報はIPv6拡張ヘッダSRHのセグメントリストに列挙され、ヘッダの宛先アドレスは常に先頭(アクティブ)SIDになる。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
ネットワーク
タグ数
5

判断チェックリスト

  • 自社の用途が「SRv6 / セグメントルーティング」に近いか確認する。
  • 強みである「SRv6はSIDを128ビットのIPv6アドレスとして扱い、Locator:Function:Argsの構造でアドレス自体に動作を埋め込む。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

SRv6セグメントルーティングIPv6SRHネットワークSRv6セグメントルーティングIPv6