2.3 Giao thức phân phối nhãn LDP (Label Distribution Protocol) Protocol)
LDP được chuẩn hóa trong RFC 3036, nó được thiết kế để thiết lập và duy trì các LSP định tuyến không ràng buộc (unconstraint routing). Vùng hoạt động của LDP có thể là giữa các LSR láng giềng (neighbor) trực tiếp hoặc gián tiếp[1].
Hình 27: Vùng hoạt động của LDP
2.3.1 Hoạt động của LDP
LDP có 4 chức năng chính là phát hiện LSR láng giềng (Neighbor discovery), thiết lập và duy trì phiên, quảng bá nhãn (label advertisement) và thông báo (Notification).Tương ứng với các chức năng trên, có 4 lớp thông điệp LDP sau đây[1]:
Discovery: Để trao đổi định kỳ bản tin Hello nhằm loan báo và kiểm tra một LSR kết nối gián tiếp hoặc trực tiếp.
Session: Để thiết lập, thương lượng các thông số cho việc khởi tạo, duy trì và chấm dứt các phiên ngang hàng LDP. Nhóm này bao gồm bản tin Initialization, KeepAlive.
Advertisement: Để tạo ra, thay đổi hoặc xóa các ánh xạ FEC tới nhãn. Nhóm này bao gồm bản tin Label Mapping, Label Withdrawal, Label Release, Label Request, Label Request Abort.
Notification: Để truyền đạt các thông tin trạng thái, lỗi hoặc cảnh báo. Các thông điệp Discovery được trao đổi trên UDP. Các kiểu thông điệp còn lại đòi hỏi phân phát tin cậy nên dùng TCP. Trường hợp hai LSR có kết nối lớp 2 trực tiếp thì thủ tục phát hiện neighbor trực tiếp như sau:
Một LSR định kỳ gửi đi bản tin Hello tới các cổng UDP 646 địa chỉ multicast (tất cả các router trong subnet).
Tất cả các LSR tiếp nhận bản tin Hello này trên cổng UDP. Đến một thời điểm nào đó LSR sẽ biết được tất cả các LSR khác mà nó có kết nối trực tiếp.
Khi LSR nhận biết được địa chỉ của LSR khác bằng cơ chế này thì nó sẽ thiết lập kết nối TCP đến LSR đó. Khi đó phiên LDP được thiết lập giữa 2 LSR.
Phiên LDP là phiên song hướng nên mỗi LSR ở hai đầu kết nối đều có thể yêu cầu và gửi liên kết nhãn.
Trong trường hợp hai LSR không có kết nối lớp 2 trực tiếp (neighbor gián tiếp) thì LSR định kỳ gửi bản tin Hello đến cổng UDP đã biết tại địa chỉ IP xác định được khai báo khi lập cấu hình. Đầu nhận bản tin này có thể trả lời lại bằng bản tin Hello khác và việc thiết lập các phiên LDP được thực hiện như trên.
2.3.2 Cấu trúc thông điệp LDP
Trao đổi thông điệp LDP thực hiện bằng cách gởi các LDP-PDU (Protocol Data Unit) thông qua các phiên LDP trên kết nối TCP. Mỗi LDP- PDU có thể mang một hoặc nhiều thông điệp, và các thông điệp này không nhất thiết phải có liên quan với nhau.
2.3.2.1 LDP PDU
Mỗi PDU của LDP bao gồm một header LDP và theo sau là một hoặc nhiều thông điệp LDP. Phần header LDP có dạng như sau:
Hình 29: LDP header
PDU Length (2 octet): số nguyên chỉ chiều dài của PDU theo octet, không tính trường Version và PDU Length. LDP Identifier (6 octet): xác định không gian nhãn được cấp phát. Bốn octet đầu là giá trị duy nhất toàn cục nhận dạng LSR, như địa chỉ IP (router ID) được gán cho LSR. Hai octets sau xác định một không gian nhãn bên trong LSR. Hai octets này được set về 0 cho không gian nhãn “per-platform”.
2.3.2.2 Định dạng thông điệp LDP [1]
Hình 30: Format thông điệp LDP
Bit U: Bit “Unknown”, luôn là 0 vì đặc tả LDP không có kiểu bản tin Unknown.
Bảng sau là các giá trị định nghĩa trường Message Type: