MPLS / Segment Routing 仕様
42 / 42 items
InfraLab Reference Series
Category: MPLS / SR
Updated: 2026-05-14
infralab.jp
mpls-sr
42 items
MPLS / Segment Routing 仕様
Abstract
MPLS ラベルスタック、LDP、RSVP-TE、L3VPN/L2VPN、Segment Routing、SR-MPLS、SRv6、TI-LFA と運用確認を体系化した仕様集。
Table of Contents
1. MPLS 概要 (RFC 3031)
1.1. MPLS とは
IP lookup の代わりに短いラベルで転送する技術。VPN、TE、Fast Reroute、サービス分離に使われる。
RFC 3031 (MPLS Architecture)、RFC 3032 (Label Stack Encoding)1.2. 主要 RFC
MPLS 基本、LDP、RSVP-TE、BGP/MPLS VPN、Segment Routing、SR-MPLS、SRv6 を押さえる。
RFC 3031, 3032, 5036, 3209, 4364, 8402, 8660, 87541.3. LSR / LER
LSR はラベルで転送する中継ルータ、LER は MPLS ドメイン境界でラベル push/pop を行うルータ。
LER: Label Edge Router。LSR: Label Switching Router。FEC ごとに label binding1.4. FEC
同じ転送扱いを受けるパケット集合。宛先 prefix、VPN route、TE tunnel などが FEC になる。
Forwarding Equivalence Class。FEC -> label binding -> LFIB2. ラベル
2.1. MPLS ラベル値
20bit のラベル値で転送エントリを識別する。0-15 は予約領域で、通常の動的ラベルは 16 以上。
Label field 20bit。0-15 reserved、16-1048575 usable2.2. 予約ラベル
特別な転送処理を指示するラベル。Explicit Null や Router Alert、Implicit Null が代表。
0=IPv4 Explicit Null, 1=Router Alert, 2=IPv6 Explicit Null, 3=Implicit Null2.3. PHP
Penultimate Hop Popping。終端直前のルータで top label を pop し、終端 PE の処理負荷を下げる。
Implicit Null label 3 を広告。Penultimate LSR が pop、egress は IP/VPN label 等を処理2.4. Explicit Null
PHP せずに label 0/2 を付けて egress へ渡し、TC/EXP QoS 情報を維持する。
Label 0 IPv4 Explicit Null、Label 2 IPv6 Explicit Null。QoS pipe/uniform model で重要3. シム
3.1. MPLS シムヘッダ
MPLS ラベルスタックの各エントリは 32bit。複数枚積むことで transport label と service label を表現する。
32bit = Label 20 + TC 3 + S 1 + TTL 8。RFC 3032
RFC 3032 Label Stack Entry ASCII 図:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+3.2. TC / EXP
Traffic Class は QoS と ECN 用の 3bit。旧称 EXP bit と呼ばれることがある。
TC 3bit。QoS PHB mapping、uniform/pipe/short-pipe model3.3. Bottom of Stack
ラベルスタック最下位を示す bit。S=1 の下に MPLS ラベルはなく、payload が続く。
S bit 1bit。Top labels S=0、bottom label S=13.4. MPLS TTL
MPLS 転送中のループ検出に使う。IP TTL との伝搬方式は運用ポリシーで変わる。
TTL 8bit。ttl-propagate 有効なら IP TTL と同期。traceroute の見え方に影響4. LDP
4.1. LDP 概要
IGP で決まった next-hop に従ってラベルを配布し、hop-by-hop の LSP を作る。
RFC 5036。Discovery UDP/646、Session TCP/6464.2. LDP Discovery
リンクローカル Hello で隣接 LSR を発見する。targeted LDP は非直結相手に使う。
Basic Discovery: UDP 646 to 224.0.0.2。Targeted Hello: UDP 646 unicast4.3. LDP Label Distribution
ラベル割当と配布は Downstream Unsolicited が一般的。要求型や保持方式も仕様にある。
DU / DoD、liberal retention / conservative retention。Label Mapping message4.4. Independent / Ordered Control
Independent は各 LSR が独立して広告、Ordered は egress から順に広告する制御方式。
Independent control は収束が速い。Ordered control は blackhole を減らしやすい4.5. Targeted LDP
非直結 PE 間の pseudowire や remote LDP session に使う。
tLDP: unicast Hello + TCP/646。L2VPN VPWS/VPLS で利用5. RSVP-TE
5.1. RSVP-TE 概要
帯域や明示経路を指定した TE LSP を作るための RSVP 拡張。トラフィックエンジニアリングに使う。
RFC 3209。IP protocol 46 RSVP。Path / Resv message5.2. Path / Resv
Headend から Path を送り、Tailend から Resv でラベルとリソース予約を返す。
Path: SESSION, SENDER_TEMPLATE, ERO。Resv: LABEL, RRO, STYLE5.3. ERO / RRO
ERO は通過経路を指定し、RRO は実際に通過した経路を記録する。
Explicit Route Object / Record Route Object。loose/strict hop 指定5.4. FRR Bypass / Detour
リンク/ノード障害時にローカル修復で高速切替する。数十 ms 収束を目指す。
RSVP-TE Fast Reroute。Facility backup (Bypass) / One-to-one backup (Detour)6. L3VPN
6.1. L3VPN 概要
PE で VRF を分離し、MP-BGP で VPNv4/VPNv6 経路を交換し、MPLS ラベルで転送する。
RFC 4364 BGP/MPLS IP VPN。Transport label + VPN label6.2. VRF
顧客ごとに独立したルーティングテーブルを持つ仕組み。PE-CE 間で静的、OSPF、BGP などを使う。
VRF = VPN Routing and Forwarding。interface を VRF に所属6.3. RD / RT
RD は同じ IPv4 prefix を VPNv4 で一意化し、RT は import/export policy を制御する BGP community。
RD: Route Distinguisher 8B。RT: Route Target extended community。例 65000:1006.4. MP-BGP VPNv4
PE 間で VPN ラベル付き経路を配布する。Route Reflector を組み合わせてスケールする。
AFI 1 SAFI 128 = VPN-IPv4。VPNv6 は AFI 2 SAFI 128
RFC 4364 VPN service label over transport label ASCII 図:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transport Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VPN Service Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Customer Payload ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+7. L2VPN
7.1. L2VPN 種別
MPLS 上で L2 サービスを提供する。点対点の VPWS、マルチポイントの VPLS、BGP EVPN が代表。
VPWS / VPLS / EVPN。Pseudowire label + transport label7.2. VPWS
2 拠点間を仮想線として接続する L2VPN。Ethernet pseudowire として使われる。
Virtual Private Wire Service。tLDP または BGP signaling7.3. VPLS
複数拠点を同一ブロードキャストドメインとして接続する L2VPN。MAC 学習と flooding を伴う。
Virtual Private LAN Service。split-horizon label、full mesh PW7.4. EVPN
BGP を制御プレーンとして MAC/IP 到達性を配布する L2/L3 VPN。VXLAN と MPLS の両方で利用される。
RFC 7432。EVPN route type 1/2/3/4/58. Segment Routing 概要 (RFC 8402)
8.1. Segment Routing 概要
送信元が Segment List を指定し、ネットワーク内の状態を減らして TE や FRR を実現する。
RFC 8402。Segment / SID / Segment List / SR Domain8.2. SID
Segment Identifier。SR-MPLS ではラベル、SRv6 では IPv6 address として表現される。
SR-MPLS SID = MPLS label。SRv6 SID = 128bit IPv6 address8.3. SR Domain
SR の意味が一貫する管理ドメイン。SID の広告、SRGB、ポリシーをこの範囲で揃える。
IGP/BGP-LS/PCEP などで SID/Topology を配布。境界で policy 適用9. SR-MPLS
9.1. SRGB
グローバル SID をローカルラベル値に写像するラベル範囲。全ノードで揃えると運用が単純になる。
SRGB 既定例: 16000-23999。ベンダにより範囲は設定可能
RFC 8402 SRGB label mapping / RFC 3032 label stack entry ASCII 図:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRGB Base Label | Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Base + Index | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+9.2. Prefix SID
特定 prefix または loopback へ到達するためのグローバル SID。IGP で広告される。
OSPF/IS-IS SR extension。Node SID は loopback prefix に付与9.3. Adjacency SID
特定リンクを明示的に通過させるローカル SID。トラフィックエンジニアリングに使う。
Local significance。通常 SRGB 外の local label9.4. Anycast SID
複数ノードに同一 SID を広告させ、最寄りのいずれかへ到達させる。
Anycast prefix + same Prefix SID。サービス入口や ECMP 集約で利用10. SRv6
10.1. SRv6 SID 構造
SRv6 では 128bit IPv6 address に Locator、Function、Argument を埋め込む。
SID = Locator + Function + Argument。RFC 8754 (SRH)、RFC 8986 (SRv6 Network Programming)10.2. SRH
SRv6 の Segment Routing Header。IPv6 Routing Header Type 4 として Segment List を持つ。
IPv6 Extension Header: Routing Type 4。Segments Left、Last Entry、Segment List[0..n]
RFC 8754 Segment Routing Header ASCII 図:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Last Entry | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment List[0] ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment List[0] ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment List[0] ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment List[0] ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLVs ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+10.3. SRv6 End 行動
SID の Function により endpoint behavior を実行する。End、End.X、End.DT4/DT6 などが代表。
例: End, End.X, End.DX4, End.DT4, End.DT6, End.DT46。Linux seg6local action11. 運用
11.1. TI-LFA
障害箇所に依存しない Loop-Free Alternate を SR で実現し、高速保護経路を用意する。
Topology-Independent LFA。post-convergence path を Segment List で表現11.2. MPLS 確認コマンド
ラベル配布、LFIB、LDP/RSVP/SR の状態を確認し、transport と service label を分けて見る。
Cisco: show mpls forwarding-table / show mpls ldp neighbor / show segment-routing mpls。Junos: show route table mpls.011.3. 典型トラブルシュート
IGP 到達性、LDP/RSVP 隣接、ラベル不一致、MTU、PHP/Explicit Null、VRF RT import/export を順に確認する。
確認: ping mpls ipv4、traceroute mpls、show bgp vpnv4、show route forwarding-table、MTU >= payload + label stack12. References
- MPLS
- Segment Routing
- SR
- SR-MPLS
- SRv6
- RFC 3031
- RFC 3032
- RFC 5036
- RFC 3209
- RFC 4364
- RFC 8402
- RFC 8660
- RFC 8754
- Label
- LDP
- RSVP-TE
- L3VPN
- L2VPN
- VRF
- RD
- RT
- MP-BGP
- SRGB
- Prefix SID
- Adjacency SID
- TI-LFA