Tóm tắt: Khai SRGB 16000-23999 giống nhau trên mọi router, bật SR trong IS-IS, gán prefix SID (index) cho loopback, bật TI-LFA trên link. IS-IS phải đang chạy wide metric như trong cấu hình IS-IS. Khái niệm xem Segment Routing MPLS.
Quy ước index: router có loopback 192.0.2.N dùng index N. R1 (XR) = 16001, R2 (Junos) = 16002.
Luồng hoạt động
flowchart LR A["Khai SRGB 16000-23999"] --> B["Bật SR trong IS-IS"] B --> C["Gán prefix SID cho loopback"] C --> D["IS-IS quảng bá SID trong LSP"] D --> E["Cài label vào LFIB"] E --> F["Bật TI-LFA trên link"] F --> G["Kiểm tra label và backup path"]
Cấu hình
IOS XR
segment-routing
global-block 16000 23999
!
router isis CORE
address-family ipv4 unicast
metric-style wide
segment-routing mpls
!
interface Loopback0
passive
address-family ipv4 unicast
prefix-sid index 1
!
!
interface HundredGigE0/0/0/0
point-to-point
address-family ipv4 unicast
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa
!
!
!Đang chạy song song LDP và muốn ưu tiên label SR: thêm segment-routing mpls sr-prefer dưới address-family ipv4 unicast của IS-IS.
Junos
set interfaces et-0/0/0 unit 0 family mpls
set protocols mpls interface et-0/0/0.0
set protocols isis source-packet-routing srgb start-label 16000 index-range 8000
set protocols isis source-packet-routing node-segment ipv4-index 2
set protocols isis backup-spf-options use-post-convergence-lfa
set protocols isis backup-spf-options use-source-packet-routing
set protocols isis interface et-0/0/0.0 level 2 post-convergence-lfaJunos cần family mpls trên unit và interface trong protocols mpls. Thiếu một trong hai thì adjacency IS-IS vẫn lên, SID vẫn quảng bá, nhưng label không được cài để chuyển tiếp qua link đó.
Lệnh kiểm tra
| Mục đích | IOS XR | Junos |
|---|---|---|
| SR đã bật, SRGB | show isis segment-routing label table |
show isis overview (mục SPRING, SRGB) |
| SID trong LSDB | show isis database verbose | include "SID|Router Cap" |
show isis database extensive | match "SID|SRGB" |
| Adjacency SID | show isis adjacency detail |
show isis adjacency extensive |
| LFIB theo node SID | show mpls forwarding labels 16002 |
show route label 16001 |
| Route có label tới loopback | show cef 192.0.2.2/32 |
show route table inet.3 192.0.2.1/32 extensive |
| TI-LFA tổng quan | show isis fast-reroute summary |
show isis backup coverage |
| Backup path của một prefix | show isis fast-reroute 192.0.2.2/32 detail |
show route 192.0.2.1/32 extensive (next-hop có weight 0xf000 là backup) |
| Đi thử theo label | traceroute sr-mpls 192.0.2.2/32 |
traceroute 192.0.2.1 (hop hỗ trợ RFC 4950 sẽ in label MPLS) |
Kết quả mong đợi: trên R1, show mpls forwarding labels 16002 có outgoing label Pop (PHP) qua link trực tiếp sang R2. Khi có router ở giữa, outgoing label giữ nguyên 16002.
Lỗi thường gặp
| Triệu chứng | Nguyên nhân | Cách xử lý |
|---|---|---|
| Label tới cùng một node khác nhau qua từng hop | SRGB không đồng nhất giữa các router | Đặt cùng SRGB trên toàn domain |
Log SID conflict / prefix SID không được dùng |
Hai router dùng cùng index | Quản lý index tập trung (IPAM/NetBox), sửa trùng |
Junos có SID trong LSDB nhưng inet.3 không có route |
Thiếu family mpls hoặc protocols mpls interface |
Thêm cả hai rồi kiểm tra lại inet.3 |
Junos: inet.3 vẫn dùng route LDP |
LDP preference (9) tốt hơn IS-IS (L2: 18) | Tăng set protocols ldp preference, hoặc bỏ LDP khi đã chuyển xong |
| XR: CEF vẫn dùng label LDP | Mặc định LDP được ưu tiên khi chạy cả hai | segment-routing mpls sr-prefer |
| TI-LFA không có backup cho một số prefix | Topo không có đường thay thế, hoặc router trên đường backup chưa bật SR | show isis fast-reroute summary xem coverage, bật SR trên toàn bộ core |
| Gói lớn bị rơi sau khi chuyển sang SR | Label stack của TI-LFA dài hơn, vượt MTU | Tăng MTU core (9216), chừa ít nhất 4 label × 4 byte |
| Router không chạy SR ở giữa làm gãy LSP | Thiếu mapping server khi còn router chỉ có LDP | Chạy SR-LDP interworking với mapping server, hoặc giữ LDP song song |