Message Length : Chiều dài của các trường sau Message Length tính theo octet (gồm Message ID, các tham số bắt buộc và tùy chọn). Message ID đôi khi được dùng để liên kết một số bản tin với các bản tin khác, ví dụ một bản tin đáp ứng sẽ có cùng Message ID với bản tin yêu cầu tương ứng. Các tham số bắt buộc và tùy chọn phụ thuộc vào các loại bản tin được gởi, chúng thường dùng kiểu mã hóa TLV (Type-Length-Value) . Nói chung, mọi thứ xuất hiện trong một thông điệp LDP có thể được mã hóa kiểu TLV, tuy nhiên đặc tả LDP không phải lúc nào cũng sử dụng lược đồ TLV.
2.3.3 Các bản tin LDP [1]
- Hello : Được trao đổi trong suốt quá trình hoạt động LDP như trình bày ở trên.
- Initialization : Được gửi khi bắt đầu một phiên LDP giữa 2 LSR để trao đổi các tham số, các tùy chọn cho phiên. Các tham số này bao gồm:
Chế độ phân bổ nhãn.
Các giá trị bộ định thời.
Phạm vi các nhãn sử dụng trong kênh giữa 2 LSR đó.
Cả 2 LSR đều có thể gửi các bản tin Initialization và LSR nhận sẽ trả lời bằng KeepAlive nếu các tham số được chấp nhận. Nếu có một tham số nào đó không được chấp nhận thì LSR trả lời thông báo có lỗi và phiên kết thúc. - KeepAlive : Được gửi định kỳ khi không còn bản tin nào cần gửi để đảm bảo cho mỗi thành phần LDP biết rằng thành phần LDP khác đang hoạt động tốt. Trường hợp không xuất hiện bản tin KeepAlive hay một số bản tin LDP khác trong khoảng thời gian nhất định thì LSR sẽ xác định đối tác LDP hỏng hoặc kết nối có sự cố và phiên LDP chấm dứt.
- Label Mapping : Được sử dụng để quảng bá gán kết giữa FEC và nhãn. - Label Withdrawal : Thực hiện quá trình ngược lại với bản tin Label Mapping.
Nó được sử dụng để xóa bỏ gán kết đã thực hiện trong Label Mapping. Bản tin này được sử dụng trong trường hợp :
Khi có sự thay đổi trong bảng định tuyến (thay đổi prefix địa chỉ), lúc đó LSR không còn nhận ra FEC này nữa.
Thay đổi trong cấu hình LSR làm tạm dừng việc chuyển nhãn các gói trong FEC đó.
- Label Release : Được sử dụng bởi LSR khi nhận được chuyển đổi nhãn mà nó không cần thiết nữa. Điều đó thường xảy ra khi LSR giải phóng nhận thấy nút tiếp theo cho FEC không phải là LSR quảng bá liên kết nhãn/FEC đó. - Label Request : Sử dụng trong chế độ hoạt động gán nhãn theo yêu cầu, LSR sẽ yêu cầu gán nhãn từ LSR kế cận phía downstream bằng bản tin này.
- Label Request Abort : Nếu bản tin Label Request cần phải hủy bỏ trước khi được chấp nhận (do nút kế tiếp trong FEC yêu cầu đã thay đổi), thì LSR yêu cầu sẽ loại bỏ yêu cầu trước đó bằng bản tin Label Request Abort.
2.3.4 LDP điều khiển độc lập và phân phối theo yêu cầu
Ví dụ dưới đây minh họa việc sử dụng bản tin Label Request và Label Mapping trong chế độ công bố nhãn theo yêu cầu và điều khiển LSP độc lập. Trình tự thời gian trao đổi các bản tin LDP giữa các đối tác (peer) thiết lập một LSP từ router lối vào R1 qua R2 rồi đến router lối ra R3 cho một FEC có prefix “a.b/16” . R1 khởi tạo tiến trình bằng cách yêu cầu một nhãn cho FEC “a.b/16” từ chặng kế của nó là R2. Vì sử dụng điều khiển độc lập nên R2 trả ngay một ánh xạ nhãn về cho R1 trước khi R2 nhậnđược ánh xạ nhãn từ phía downstream là R3. Cả R2 và R3 đáp ứng bằng bản tin Label Mapping, kết quả là trong FIB của R1 và LFIB của R2, R3 có các entry gán kết nhãn hình thành nên đường chuyển mạch nhãn LSP[1].
Hình 31: Ví dụ LDP chế độ điều khiển độc lập theo yêu cầu
LDP còn hỗ trợ các chế độ phân phối nhãn khác. Khi cấu hình ở chế độ công bố không cần yêu cầu (downstream unsolicited), các router sẽ không dùng
bản tin Label Request. Nếu điều khiển tuần tự (ordered control) được cấu hình trên mỗi giao diện, các yêu cầu nhãn sẽ làm cho các bản tin Label Mapping được trả về theo thứ tự từ R3 đến R2, rồi mới từ R2 về R1. Tổng quát, trong chế độ phân phối theo yêu cầu điều khiển tuần tự, ánh xạ nhãn diễn ra đầu tiên ở router lối ra, rồi sau đó lần lượt ngược về đến router lối vào.
2.4 Giao thức CR-LDP (Constrain-based routing LDP)
CR-LDP là giao thức mở rộng từ LDP (RFC 3212) nhằm hỗ trợ đặc biệt cho định tuyến ràng buộc, kỹ thuật lưu lượng (TE) và các hoạt động dự trữ tài nguyên. Các khả năng của CR-LDP tùy chọn bao gồm thương lượng các tham số lưu lượng như cấp phát băng thông, thiết lập và cầm giữ quyền ưu tiên.
2.4.1 Mở rộng cho định tuyến ràng buộc
CR-LDP bổ sung thêm các đối tượng Type-Length-Value mới sau đây (RFC 3212):
Tuyến tường minh ER (Explicit Route)
Chặng tường minh ER-Hop (Explicit Route Hop)
Các tham số lưu lượng
Sự lấn chiếm (Preemptions)
Nhận diện LSP (LSPID)
Ghim tuyến (Route Pinning)
Lớp tài nguyên (Resource Class)
CR-LSP FEC
Một số thủ tục mới cũng được bổ sung để hỗ trợ các chức năng cần thiết như:
Báo hiệu đường (Path signalling)
Định nghĩa các tham số lưu lượng
Quản lý LSP (quyền ưu tiên, cam kết quản trị, v.v)
CR-LDP sử dụng cơ chế gán nhãn theo yêu cầu và điều khiển tuần tự. Một LSP được thiết lập khi một chuỗi các bản tin Label Request lan truyền từ ingress-LSR đến egress-LSR, và nếu đường được yêu cầu thỏa mãn các ràng buộc (ví dụ đủ băng thông khả dụng), thì các nhãn mới được cấp phát và phân phối bởi một chuỗi các bản tin Label Mapping lan truyền ngược về ingress-
LSR. Việc thiết lập một CR-LSP có thể thất bại vì nhiều lý do khác nhau và các lỗi sẽ được báo hiệu bằng bản tin Notification[3].
2.4.2 Thiết lập một CR-LSP (Constrain-based routing LSP)
Để thiết lập một LSP theo một con đường định trước, CR-LDP sử dụng đối tượng tuyến tường minh ER (Explicit Route). ER được chứa trong các bản tin LABEL.
Hình 32: Thiết lập LSP với CR-LDP
Xét ví dụ trong hình 32. Giả sử LSR A muốn thiết lập một con đường tường minh là B-C-D. Để thực hiện việc này, LSR A xây dựng đối tượng ER chứa tuần tự 3 nút trừu tượng là LSR B, LSR C, LSR D. Mỗi nút được đại diện bằng một địa chỉ IP prefix. LSR A sau đó xây dựng một bản tin Label Request có chứa đối tượng ER mới tạo. Khi bản tin được tạo xong, LSR A sẽ xem xét nút trừu tượng đầu tiên trong đối tượng ER là LSR B, tìm kết nối đến LSR B và gởi bản tin Label Request trên kết nối đó. Khi LSR B nhận bản tin Label Request, LSR B nhận thấy nó là nút trừu tượng đầu tiên trong đối tượng ER. LSR B sau đó tìm kiếm nút trừu tượng kế tiếp là LSR C và tìm kết nối đến LSR C. Sau đó LSR B thay đổi đối tượng ER và gởi bản tin Label
Xét ví dụ trong hình 32. Giả sử LSR A muốn thiết lập một con đường tường minh là B-C-D. Để thực hiện việc này, LSR A xây dựng đối tượng ER chứa tuần tự 3 nút trừu tượng là LSR B, LSR C, LSR D. Mỗi nút được đại diện bằng một địa chỉ IP prefix. LSR A sau đó xây dựng một bản tin Label Request có chứa đối tượng ER mới tạo. Khi bản tin được tạo xong, LSR
A sẽ xem xét nút trừu tượng đầu tiên trong đối tượng ER là LSR B, tìm kết nối đến LSR B và gởi bản tin Label Request trên kết nối đó. Khi LSR B nhận bản tin Label Request, LSR B nhận thấy nó là nút trừu tượng đầu tiên trong đối tượng ER. LSR B sau đó tìm kiếm nút trừu tượng kế tiếp là LSR C và tìm kết nối đến LSR C. Sau đó LSR B thay đổi đối tượng ER và gởi bản tin Label
2.4.3 Tiến trình dự trữ tài nguyên
Hình 33: Tiến trình dự trữ tài nguyên
Tiến trình dự trữ tài nguyên như trong hình trên. Khi một nút CD-LDP nhận được một bản tin Label Request, nó gọi Admission Control để kiểm tra xem nút này có các tài nguyên được yêu cầu không. Nếu có đủ tài nguyên khả dụng, Admission Control dự trữ nó bằng cách cập nhật bảng Resource. Sau đó bản tin Label Request được chuyển tiếp đến nút MPLS kề sau.
Khi nút CR-LDP nhận bản tin Label Mapping, nó lưu thông tin nhãn và giao diện vào bảng LIB, lưu thông tin CR-LSP được yêu cầu vào bảng cơ sở thông tin tuyến tường minh ERB (Explicit Route information Base). Rồi nó gọi Resource Manager để tạo một hàng đợi phục vụ cho CR-LSP được yêu
cầu, và lưu ServiceID của nó vào bảng ERB. Cuối cùng, nó chuyển tiếp bản tin LSP Mapping tới nút MPLS kề trước.
2.5 Giao thức RSVP-TE (RSVP Traffic Engineering) [3]
RSVP có một số cơ chế cần thiết để thực hiện báo hiệu phân phối nhãn nhằm ràng buộc định tuyến. IETF đã chuẩn hóa phần mở rộng kỹ thuật lưu lượng RSVP-TE, định nghĩa các ứng dụng của RSVP-TE như hỗ trợ phân phối nhãn theo yêu cầu để cấp phát tài nguyên cho các LSP định tuyến tường minh. Tổng kết cách dùng RSVP-TE để hỗ trợ tái định tuyến “make-before- break”, theo dõi đường thực sự được chọn qua chức năng ghi tuyến cũng như hỗ trợ ưu tiên và lấn chiếm.
Nguyên lý chức năng của RSVP là thiết lập các dự trữ cho luồng gói đơn hướng. Các bản tin RSVP thường đi theo con đường hop-by-hop của định tuyến IP nếu không hiện diện tùy chọn tuyến tường minh (explicit route). Các router hiểu RSVP dọc theo đường có thể chặn và xử lý bất cứ bản tin nào. RFC 2205 định nghĩa 3 kiểu bản tin RSVP: thiết lập dự trữ (reservation setup), tear down, và error. RSVP-TE cũng định nghĩa thêm bản tin Hello.
2.5.1 Các bản tin thiết lập dự trữ RSVP [1]
RSVP sử dụng khái niệm dự trữ ở đầu nhận. Trước tiên đầu gửi phát ra một bản tin PATH nhận diện một luồng và các đặc tính lưu lượng của nó. Bản tin PATH chứa một session-ID, sender-template, label-request, sender-Tspec và tùy chọn là đối tượng tuyến tường minh ERO (explicit route object). Session-ID chứa một địa chỉ IP đích đi kèm một nhận dạng hầm 16 bit (tunnel ID) để nhận diện một đường hầm LSP. Như đã trình bày ở chương trước, chỉ có LSP lối vào mới cần biết về FEC được gán vào một đường hầm LSP. Do đó, không giống như LDP, FEC ánh xạ vào đường hầm LSP không bao gồm trong bất kỳ bản tin RVSP nào. Đối tượng label-request hỗ trợ chế độ công bố nhãn theo yêu cầu. Sender-template chứa địa chỉ IP của đầu gởi đi kèm với một LSP ID có hỗ trợ phương thức “make-before-break” khi thay đổi đường đi của một đường hầm LSP. Đặc tính lưu lượng Tspec sử dụng tốc độ đỉnh
(peak rate), thùng thẻ (token bucket) để định nghĩa tốc độ và kích cỡ bùng phát, đơn vị khống chế tối thiểu (minimum policed unit) và kích thước gói tối đa.
Khi bản tin PATH đi đến đích, bên nhận đáp ứng bằng một bản tin RESV nếu nó đồng ý khởi tạo việc gán kết nhãn được yêu cầu trong bản tin PATH. Bản tin RESV được truyền về theo đường ngược chiều với bản tin PATH bằng cách dùng thông tin chặng kề trước trong bản tin PATH. RESV cũng chứa cùng session-ID như ở bản tin PATH tương ứng, đối tượng ghi tuyến tùy chọn (route record) và thông tin lệ thuộc kiểu dự trữ (reservation style). Kiểu FF (fixed filter) có một nhãn và Tspec được ấn định cho mỗi cặp sender-receiver. Kiểu SE (shared explicit) ấn định một nhãn khác nhau cho mỗi sender, nhưng tất cả chúng phải áp dụng cùng một dự trữ luồng rõ ràng. Đối tượng record-route ghi nhận tuyến đường thực tế được chọn bởi LSP bắt đầu từ egress dẫn ngược về ingress. Nó có thể được một router dùng để ghim một tuyến tường minh thả lỏng bằng cách copy tuyến ghi được trong bản tin RESV sang đối tượng tuyến tường minh ERO trong một bản tin PATH được gửi theo chiều ngược lại.
2.5.2 Các bản Tear Down, Error và Hello của RSVP-TE [1]
RSVP-TE định nghĩa 2 bản tin dành cho việc giải tỏa LSP là PATH TEAR và RESV TEAR. Hai bản tin này được gửi theo chiều ngược với bản tin PATH và RESV tương ứng. Bản tin TEAR xóa bỏ bất kỳ trạng thái đã cài đặt liên quan đến bản tin PATH hay RESV. Các bản tin TEAR cũng có thể dùng để xóa các trạng thái đáp ứng cho một lỗi ở bước đầu tiên trong hoạt động tái định tuyến.
Có các bản tin thông báo lỗi cho bản tin PATH và RESV cũng như bản tin RESV CONFIRMATION tùy chọn. Các bản tin lỗi cho biết có sự vi phạm chính sách, mã hóa bản tin hoặc một số sự cố khác. Ví dụ, khi một LSP thấy rằng nó không thể hỗ trợ Tspec đặc tả trong một bản tin RESV, nó sẽ không chuyển tiếp bản tin RESV về cho phía upstream, thay vào đó nó tạo ra một bản tin RESVERR gửi cho phía downstream để xóa bỏ nỗ lực thiết lập LSP. Tuyến tường minh và các tùy chọn record-route của RSVP-TE có một số các mã lỗi để phục vụ cho việc debug. RFC 3209 định nghĩa bản tin Hello tùy
chọn cho RSVP-TE, nó cho phép một LSR phát hiện một neighbor bị lỗi nhanh hơn khi so với RSVP làm tươi tình trạng hoặc phát hiện lỗi đường truyền bằng một giao thức định tuyến IP. Điều này khá hữu ích trong việc tái định tuyến nhanh.
2.5.3 Thiết lập tuyến tƣờng minh điều khiển tuần tự theo yêu cầu
Hình 34 ví dụ việc trao đổi bản tin RSVP-TE sử dụng đối tượng tuyến tường minh ERO (explicit route object) để cài đặt một LSP đi qua một con đường không phải là đường ngắn nhất. Router R1 xác định rằng nó sẽ ấn định FEC “a.b/16” cho một đường hầm LSP, và nó tính ra một tuyến tường minh R4-R5-R3 để đi đến chặng kế cho FEC đó. R1 khởi tạo việc thiết lập LSP này bằng cách phát ra một bản tin PATH đến R4 với một ERO, Tspec, sender template (có chứa địa chỉ của sender) và một đối tượng label request. Mỗi bản tin RESV liên quan đến đường hầm LSP này đều mang session-ID và filter-spec nguyên thủy của sender R1 để giữ mối tương quan với nhau. Tiếp theo, R4 tiếp nhận yêu cầu này và gửi bản tin PATH đến router kế tiếp ghi trong ERO là R5. Đến lượt mình, R5 gửi bản tin này đến egress-router R3. Tại đích đến của bản tin PATH, R3 xác định rằng liên kết chặng R3-R5 có thể hỗ trợ cho yêu cầu và đó là chặng cuối cùng trên đường dẫn cho FEC “a.b/16”. R3 đáp ứng bằng bản tin RESV có chứa ERO, Tspec của dung lượng dự trữ, một filter spec thỏa mãn bên gửi, và gán một nhãn null ngầm (implicit null) cho chặng liên kết này. Theo RFC 3031, nhãn null là một quy ước được dùng trong phân phối nhãn cho phép egress-router (ở đây là R3) báo hiệu cho đối tác upstream của nó biết rằng đây là chặng áp cuối (penultimate hop) của LSP, do vậy cần gỡ nhãn đỉnh của stack (xem LFIB của LSR R5). Tiếp theo, R5 thu nạp bản tin RESV yêu cầu cho chặng R5-R4, ấn định nhãn B và gởi bản tin RESV đến router kề trước trong ERO là R4. Cuối cùng, R4 chấp nhận yêu cầu, ấn định nhãn A và gởi bản tin RESV ngược về R1. Đến lúc này, đường LSP được thiết lập xong và các gói có nhãn cho FEC “a.b/16” được chuyển tiếp qua đường hầm[6].
Hình 34: Thiết lập LSP với RSVP-TE
Khác với giao thức LDP, các bản tin RSVP-TE không mang FEC, vì chỉ duy nhất có R1 cần biết về ánh xạ giữa FEC và đường hầm LSP.
2.5.4 Giảm lƣợng overhead làm tƣơi RSVP
RSVP là giao thức trạng thái mềm (soft-state), tiến trình phát một bản tin PATH và bản tin RESV hồi đáp tương ứng phải được định kỳ làm tươi, thường khoảng 30s một lần. Phương pháp làm tươi này đề phòng các bản tin bị mất và trong trường hợp định tuyến từng chặng sẽ tự động chuyển dự trữ tài nguyên sang đường mới khi có bất kỳ thay đổi định tuyến IP. Tất nhiên, việc