InfraLab

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. 1. MPLS 概要 (RFC 3031)4
  2. 2. ラベル4
  3. 3. シム4
  4. 4. LDP5
  5. 5. RSVP-TE4
  6. 6. L3VPN4
  7. 7. L2VPN4
  8. 8. Segment Routing 概要 (RFC 8402)3
  9. 9. SR-MPLS4
  10. 10. SRv63
  11. 11. 運用3
  12. 12. References26

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, 8754

1.3. LSR / LER

LSR はラベルで転送する中継ルータ、LER は MPLS ドメイン境界でラベル push/pop を行うルータ。

LER: Label Edge Router。LSR: Label Switching Router。FEC ごとに label binding

1.4. FEC

同じ転送扱いを受けるパケット集合。宛先 prefix、VPN route、TE tunnel などが FEC になる。

Forwarding Equivalence Class。FEC -> label binding -> LFIB

2. ラベル

2.1. MPLS ラベル値

20bit のラベル値で転送エントリを識別する。0-15 は予約領域で、通常の動的ラベルは 16 以上。

Label field 20bit。0-15 reserved、16-1048575 usable

2.2. 予約ラベル

特別な転送処理を指示するラベル。Explicit Null や Router Alert、Implicit Null が代表。

0=IPv4 Explicit Null, 1=Router Alert, 2=IPv6 Explicit Null, 3=Implicit Null

2.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 model

3.3. Bottom of Stack

ラベルスタック最下位を示す bit。S=1 の下に MPLS ラベルはなく、payload が続く。

S bit 1bit。Top labels S=0、bottom label S=1

3.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/646

4.2. LDP Discovery

リンクローカル Hello で隣接 LSR を発見する。targeted LDP は非直結相手に使う。

Basic Discovery: UDP 646 to 224.0.0.2。Targeted Hello: UDP 646 unicast

4.3. LDP Label Distribution

ラベル割当と配布は Downstream Unsolicited が一般的。要求型や保持方式も仕様にある。

DU / DoD、liberal retention / conservative retention。Label Mapping message

4.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 message

5.2. Path / Resv

Headend から Path を送り、Tailend から Resv でラベルとリソース予約を返す。

Path: SESSION, SENDER_TEMPLATE, ERO。Resv: LABEL, RRO, STYLE

5.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 label

6.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:100

6.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 label

7.2. VPWS

2 拠点間を仮想線として接続する L2VPN。Ethernet pseudowire として使われる。

Virtual Private Wire Service。tLDP または BGP signaling

7.3. VPLS

複数拠点を同一ブロードキャストドメインとして接続する L2VPN。MAC 学習と flooding を伴う。

Virtual Private LAN Service。split-horizon label、full mesh PW

7.4. EVPN

BGP を制御プレーンとして MAC/IP 到達性を配布する L2/L3 VPN。VXLAN と MPLS の両方で利用される。

RFC 7432。EVPN route type 1/2/3/4/5

8. Segment Routing 概要 (RFC 8402)

8.1. Segment Routing 概要

送信元が Segment List を指定し、ネットワーク内の状態を減らして TE や FRR を実現する。

RFC 8402。Segment / SID / Segment List / SR Domain

8.2. SID

Segment Identifier。SR-MPLS ではラベル、SRv6 では IPv6 address として表現される。

SR-MPLS SID = MPLS label。SRv6 SID = 128bit IPv6 address

8.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 label

9.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 action

11. 運用

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.0

11.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 stack

12. References

  1. MPLS
  2. Segment Routing
  3. SR
  4. SR-MPLS
  5. SRv6
  6. RFC 3031
  7. RFC 3032
  8. RFC 5036
  9. RFC 3209
  10. RFC 4364
  11. RFC 8402
  12. RFC 8660
  13. RFC 8754
  14. Label
  15. LDP
  16. RSVP-TE
  17. L3VPN
  18. L2VPN
  19. VRF
  20. RD
  21. RT
  22. MP-BGP
  23. SRGB
  24. Prefix SID
  25. Adjacency SID
  26. TI-LFA
Related