Định tuyến phân đoạn (Segment Routing, SR-MPLS · SRv6)
1. Tổng quan
Định tuyến phân đoạn (Segment Routing, SR) là một kiến trúc điều khiển đường đi dựa trên định tuyến nguồn (Source Routing), trong đó nút xuất phát (ingress) của gói tin chèn trực tiếp đường đi tới đích vào tiêu đề gói dưới dạng một danh sách có thứ tự các phân đoạn (Segment), còn các nút trung gian chỉ việc xử lý danh sách đó theo thứ tự. Vì thông tin đường đi nằm trong chính gói tin, nút lõi không cần duy trì trạng thái theo từng luồng (per-flow state). IETF đã chuẩn hóa nó thành RFC 8402 (Segment Routing Architecture), và mặt phẳng dữ liệu được hiện thực theo hai cách: SR-MPLS tái sử dụng nhãn MPLS, và SRv6 dùng tiêu đề mở rộng IPv6.
Bối cảnh ra đời của định tuyến phân đoạn nằm ở sự bùng nổ trạng thái (state explosion) và độ phức tạp vận hành của mặt phẳng điều khiển kỹ thuật lưu lượng (TE) MPLS hiện có. MPLS-TE truyền thống dùng một giao thức báo hiệu riêng là RSVP-TE để thiết lập đường đi tường minh, và với cách này mọi nút trên mọi đường hầm phải lưu và làm mới trạng thái đặt chỗ cho từng LSP. Nếu số đường hầm là N và số nút trên một đường là M, trạng thái mà lõi phải quản lý tăng xấp xỉ N×M, nên khi vận hành hàng chục nghìn đường hầm trên một mạng trục lớn, mặt phẳng điều khiển chịu gánh nặng nghiêm trọng. Hơn nữa phải vận hành song song hai giao thức (LDP và RSVP-TE), và việc hội tụ lại/báo hiệu lại khi sự cố chậm, phát sinh thêm độ phức tạp của việc thiết lập sẵn đường hầm dự phòng để đạt phục hồi 50 ms (FRR).
Ở đây "trạng thái mềm (soft state)" chỉ cách RSVP-TE duy trì việc đặt chỗ đường hầm bằng các thông điệp làm mới (refresh) định kỳ: nếu thông điệp ngắt, việc đặt chỗ hết hiệu lực, nên các nút phải liên tục trao đổi trạng thái. Trên các mạng trục lớn có hàng trăm nút và liên kết, lưu lượng làm mới này cùng bản thân các bảng trạng thái ăn mòn CPU, bộ nhớ của mặt phẳng điều khiển, và việc khôi phục trạng thái bị trì hoãn khi nâng cấp phần mềm hay khởi động lại nút — một điểm yếu vận hành. Định tuyến phân đoạn loại bỏ chính việc duy trì trạng thái định kỳ này bằng cách chuyển thông tin đường đi vào gói tin, đạt được sự đơn giản hóa căn bản.
Bối cảnh thứ hai là yêu cầu tương thích với SDN và tự động hóa mạng. Khi vận hành mạng chuyển sang nền tảng bộ điều khiển trung tâm vào thập niên 2010, nhận thức lan rộng rằng cách tải đường đi vào tiêu đề gói để chuyển tiếp không trạng thái có khả năng mở rộng tốt hơn nhiều so với cách bộ điều khiển tính đường rồi đẩy trạng thái (push state) vào các nút. Định tuyến phân đoạn tập trung trí tuệ đường đi về biên (nút xuất phát) và bộ điều khiển, đồng thời đơn giản hóa lõi, nên kết hợp tự nhiên với điều khiển trung tâm dựa trên PCE (Path Computation Element) và BGP-LS. Bối cảnh thứ ba là sự phổ cập toàn diện của IPv6: SRv6 dùng chính địa chỉ IPv6 làm định danh phân đoạn (SID) mà không cần đóng gói đường hầm riêng, coi mạng như một tài nguyên lập trình được duy nhất.
Có thể ước lượng động cơ này bằng con số cụ thể. Chẳng hạn trong một mạng trục quy mô 100 nút, nếu vận hành các đường hầm TE full-mesh giữa mọi cặp nút thì sinh ra khoảng 10.000 LSP (100×99), và với RSVP-TE mọi nút trung gian mà một LSP đi qua phải làm mới định kỳ trạng thái Path/Resv, nên một nút lõi rốt cuộc duy trì và làm mới hàng nghìn trạng thái mềm. Định tuyến phân đoạn thay thế mạng full-mesh đường hầm này chỉ bằng việc quảng bá khoảng 100 Prefix SID theo từng nút, nên trạng thái theo từng đường hầm mà lõi phải giữ hội tụ về gần như 0. Việc hạ độ phức tạp trạng thái từ O(số đường hầm×số chặng) xuống O(số nút) như vậy là lợi thế toán học lớn nhất của định tuyến phân đoạn.
Các đặc trưng của định tuyến phân đoạn được tóm tắt như sau. Chúng là nền tảng để TE, FRR, VPN và lập trình mạng bàn ở phần sau đều thành lập.
- Lõi không trạng thái (Stateless Core): Vì trạng thái đường đi ở trong gói tin, nút trung gian không lưu trạng thái theo từng đường hầm. Đây là cội nguồn của khả năng mở rộng.
- Tái sử dụng IGP hiện có: Thay vì tạo giao thức mới để phân phối phân đoạn, nó quảng bá SID qua phần mở rộng (TLV) của IS-IS/OSPF. Có thể loại bỏ LDP và RSVP-TE.
- Định tuyến nguồn: Vì nút xuất phát quyết định đường đi, chính sách TE được áp dụng linh hoạt tại một điểm duy nhất là biên.
- Hai mặt phẳng dữ liệu: Có thể chọn SR-MPLS dùng nhãn MPLS (thuận lợi cho chuyển đổi tiệm tiến) hoặc SRv6 dùng tiêu đề IPv6 (thuận lợi cho lập trình mạng và chuỗi dịch vụ).
- Thân thiện ECMP: Prefix SID không ép một đường cụ thể mà theo đường ngắn nhất của IGP, nên tự nhiên tận dụng đa đường cùng chi phí (ECMP) để phân tán tải. Có thể áp dụng chiến lược "chỉ chỉ định vừa đủ" — chỉ ép một đường cụ thể bằng Adjacency SID khi cần.
2. Kiến trúc định tuyến phân đoạn và các khái niệm cốt lõi
Miền định tuyến phân đoạn gồm các nút được nối bằng IGP và một bộ điều khiển (PCE) tính và tiêm đường đi. Khi nút xuất phát chèn danh sách phân đoạn, gói tin được chuyển tiếp theo thứ tự đó, và mỗi phân đoạn được tiêu thụ tại nút điểm cuối (endpoint) của nó. Cấu trúc tổng thể như sau.
graph LR
CTRL["Bộ điều khiển SDN / PCE (tính đường)"] -. "BGP-LS / PCEP" .-> R1
R1["R1 Ingress (push danh sách SID)"] --> R2["R2 (xử lý Node SID)"]
R2 --> R3["R3 (Adjacency SID: ép liên kết cụ thể)"]
R3 --> R4["R4 (xử lý Node SID)"]
R4 --> R5["R5 Egress (pop SID cuối)"]
subgraph SR_Domain["Miền SR (IGP: quảng bá SID qua IS-IS/OSPF)"]
R1
R2
R3
R4
R5
end
A. Phân đoạn (Segment) và SID. Phân đoạn là "một chỉ thị (instruction) mà gói tin phải tuân theo", và giá trị định danh nó là SID (Segment Identifier). Trong SR-MPLS, SID là nhãn MPLS 20 bit; trong SRv6, SID được biểu diễn dưới dạng địa chỉ IPv6 128 bit. Phân đoạn có hai loại lớn. Thứ nhất, Prefix SID (là Node SID khi trỏ tới một nút cụ thể) là chỉ thị toàn cục (global) nghĩa là "hãy đi tới đích đó theo đường ngắn nhất IGP" và là duy nhất trong toàn miền. Thứ hai, Adjacency SID là chỉ thị cục bộ (local) nghĩa là "hãy ra khỏi nút này qua liên kết (lân cận) cụ thể kia", chỉ có ý nghĩa tại một nút nhất định. Kết hợp cả hai cho phép biểu diễn trộn lẫn đường lỏng (loose) và đường chặt (strict) — như "đi theo đường ngắn nhất tới R4, rồi từ R4 bắt buộc qua một liên kết cụ thể tới R5" — nâng khả năng biểu diễn của TE lên rất cao.
B. Danh sách phân đoạn (Segment List) và Active Segment. Nút xuất phát xếp nhiều SID thành một danh sách có thứ tự (ordered list). Gói tin luôn được chuyển tiếp dựa trên phân đoạn hoạt động (Active Segment) ở đỉnh danh sách (hoặc do con trỏ chỉ tới), và khi tới điểm cuối của phân đoạn đó, phân đoạn ấy hoàn tất và phân đoạn kế tiếp được kích hoạt. Trong SR-MPLS nó tiến hành bằng cách pop nhãn đỉnh của ngăn xếp nhãn, còn trong SRv6 nó tiến hành bằng cách giảm con trỏ Segments Left của SRH (Segment Routing Header). Ví dụ nếu danh sách là ⟨R3-Adj, R5-Node⟩, trước tiên nó đi qua một liên kết cụ thể tại R3 một cách bắt buộc rồi đi nốt phần còn lại tới R5 theo đường ngắn nhất.
Nguyên tắc thiết kế quan trọng ở đây là "nút trung gian chỉ xử lý phân đoạn mà nó là điểm cuối, và không nhìn phần còn lại." Nếu R2 không phải điểm cuối của phân đoạn hoạt động, R2 chỉ thực hiện chuyển tiếp theo đường ngắn nhất tới phân đoạn đó (ví dụ R3-SID) mà không diễn giải toàn bộ danh sách. Nhờ tính cục bộ (locality) này, xử lý tại nút lõi được đơn giản hóa, và dù danh sách có dài, gánh nặng trên mỗi nút vẫn giữ không đổi. Đây là lý do cấu trúc khiến định tuyến phân đoạn không mất khả năng mở rộng ở lõi ngay cả trên các đường TE dài.
Lấy ví dụ cụ thể, giả sử ta muốn tránh liên kết trực tiếp R2-R4 đang tắc nghẽn và định tuyến qua R3. Nút xuất phát R1 chỉ cần xếp hai SID toàn cục ⟨Node SID của R3, Node SID của R5⟩. Gói tin trước tiên đi tới R3 theo đường ngắn nhất IGP (R1→R2→R3), và sau khi R3-SID được tiêu thụ tại R3, lại đi tới R5 theo đường ngắn nhất (R3→R4→R5). Kết quả là một đường vòng không dùng liên kết trực tiếp R2-R4 được biểu diễn chỉ bằng hai SID. Nếu muốn ép thêm một liên kết song song cụ thể tại R3, ta chỉ việc chèn Adjacency SID của R3 vào vị trí đó. Việc tự do điều chỉnh độ chi tiết của chính sách TE chỉ bằng tổ hợp SID toàn cục và cục bộ như vậy là cốt lõi khả năng biểu diễn của định tuyến phân đoạn.
C. SRGB và SRLB (khối nhãn). Trong SR-MPLS, Prefix SID được quảng bá không phải dưới dạng giá trị nhãn thực mà dưới dạng chỉ số (index), và mỗi nút tính nhãn thực bằng cách cộng chỉ số vào giá trị bắt đầu của một dải nhãn dành riêng gọi là SRGB (SR Global Block) (ví dụ 16000–23999). Nếu toàn miền dùng cùng một SRGB, các chỉ số SID nhất quán toàn cục và vận hành được đơn giản hóa. Ví dụ nếu SRGB bắt đầu từ 16000 và chỉ số Prefix SID của R5 là 105, mọi nút nhận diện R5 đồng nhất là nhãn 16105, nên người vận hành có thể truy vết nhãn một cách trực quan. Ngược lại nếu SRGB khác nhau theo từng nút thì cùng một đích cũng có nhãn khác nhau theo nút, khiến gỡ lỗi rườm rà, nên trong thực tế một SRGB duy nhất cho toàn miền được khuyến nghị mạnh mẽ. Các giá trị cục bộ như Adjacency SID được cấp phát động từ SRLB (SR Local Block).
D. Mặt phẳng điều khiển — mở rộng IGP và PCE. Định tuyến phân đoạn, không cần giao thức phân phối nhãn riêng (LDP), mở rộng IS-IS/OSPF bằng các TLV/sub-TLV để quảng bá SID nhằm lan truyền Prefix/Adjacency SID của mỗi nút ra toàn miền. Điểm này cực kỳ quan trọng về mặt vận hành: trong khi MPLS hiện có vận hành IGP (tính đường ngắn nhất) và LDP (phân phối nhãn) như hai mặt phẳng điều khiển tách biệt và gặp hố đen khi trạng thái của chúng lệch nhau, thì SR hợp nhất định tuyến và gán nhãn vào một trạng thái IGP duy nhất, loại bỏ sự không nhất quán này về mặt cấu trúc. Khi đường TE phức tạp và tính toán phân tán khó khăn, một PCE/bộ điều khiển đã thu thập cấu trúc mạng qua BGP-LS tính danh sách phân đoạn tối ưu phản ánh ràng buộc (băng thông, độ trễ, affinity) và tiêm vào nút xuất phát qua PCEP dưới dạng một SR-Policy. Nghĩa là trí tuệ điều khiển được đặt ở trung tâm (hoặc biên) còn việc chuyển tiếp ở lõi, một cách tách biệt. Nhờ cấu trúc này, bộ điều khiển có thể thực hiện tối ưu hóa toàn cục khi bao quát toàn bộ cấu trúc mạng, mang lại mức sử dụng tài nguyên cao hơn so với TE phân tán mà mỗi nút chỉ phán đoán bằng thông tin cục bộ.
3. Hoạt động mặt phẳng dữ liệu SR-MPLS và SRv6
Từ góc độ mặt phẳng dữ liệu, hai cách tiếp cận phân nhánh ở chỗ "biểu diễn SID bằng nhãn hay bằng địa chỉ IPv6". Điểm chung là cả hai đều theo cùng các thao tác trừu tượng — push (chèn danh sách), continue (chuyển tiếp theo đường ngắn nhất), next (tiến lên sau khi hoàn tất một phân đoạn) — và khác biệt nằm ở việc hiện thực các thao tác đó bằng số học nhãn MPLS hay bằng số học tiêu đề IPv6. Chuỗi dưới đây cho thấy gói SRv6 được chuyển tiếp và tiêu thụ dọc theo SRH như thế nào.
sequenceDiagram
participant R1 as R1 Ingress
participant R2 as R2 (Endpoint SID-A)
participant R4 as R4 (Endpoint SID-B)
participant R5 as R5 Egress
R1->>R2: "IPv6(DA=SID-A) + SRH[SID-B, SID-A], SL=1"
Note over R2: "DA khớp SID-A của chính nó -> hành vi End, SL 1->0, DA=SID-B"
R2->>R4: "IPv6(DA=SID-B) + SRH, SL=0"
Note over R4: "DA khớp SID-B -> thực hiện hành vi đầu cuối như End.DX6"
R4->>R5: "chuyển tiếp payload gốc (đã gỡ đóng gói)"
A. Chuyển tiếp SR-MPLS. SR-MPLS dùng nguyên phần cứng chuyển tiếp MPLS hiện có. Nút xuất phát push danh sách phân đoạn thành một ngăn xếp nhãn, và mỗi nút nhìn nhãn đỉnh, pop nó (hoặc pop ở chặng áp chót qua PHP) nếu là điểm cuối, ngược lại swap và chuyển tiếp theo đường ngắn nhất. Lợi thế then chốt là loại bỏ LDP và RSVP-TE: phân phối nhãn được tích hợp vào IGP, đơn giản hóa lớn mặt phẳng điều khiển, và có thể đưa vào mạng MPLS hiện có một cách tiệm tiến (incremental). Tuy nhiên danh sách phân đoạn sâu làm ngăn xếp nhãn sâu và có thể chạm giới hạn độ sâu push của một số ASIC đời cũ (ví dụ 5–6 tầng).
Một lợi thế khác của SR-MPLS là cùng tồn tại với các dịch vụ MPLS hiện có (L3VPN, L2VPN, EVPN). Chỉ cần đổi nhãn vận chuyển từ LDP/RSVP-TE sang SR trong khi giữ nguyên nhãn dịch vụ (MP-BGP), nên có thể hiện đại hóa chỉ mặt phẳng điều khiển lõi mà không gián đoạn dịch vụ. Đặc tính "giữ dịch vụ, chỉ đổi vận chuyển" này là lý do quyết định để nhà mạng chọn SR-MPLS làm bước đầu.
B. Chuyển tiếp SRv6 và SRH. SRv6 thêm một SRH (Segment Routing Header, tiêu đề mở rộng định tuyến IPv6 Type 4, RFC 8754) vào gói IPv6 và mang danh sách phân đoạn dưới dạng một mảng các địa chỉ IPv6. Địa chỉ đích (DA) của gói luôn giữ SID hoạt động hiện tại, và khi DA khớp SID cục bộ của nó, nút điểm cuối giảm con trỏ Segments Left (SL) đi một và sao chép SID kế tiếp vào DA để chuyển tiếp. Đổi mới của SRv6 nằm ở cấu trúc SID. Chia SID 128 bit thành Locator (các bit cao định tuyến được) + Function (hành vi nút sẽ thực hiện) + Argument, một địa chỉ chỉ thị không chỉ "đi đâu" mà còn "làm gì".
C. Lập trình mạng (Network Programming, RFC 8986). SRv6 lập trình mạng bằng cách định nghĩa các hành vi (behavior) chuẩn trong trường Function. Tiêu biểu có End (tiến tới SID kế tiếp), End.X (nối chéo L3 tới một lân cận cụ thể), End.DT4/DT6 (tra bảng VPN rồi gỡ đóng gói), và End.DX2 (nối chéo L2). Điều này cho phép biểu diễn VPN, chuỗi dịch vụ và TE bằng một danh sách SID duy nhất mà không cần giao thức riêng. Ví dụ xâu chuỗi "tường lửa (SID1) → DPI (SID2) → VPN đích (SID3)" thành một danh sách sẽ tạo ra chuỗi hàm dịch vụ (SFC) ngay lập tức. So với việc MPLS hiện có phải lắp ráp L3VPN/L2VPN/TE/FRR bằng các mặt phẳng điều khiển riêng biệt (MP-BGP, RSVP-TE, LDP), SRv6 quy mọi dịch vụ này về một ngữ nghĩa SID hợp nhất, một khác biệt về chất. Đây là sự chuyển hướng quan điểm coi mạng như "một máy tính phân tán thực thi các lệnh được tải trong gói", và là căn cứ để định nghĩa SRv6 không phải công nghệ chuyển tiếp đơn thuần mà là nền tảng của mạng lập trình được.
D. Tái định tuyến nhanh TI-LFA. Định tuyến phân đoạn cung cấp TI-LFA (Topology-Independent Loop-Free Alternate) cho phục hồi sự cố. Mỗi nút tính trước đường dự phòng cho sự cố dưới dạng một danh sách phân đoạn, và khi phát hiện sự cố liên kết hay nút, nó lập tức push các phân đoạn dự phòng để đi vòng trong 50 ms. LFA cổ điển có "hố phủ sóng (coverage hole)" nơi, tùy cấu trúc mạng, không tồn tại đường thay thế không vòng lặp, nhưng TI-LFA ép đường ngắn nhất sau hội tụ (post-convergence path) dưới dạng phân đoạn, bảo đảm phủ 100% không vòng lặp trên mọi cấu trúc mạng. Khác với RSVP-TE FRR, không cần báo hiệu trước và giữ đường hầm dự phòng như một trạng thái, nên đạt cùng mức bảo vệ mà không gánh nặng trạng thái lõi — một khác biệt quyết định.
E. Chọn giữa SR-MPLS và SRv6. Hai mặt phẳng dữ liệu được chọn theo mục đích chứ không theo hơn kém. SR-MPLS tái sử dụng chip chuyển tiếp MPLS hiện có và bí quyết vận hành, nên thuận lợi cho bảo vệ đầu tư và chuyển đổi tiệm tiến, nhưng việc định danh dịch vụ vẫn phụ thuộc vào ngăn xếp nhãn và điều khiển riêng. Trong khi đó SRv6, vốn thuần IPv6, hợp nhất lập trình mạng, SFC và VPN vào một SID duy nhất mà không cần đóng gói đường hầm, nhưng cần tiền đề là phí tổn tiêu đề và phổ cập IPv6 toàn diện. Bảng sau so sánh các điểm thiết kế của hai cách.
| Hạng mục | SR-MPLS | SRv6 |
|---|---|---|
| Biểu diễn SID | nhãn MPLS 20 bit | địa chỉ IPv6 128 bit (Locator+Function+Arg) |
| Mặt phẳng dữ liệu | tái dùng chuyển tiếp MPLS hiện có | IPv6 + tiêu đề mở rộng SRH |
| Phí tổn | nhỏ (nhãn 4 byte) | lớn (16 byte mỗi SID, giảm nhờ uSID) |
| Biểu diễn dịch vụ | ngăn xếp nhãn + điều khiển riêng | VPN/SFC thuần qua Function |
| Dễ chuyển đổi | cao (đưa dần vào MPLS hiện có) | tiền đề phổ cập IPv6 và thay phần cứng |
| Ứng dụng chính | hiện đại hóa TE mạng trục nhà mạng | 5G, cloud native, SFC |
F. Binding SID và SR-Policy. Khi danh sách phân đoạn dài ra, gánh nặng push ở nút biên và phí tổn tiêu đề tăng lên. Cơ chế giảm nhẹ điều này là Binding SID (BSID), ràng buộc một SID để đại diện cho "một danh sách phân đoạn (hoặc SR-Policy) đã định nghĩa trước khác". Nút xuất phát chỉ push một BSID thay cho đường dài, và nút neo của BSID khai triển danh sách thực ở bên trong. Điều này cho phép phân cấp (hierarchy) và mô-đun hóa đường đi, nên có thể trừu tượng hóa đường chi tiết của mỗi miền bằng BSID tại ranh giới liên miền, hoặc để bộ điều khiển thay chính sách theo từng BSID nhằm thực hiện thay đổi đường không gián đoạn. Trong thực tế, một thiết kế tiêu biểu là xâu đường đầu-cuối của mạng trục đa miền (access-aggregation-core) bằng các BSID.
4. So sánh các tính năng chính — so với MPLS-TE
Khác biệt giữa định tuyến phân đoạn và MPLS truyền thống (LDP+RSVP-TE) không phải chỉ là thay giao thức mà bắt nguồn từ khác biệt triết lý thiết kế về đặt trạng thái ở đâu. RSVP-TE lưu trạng thái đường đi phân tán khắp lõi, nên trạng thái bùng nổ tỉ lệ với số đường hầm và hội tụ lại chậm, trong khi SR chuyển trạng thái vào gói tin và biên để làm lõi không trạng thái. Khác biệt này dẫn tới khoảng cách về khả năng mở rộng, khả năng vận hành và độ phù hợp tự động hóa.
| Hạng mục | MPLS LDP+RSVP-TE | Segment Routing (SR-MPLS/SRv6) |
|---|---|---|
| Trạng thái đường | lưu trạng thái theo từng đường hầm tại mỗi nút lõi | đường trong tiêu đề gói, lõi không trạng thái |
| Phân phối nhãn/SID | giao thức riêng LDP, RSVP-TE | tích hợp qua mở rộng IGP (IS-IS/OSPF) |
| Phương thức TE | báo hiệu tường minh RSVP-TE | định tuyến nguồn bằng danh sách SID + PCE |
| Phục hồi sự cố | FRR (cần đường hầm dự phòng có trạng thái sẵn) | TI-LFA (phủ 100% không trạng thái) |
| Phù hợp SDN | thấp (trạng thái phân tán) | cao (tính toán trung tâm, chuyển tiếp không trạng thái) |
| VPN/SFC | ngăn xếp nhãn + điều khiển riêng | biểu diễn thuần qua SRv6 Function |
Khác biệt này cũng thể hiện ở tốc độ hội tụ sự cố. Khi một đường bị đứt, RSVP-TE đòi hỏi head-end dựng đường hầm mới qua báo hiệu lại, nên hội tụ chậm trên mạng lớn và trạng thái có thể không nhất quán trong lúc đó, trong khi với SR, một khi IGP hội tụ lại thì mỗi nút tự động chuyển sang đường ngắn nhất mới và ý nghĩa Prefix SID được bảo toàn, nên không cần báo hiệu lại riêng. Ngoài ra, khi khai mở dịch vụ mới, RSVP-TE phải cấp phát đường hầm trên mọi nút dọc đường, nhưng SR chỉ cần chỉ định danh sách SID tại biên, nên điểm chạm cấp phát thu hẹp về một điểm duy nhất là biên. Điều này dẫn tới hiệu quả thực là hạ chi phí vận hành (OPEX) và thời gian khai mở.
Nhìn phí tổn bằng con số, trong SRv6 một đường ba phân đoạn thêm 56 byte tiêu đề phụ — SRH cơ bản 8 byte cộng 3×16 byte SID. Trong môi trường MTU 1.500 byte, đây là khoảng 3,7% phí tổn băng thông và là kích thước có thể gây phân mảnh trong các trường hợp biên. Ngược lại, dùng uSID 16 bit cho phép chứa cùng ba chặng trong một địa chỉ 128 bit, biểu diễn mà không cần SRH phụ, nên phí tổn giảm mạnh. Vì vậy các thiết kế mạng trục SRv6 mới thường mặc định dùng uSID trên tiền đề khung jumbo (9.000 byte).
Trong thực tế, các nhà mạng lớn và mạng trục đám mây đang chuyển sang SR vì gánh nặng trạng thái của RSVP-TE. Ví dụ có báo cáo về các nhà cung cấp nội dung/viễn thông toàn cầu thay hàng chục nghìn đường hầm TE bằng SR-Policy để giảm mạnh trạng thái mặt phẳng điều khiển. Tuy nhiên SRv6 chịu phí tổn gói lớn hơn do SRH (16 byte mỗi SID). Với ba phân đoạn, SRH vượt 40 byte, gây vấn đề MTU/phân mảnh, nên cần một thiết kế nâng MTU mạng trục trên 1.500 byte (khung jumbo) hoặc nén bằng uSID bàn ở phần sau. Hiểu được sự đánh đổi giữa lợi ích "giảm trạng thái" và chi phí "phí tổn tiêu đề" là mấu chốt.
5. Chuyên sâu — Xu hướng mới nhất và sự tiến hóa của chuẩn
Định tuyến phân đoạn là lĩnh vực mà việc chuẩn hóa và triển khai thương mại đang tiến triển sôi động, và từ góc độ Kỹ sư chuyên nghiệp cần chú ý các dòng chảy sau.
A. Vượt phí tổn bằng SRv6 uSID (micro-SID). Điểm yếu lớn nhất của SRv6 là SID 128 bit dài, nên tiêu đề phình to nhanh khi phân đoạn tăng. Để giảm điều này, kỹ thuật uSID (micro-segment) đã xuất hiện. Nhiều micro-SID 16 bit hoặc 32 bit được xếp như một container bên trong một địa chỉ IPv6 128 bit, nên một địa chỉ biểu diễn nhiều chặng. Ví dụ với uSID 16 bit, một địa chỉ có thể chứa tới sáu phân đoạn, biểu diễn đường dài mà không cần SRH (hoặc với SRH ngắn), nên vấn đề phí tổn/MTU được giảm nhẹ nhiều và tương thích với phần cứng đời cũ cũng tốt hơn. Khi nhiều nhà cung cấp hỗ trợ uSID trên card thương mại, rào cản thực tế cho việc áp dụng SRv6 đã hạ xuống.
B. Khung chuẩn. Kiến trúc được ổn định bằng RFC 8402 (2018), SRH của SRv6 bằng RFC 8754 (2020), và SRv6 Network Programming bằng RFC 8986 (2021), còn mô hình chính sách TE được thiết lập bằng SR Policy (RFC 9256). uSID, G-SRv6 và tương tự vẫn ở giai đoạn dự thảo của IETF và tiếp tục tiến hóa, nên mô tả chúng là "đang chuẩn hóa" sẽ an toàn hơn là khẳng định. Tích hợp bộ điều khiển qua mở rộng BGP-LS/PCEP cũng đã được chuẩn hóa.
C. Mở rộng vào trung tâm dữ liệu và máy chủ. Định tuyến phân đoạn vốn khởi đầu như công nghệ mạng trục nhà mạng, nhưng gần đây đang mở rộng vào cấu trúc trung tâm dữ liệu (leaf-spine) và máy chủ (nhân Linux). Nhân Linux hỗ trợ thuần encap và các hành vi End của SRv6, cho phép mạng ở máy chủ (host networking) trong đó container/VM trực tiếp tham gia các đường SRv6. Điều này hiện thực một cấu hình thực thi chính sách đầu-cuối trên một mặt phẳng SRv6 duy nhất từ NIC máy chủ tới mạng trục, và kết hợp với mặt phẳng dữ liệu dựa trên eBPF và CNI, tạo thành một trụ cột của mạng cloud native.
D. Liên kết với đề thi cũ và chủ đề tương tự. Định tuyến phân đoạn là chủ đề hợp để xuất hiện trong kỳ thi Kỹ sư chuyên nghiệp khi gộp với MPLS, SDN, phân mảnh mạng (network slicing), IPv6 và kỹ thuật lưu lượng. Đặc biệt "giới hạn của MPLS và sự ra đời của SR", "so sánh SR-MPLS và SRv6", "lập trình mạng SRv6 và SFC", "TI-LFA so với RSVP-TE FRR" dễ biến tấu thành các câu hỏi so sánh/giải thích. Khi dựng bài trả lời, nên luôn lấy góc độ độ phức tạp trạng thái (làm lõi không trạng thái) làm trục trung tâm, rồi thêm tiêu chí chọn SR-MPLS/SRv6 và các công nghệ bổ trợ mới nhất như uSID để triển khai sâu.
6. Điểm cần cân nhắc và hàm ý
Vì việc áp dụng định tuyến phân đoạn không phải chỉ là thay giao thức mà là sự chuyển đổi mô hình vận hành mạng trục, từ góc độ Kỹ sư chuyên nghiệp cần cân nhắc các điểm sau một cách tổng hợp.
- Chiến lược áp dụng (chuyển đổi tiệm tiến): Nhà mạng có tài sản MPLS hiện hữu lớn nên chuyển sang SR-MPLS trước, vốn dùng nguyên phần cứng, để bỏ LDP/RSVP-TE, rồi chuyển dần sang SRv6 (uSID) khi phổ cập IPv6 toàn diện và nhu cầu lập trình mạng chín muồi — một lộ trình hai giai đoạn thực tế. Điều này phân tán rủi ro va phải ràng buộc phần cứng/MTU nếu cố đi thẳng tới SRv6.
- Đánh đổi (trạng thái và phí tổn): SR loại bỏ trạng thái lõi với cái giá là phí tổn tiêu đề gói (nhất là SRv6). Phải thiết kế và kiểm chứng trước độ dài danh sách phân đoạn, chính sách MTU, nén uSID, và giới hạn xử lý push/SID của ASIC. Dùng mẫu hình lưu lượng để phán đoán đây có phải vùng mà lợi ích "không trạng thái" vượt chi phí tiêu đề hay không.
- Vận hành và bảo mật: Vì định tuyến nguồn cho phép nút xuất phát chỉ định đường, phải lọc SRH của gói ngoại lai tại ranh giới miền (niêm phong miền SR) để ngăn tấn công thao túng đường/đi vòng. Ngoài ra vì SID là địa chỉ định tuyến được, hoạch định địa chỉ (thiết kế Locator) và kiểm soát truy cập trở thành cốt lõi của bảo mật.
- Tương tác và đa nhà cung cấp: SR dựa trên mở rộng IGP chuẩn nên khả năng tương tác đa nhà cung cấp tương đối tốt, nhưng tập Function của SRv6 và định dạng uSID có thể khác nhau ở chi tiết theo nhà cung cấp/dự thảo. Trước khi áp dụng quy mô lớn, nên tiến hành thử nghiệm tương tác định dạng SID/hành vi giữa các nhà cung cấp (PoC) và tiếp cận thận trọng, phân biệt tính năng đã chuẩn hóa với tính năng dự thảo khi lựa chọn.
- Triển vọng và công nghệ liên kết: SR tiến hóa hướng tối ưu đường tự động dựa trên ý định (intent-based) khi kết hợp với bộ điều khiển SDN (PCE), BGP-LS và telemetry. Thiết kế kiến trúc phải tính tới liên kết với phân mảnh 5G, SFC đám mây và underlay SD-WAN, và trong trung-dài hạn nhiều khả năng trở thành chuẩn trên thực tế cho TE mạng trục. Tổ chức nên chủ động bảo đảm hệ địa chỉ IPv6 và năng lực vận hành (công cụ tự động hóa, khả năng quan sát).
Tổng hợp lại, định tuyến phân đoạn là một kiến trúc trả lời câu hỏi "đặt trạng thái ở đâu" bằng "trong gói tin và ở biên", và ý tưởng đơn giản này đồng thời nâng cao khả năng mở rộng, khả năng vận hành và độ phù hợp tự động hóa. Khi tư vấn thiết kế với tư cách Kỹ sư chuyên nghiệp, nên tổng hợp tài sản hiện hữu, độ chín IPv6 và yêu cầu dịch vụ (SFC, slicing) để đề xuất tổ hợp SR-MPLS và SRv6 phù hợp, đồng thời khuyến nghị các thiết kế bổ trợ như uSID, khả năng quan sát và niêm phong bảo mật.
Tài liệu tham khảo
- RFC 8402, Segment Routing Architecture, IETF, https://www.rfc-editor.org/rfc/rfc8402
- RFC 8754, IPv6 Segment Routing Header (SRH), IETF, https://www.rfc-editor.org/rfc/rfc8754
- RFC 8986, SRv6 Network Programming, IETF, https://www.rfc-editor.org/rfc/rfc8986
- RFC 9256, Segment Routing Policy Architecture, IETF, https://www.rfc-editor.org/rfc/rfc9256
Tóm tắt một câu: Định tuyến phân đoạn là kiến trúc định tuyến nguồn tải đường đi dưới dạng danh sách SID vào gói tin để làm lõi không trạng thái; được hiện thực bằng SR-MPLS (chuyển đổi tiệm tiến) và SRv6 (IPv6, lập trình mạng), nó hóa giải sự bùng nổ trạng thái của MPLS-TE thông qua tích hợp IGP, TI-LFA và uSID, và đang tiến hóa thành nền tảng vận chuyển cho phân mảnh 5G, SFC và tự động hóa SDN.