Home » Segment Routing: SR-MPLS, SRv6, SID, TI-LFA และ Traffic Engineering
Segment Routing: SR-MPLS, SRv6, SID, TI-LFA และ Traffic Engineering
Segment Routing: SR-MPLS, SRv6, SID, TI-LFA และ Traffic Engineering
Segment Routing (SR) เป็น next-generation routing architecture ที่แทนที่ LDP และ RSVP-TE ด้วย source routing paradigm SR-MPLS ใช้ MPLS labels เป็น Segment Identifiers (SIDs) ที่ distribute ผ่าน IGP extensions, SRv6 ใช้ IPv6 headers แทน MPLS labels, TI-LFA (Topology-Independent Loop-Free Alternate) ให้ sub-50ms failover โดยอัตโนมัติ และ SR-TE ให้ traffic engineering ที่ง่ายกว่า RSVP-TE
MPLS + LDP/RSVP-TE มี per-flow state ที่ทุก transit node ทำให้ scalability จำกัดและ operations ซับซ้อน Segment Routing กำจัด per-flow state: ingress node ใส่ ordered list ของ SIDs (segments) ใน packet header แล้ว transit nodes แค่ follow instructions ทำให้ simpler, more scalable และ easier to operate
SR Concepts
| Concept |
คืออะไร |
| Segment |
Instruction ที่บอก router ว่าจะ forward packet อย่างไร |
| SID (Segment Identifier) |
Identifier ของ segment (MPLS label หรือ IPv6 address) |
| Segment List |
Ordered list ของ SIDs ที่ ingress node ใส่ใน packet header |
| Source Routing |
Ingress node กำหนด path ทั้งหมด (ไม่ต้องมี state ที่ transit) |
| Prefix SID |
SID ที่ represent shortest path ไปยัง prefix (global scope) |
| Adjacency SID |
SID ที่ represent specific link/adjacency (local scope) |
| Node SID |
Prefix SID ของ router’s loopback (unique per node) |
SR-MPLS vs SRv6
| Feature |
SR-MPLS |
SRv6 |
| Data Plane |
MPLS (label stack) |
IPv6 (SRH — Segment Routing Header) |
| SID Format |
20-bit MPLS labels |
128-bit IPv6 addresses |
| SID Capacity |
Limited (2^20 = ~1M labels) |
Virtually unlimited (128-bit) |
| Network Functions |
Labels = forwarding only |
SRv6 functions encoded in SID (e.g., End, End.X, End.DT4) |
| Hardware |
Existing MPLS hardware |
Needs IPv6 + SRH support |
| Deployment |
Widely deployed (brownfield) |
Newer (greenfield preferred) |
| MTU Impact |
4 bytes per label |
16 bytes per SID (larger overhead) |
| Programmability |
Limited (just forwarding) |
Rich (network programming via SID functions) |
SID Types
| SID Type |
Scope |
Purpose |
| Prefix SID |
Global (domain-wide unique) |
Shortest path to a prefix (like LDP label) |
| Adjacency SID |
Local (per link) |
Forward over specific link (for TE, explicit path) |
| Node SID |
Global |
Prefix SID of node’s loopback (identify specific router) |
| Binding SID |
Global/Local |
Represent an SR Policy (abstract a path into single SID) |
| Anycast SID |
Global |
Same SID on multiple nodes (load balancing, redundancy) |
| Flex-Algo SID |
Global |
SID computed with custom algorithm (e.g., low-latency path) |
TI-LFA (Topology-Independent Loop-Free Alternate)
| Feature |
รายละเอียด |
| คืออะไร |
Automatic fast-reroute ที่ทำงานกับ any topology (ไม่ต้อง configure backup paths) |
| How It Works |
Pre-compute backup path using SR segments → install in FIB → sub-50ms failover |
| vs RSVP-TE FRR |
RSVP-TE: ต้อง configure bypass tunnels manually | TI-LFA: automatic, topology-independent |
| Coverage |
100% link/node protection (any topology, any failure scenario) |
| Mechanism |
Use post-convergence path + repair segments to avoid failed link/node |
| Micro-loop Prevention |
SR inherently prevents micro-loops (source routing = deterministic path) |
SR Traffic Engineering (SR-TE)
| Feature |
รายละเอียด |
| SR Policy |
Ordered list of segments ที่กำหนด explicit path (like RSVP-TE tunnel) |
| Candidate Paths |
Multiple paths per policy (primary + backup) with preference |
| Dynamic Path |
PCE (Path Computation Element) คำนวณ path ตาม constraints |
| Explicit Path |
Admin กำหนด segment list (adjacency SIDs) |
| Flex-Algo |
Define custom routing algorithms (e.g., algo 128 = low-latency, algo 129 = low-loss) |
| On-Demand Next-hop (ODN) |
Automatically create SR Policy เมื่อ BGP route ต้องการ specific TE path |
| No Per-flow State |
Transit nodes ไม่ต้องเก็บ state (vs RSVP-TE ที่ทุก hop มี state) |
Flex-Algorithm
| Feature |
รายละเอียด |
| คืออะไร |
Custom routing algorithm ที่ define ผ่าน IGP (IS-IS/OSPF) |
| Algorithm ID |
128-255 (user-defined), 0 = default SPF |
| Metric Type |
IGP metric, TE metric, latency metric, etc. |
| Constraints |
Include/exclude affinities (link colors) |
| Use Case |
Algo 128: low-latency path (voice/video), Algo 129: high-bandwidth path (bulk data) |
| Benefit |
Multiple topologies บน same physical network (ไม่ต้อง separate infrastructure) |
SR vs RSVP-TE vs LDP
| Feature |
LDP |
RSVP-TE |
Segment Routing |
| Label Distribution |
LDP protocol |
RSVP-TE protocol |
IGP extensions (IS-IS/OSPF) |
| Transit State |
Per-prefix |
Per-LSP per-hop |
None (source routing) |
| Traffic Engineering |
No |
Yes (complex) |
Yes (simpler — SR-TE, Flex-Algo) |
| Fast Reroute |
No (IGP convergence) |
FRR (manual bypass) |
TI-LFA (automatic, 100% coverage) |
| Scalability |
Good |
Poor (per-LSP state) |
Best (no transit state) |
| Operations |
Simple |
Complex |
Simpler (fewer protocols) |
| Trend |
Legacy |
Legacy |
Future (new deployments) |
ทิ้งท้าย: Segment Routing = Simpler, Scalable, Programmable
Segment Routing Concept: source routing with SIDs — no per-flow state at transit nodes SR-MPLS: MPLS labels as SIDs (brownfield, widely deployed) SRv6: IPv6 addresses as SIDs (network programming, greenfield) TI-LFA: automatic sub-50ms FRR, 100% coverage, any topology SR-TE: SR Policies + Flex-Algo (simpler than RSVP-TE, no transit state) Flex-Algo: custom routing algorithms (low-latency, high-bandwidth) per same network Replacing: LDP (no TE) + RSVP-TE (complex TE) → SR (simple + scalable + TE)
อ่านเพิ่มเติมเกี่ยวกับ MPLS Fundamentals LDP RSVP-TE และ BGP Advanced Route Reflectors ที่ siamlancard.com หรือจาก icafeforex.com และ siam2r.com