Giới thiệu
Giao thức phân phối nhãn được IETF đưa ra trong RFC 3036. Vị trí của giao thức LDP và các mối liên kết chức năng cơ bản của LDP với các giao thức khác thể hiện trên hình 2.19.
LDP có thể hoạt động giữa các LSR kết nối trực tiếp hay không được kết nối trực tiếp. Các LSR sử dụng LDP để hoán đổi thông tin ràng buộc FEC và nhãn được gọi là các thực thể đồng cấp LDP; chúng hoán đổi thông tin này bằng việc xây dựng các phiên LDP.
Hình 2.19. Vị trí giao thức LDP trong bộ giao thức MPLS
Các loại bản tin LDP
LDP định nghĩa 4 loại bản tin đó là: Bản tin thăm dò, Bản tin phiên, Bản tin phát hành, Bản tin thông báo. Bốn loại bản tin này cũng nói lên chức năng mà nó thực hiện.
Bản tin thăm dò (Discovery): dùng để thông báo và duy trì sự có mặt của 1
LSR trong mạng. Theo định kỳ, LSR gửi bản tin Hello qua cổng UDP với địa chỉ multicast của tất cả các router trên mạng con.
Bản tin phiên (Session): dùng để thiết lập, duy trì, và xoá các phiên giữa các
LSR. Hoạt động này yêu cầu gửi các bản tin Initialization trên TCP. Sau khi hoạt động này hoàn thành các LSR trở thành các đối tượng ngang cấp LDP Bản tin phát hành (Advertisement): dùng để tạo, thay đổi và xoá các ràng
thể yêu cầu 1 ánh xạ nhãn từ LSR lân cận bất cứ khi nào nó cần. Nó cũng phát hành các ánh xạ nhãn bất cứ khi nào nó muốn một đối tượng ngang cấp LDP nào đó sử dụng ràng buộc nhãn.
Bản tin thông báo (Notification): dùng để cung cấp các thông báo lỗi, thông tin
chẩn đoán, và thông tin trạng thái. Những bản tin này cũng mang trên TCP.
Đa số các bản tin LDP chạy trên giao thức TCP để đảm bảo độ tin cậy của các bản tin. (ngoại trừ bản tin thăm dò).
Thủ tục thăm dò LSR lân cận
Thủ tục LSR lân cận của LDP chạy trên UDP và thực hiện như sau (minh hoạ trên hình 2.20).
Một LSR định kỳ gửi bản tin Hello tới tất cả giao diện của nó. Những bản tin này được gửi trên UDP, với địa chỉ multicast của tất cả router trên mạng con. Tất cả các LSR tiếp nhận bản tin Hello này trên cổng UDP. Như vậy, tại 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 hai chiều có nghĩa là mỗi LSR ở hai đầu kết nối đều có thể yêu cầu và gửi ràng buộc nhãn. Trong trường hợp các LSR không kết nối trực tiếp trong một mạng con, người ta sử dụng một cơ chế bổ sung như sau:
LSR định kỳ gửi bản tin Hello trên UDP đến địa điạ chỉ IP đã được khai báo khi lập cấu hình. Phía nhận bản tin này có thể trả lời lại bằng bản tin HELLO khác truyền ngược lại đến LSR gửi và việc thiết lập các phiên LDP được thực hiện như trên.
Hình 2.20. Thủ tục phát hiện LSR lân cận
Các bản tin LDP
Tiêu đề bản tin LDP
Mỗi một bản tin LDP được gọi là đơn vị dữ liệu giao thức PDU, được bắt đầu bằng tiêu đề bản tin và sau đó là các bản tin LDP như đã trình bày trên đây. Hình 2.21 chỉ ra các trường chức năng của tiêu đề LDP và các trường này thực hiện các chức năng sau:
Phiên bản: Số phiên bản của giao thức, hiện tại là phiên bản 1.
Độ dài PDU: Tổng độ dài của PDU tính theo octet, không tính trường phiên
bản và trường độ dài.
Nhận dạng LDP: Nhận dạng không gian nhãn của LSR gửi bản tin này. Bốn
octet đầu tiên chứa địa chỉ IP được gán cho LSR: nhận dạng bộ định tuyến. Hai octet cuối nhận dạng không gian nhãn bên trong LSR.Với LSR có không gian nhãn lớn, trường này có giá trị bằng 0.
. 0 1 5 3 1 P h i ª n b ¶ n § é d µ i P D U N h Ë n d ¹ n g L D P N h Ë n d ¹ n g L D P Hình 2.21. Tiêu đề LDP Mã hoá TLV
LDP sử dụng lược đồ mã hoá kiểu-độ dài-giá trị để mã hoá các thông tin mang trong bản tin LDP. Như chỉ ra trên hình 2.22, LDP TVL được mã hoá thành một trường 2 octet trong đó sử dụng 14 bít để xác định kiểu, và 2 bit xác định cách hành động cho trường hợp LSR không nhận ra được kiểu; 2 octet tiếp theo xác định trường độ dài và trường giá trị có độ dài thay đổi.
Trường kiểu qui định các mà trường giá trị được dịch. Trường độ dài xác định độ dài của trường giá trị. Trường giá trị có thể chứa các TLV khác.
0 1 5 3 1
K i Ó u § é d µ i G i ¸ t r Þ
U F
Hình 2.22. Mã hoá TLV
Dựa trên bản tin nhận được, khi bit U có giá trị 0, LSR sẽ gửi thông báo ngược lại nơi gửi và toàn bộ bản tin sẽ được bỏ qua. Nếu U có giá trị 1, LSR sẽ bỏ qua bản tin chưa biết kiểu đó mà không gửi thông báo lại phía gủi và phần còn lại của bản tin vẫn được xử lý như thể là bản tin chưa biết kiểu này không tồn tại.
Bit F chỉ được sử dụng khi bit U = 1 và bản tin LDP chứa bản tin chưa biết kiểu này được truyền đi. Nếu bít F bằng 0 thì bản tin chưa biết kiểu sẽ không chuyển đi cùng
bản tin LDP chứa nó và nếu bit F=1 thì bản tin chưa biết kiểu sẽ chuyển đi cùng bản tin LDP chứa nó.
Các khuôn dạng và chức năng của các TLV. Trong phạm vi đồ án này xin phép
không nói đến.
Khuôn dạng bản tin LDP
Tất cả các bản tin LDP có khuôn dạng sau:
Hình 2.23. Khuôn dạng các bản tin LDP
Bit U: bit bản tin chưa biết. Nếu bit này bằng 1 thì nó không thể được thông
dịch bởi phía nhận, lúc đó bản tin bị bỏ qua mà không có phản hồi. Kiểu bản tin: Chỉ ra kiểu bản tin là gì.
Chiều dài bản tin: Chỉ ra chiều dài của các phần nhận dạng bản tin, các thông
số bắt buộc, và các thông số tuỳ chọn.
Nhận dạng bản tin: là một số nhận dạng duy nhất bản tin. Trường này có thể
được sử dụng để kết hợp các bản tin Thông báo với một bản tin khác.
Thông số bắt buộc, và Thông số tuỳ chọn tuỳ thuộc vào từng bản tin LDP.
Về mặt nguyên lý, mọi thứ xuất hiện trong bản tin LDP có thể được mã hoá theo TLV, nhưng các đặc tả LDP không phải luôn luôn sử dụng lược đồ TLV. Nó không được sử dụng khi nó không cần thiết và sự sử dụng của nó sẽ gây lãng phí không gian. Chẳng hạn không cần thiết phải sử dụng khuôn dạng TLV nếu chiều dài của giá trị là cố định hay kiểu của giá trị được biết và không phải chỉ định một nhận dạng kiểu.
Khuôn dạng và chức năng các bản tin LDP
ID bản tin Thông số bắt buộc Thông số tuỳ chọn
Phần này cung cấp thông tin về khuôn dạng và chức năng của các bản tin LDP sau:
Bản tin Notification - Bản tin Thông báo Bản tin Hello – Bản tin Chào hỏi
Bản tin Initialization - Bản tin khởi tạo Bản tin Keepalive - Bản tin
Bản tin Address - Bản tin Địa chỉ
Bản tin Address Withdraw – Bản tin Thu hồi địa chỉ Bản tin Label Mapping - Bản tin Ràng buộc nhãn Bản tin Label Request – Bản tin Yêu cầu nhãn Bản tin Label Withdraw - Bản tin Thu hồi nhãn Bản tin Label Release – Bản tin Giải phóng nhãn
Bản tin Label Abort Request - Bản tin Yêu cầu huỷ bỏ nhãn
Bản tin Notification
Bản tin thông báo cho biết một lỗi không thể tránh khỏi, là kết quả của quá trình xử lý bản tin hay trạng thái của phiên LDP.
Nếu một LSR bắt gặp một điều kiện mà cần để thông báo tới LSR ngang cấp cùng với thông tin tư vấn hay lỗi, nó gửi LSR đó một thông báo chứa TLV trạng thái mà mã hóa thông tin và các TLV tùy chọn thêm. Nếu điều kiện là không thể tránh khỏi, sau khi gửi bản tin thông báo, LSR chấm dứt phiên LDP bằng cách đóng kết nối TCP và loại bỏ tất cả các trạng thái đã liên kết cùng với phiên này.
Bản tin Initialization.
Các bản tin thuộc loại này được gửi khi bắt đầu một phiên LDP giữa 2 LSR để trao đổi các tham số, các tuỳ 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
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.
Bản tin KeepAlive.
Các bản tin KeeepAlive được gửi định kỳ khi không có bản tin nào được 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. Trong trường hợp không xuất hiện bản tin KeepAlive hay một số bản tin khác của LDP trong khoảng thời gian nhất định thì LSR sẽ xác định đối phưng hoặc kết nối bị hỏng và phiên LDP bị dừng.
Bản tin Address.
Một LSR gửi một bản tin địa chỉ đến LSR ngang cấp để thông báo các địa chỉ giao diện của nó. Một LSR nhận một thông điệp bản tin địa chỉ sử dụng các địa chỉ nó biết để duy trì sở dữ liệu cho ánh xạ giữa các bộ nhận dạng LDP ngang cấp và các địa chỉ chặng tiếp theo. Khi một phiên LDP mới được khởi tạo và trước khi gửi bản tin yêu cầu và gán nhãn, một LSR thông báo các địa chỉ giao diện của nó với một hay nhiều địa chỉ giao diện. Bất cứ khi nào một LSR kích hoạt một địa chỉ giao diện mới, nó cần thông báo địa chỉ mới đó cùng với bản tin địa chỉ. Khi nó muốn hủy kích hoạt địa chỉ nào đó, nó cần thu hồi địa chỉ cùng với bản tin thu hồi địa chỉ.
Bản tin Label Mapping
Các bản tin Label Mapping được sử dụng để quảng bá liên kết giữa FEC (tiền tố điạ chỉ) và nhãn. Bản tin Label Withdrawal thực hiện quá trình ngược lại, nó được sử dụng để xoá bỏ liên kết vừa thực hiện. Bản tin này được sử dụng khi có sự thay đổi trong bảng định tuyến (thay đổi tiền tố địa chỉ) hay 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 đó.
Bản tin Lable Realease
Bản tin này đượ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 đó.
Trong chế độ hoạt động gán nhãn theo yêu cầu từ phía trước, LSR sẽ yêu cầu gán nhãn từ LSR lân cận phía trước sử dụng bản tin Label Request. Nếu bản tin Label
Request cần phải huỷ 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 với bản tin Label Request Abort.
Phát hành và sử dụng nhãn
Có một vài công cụ được sử dụng để phát hành và phân bổ nhãn. Các đặc tả kiến trúc MPLS thiết lập các thủ tục đầy đủ cho những hoạt động này. Những thủ tục này được tổ chức như sau.
Các LSR đường xuống đã định nghĩa 5 thủ tục, trong đó có 4 thủ tục phân bổ và 1 thủ tục thu hồi. Các thủ tục phân bổ là: (a) Đẩy không điều kiện; (b) Đẩy có điều kiện; (c) Kéo không điều kiện; (d) Kéo có điều kiện.
Các LSR đường lên đã định nghĩa 9 thủ tục, gồm 4 loại đó là:
Các thủ tục Yêu cầu gồm: (a) thủ tục Không bao giờ yêu cầu, (b) thủ tục Yêu cầu khi cần, (c) thủ tục Yêu cầu theo yêu cầu
Các thủ tục Không khả dụng gồm: (a) thủ tục Yêu cầu có thử lại, thủ tục Yêu cầu không thử lại
Các thủ tục Giải phóng gồm: (a) thủ tục Giải phóng khi thay đổi, (b) thủ tục Giải phóng khi không thay đổi.
Các thủ tục Sử dụng nhãn gồm: (a) thủ tục Sử dụng ngay, (b) thủ tục Sử dụng nếu lặp vòng không được phát hiện
Các thủ tục LSR đường xuống (Rd)
Hình 2.24 minh hoạ các thủ tục của LSR đường xuống.
Thủ tục Đẩy không điều kiện
Đẩy không có điều kiện là trường hợp phân bổ nhãn đường xuống không theo yêu cầu trong chế độ điều khiển LSP độc lập.
Giả sử X là tiền tố địa chỉ trong bảng định tuyến của LSR-Rd và LSR-Ru là thực thể ngang cấp phân bổ của Rd. Nếu điều kiện này thoả mãn, LSR-Rd phải ràng buộc 1 nhãn với X và gửi ràng buộc này tới LSR-Ru. Trách nhiệm của Ru là phải luôn cập nhật ràng buộc này và phải thông báo cho Rd biết mọi sự thay đổi.
Hình 2.24. Các thủ tục LSR đường xuống
Thủ tục Đẩy có điều kiện
Đẩy có điều kiện là trường hợp phân bổ nhãn đường xuống không theo yêu cầu
Giả sử X là tiền tố địa chỉ trong bảng định tuyến của LSR-Rd; LSR-Ru là lối ra của LSP; chặng tiếp theo của Rd là Rn. Hơn nữa, Rn đã ràng buộc 1 nhãn với X và phân bổ ràng buộc đó tới Rd. Trong tình huống này, Rd nên ràng buộc 1 nhãn với X và gửi nó tới Ru.
Sự khác nhau giữa đẩy không có điều kiện và đẩy có điều kiện là ở chỗ: đẩy không có điều kiện thực hiện phân bổ các ràng buộc nhãn cho tất cả các tiền tố địa chỉ trong bảng định tuyến, còn đẩy có điều kiện chỉ thực hiện phân bổ ràng buộc nhãn cho các tiền tố địa chỉ mà Rd đã nhận các ràng buộc từ chặng kế tiếp của LSP.
Thủ tục Kéo không điều kiện
Kéo không có điều kiện là trường hợp phân bổ nhãn đường xuống theo yêu cầu, bằng việc sử dụng chế độ điều khiển LSP độc lập.
Gỉa sử X là tiền tố địa chỉ trong bảng định tuyến của LSR-Rd. LSR-Ru yêu cầu LSR-Rd ràng buộc nhãn với X, và phân bổ ràng buộc nhãn này cho tới nó. Rd phải tôn trọng yêu cầu ràng buộc này, và nếu nó không thể (chẳng hạn, nó không là đối tượng ngang cấp phân bổ nhãn với Ru), thì nó cúng phải thông báo cho Ru biết. Nếu Rd đã gửi một ràng buộc, thì nó phải gửi một ràng buộc mới. Ràng buộc cũ vẫn giữ nguyên tác dụng. Kết quả cuối cùng của hoạt động này là 2 nhãn được kết hợp với cùng 1 tiền tố địa chỉ. Tại sao nhà điều hành mạng muốn làm điều này? MPLS hiểu rõ điều này. Chúng ta nhớ lại rằng: Nếu các khía cạnh khác của FEC bên cạnh tiền tố địa chỉ được xem xét, nó sẽ cho phép ràng buộc các nhãn khác nhau với các FEC khác nhau có cùng tiền tố địa chỉ.
Thủ tục Kéo có điều kiện
Kéo có điều kiện là trường hợp phân bổ nhãn đường xuống theo yêu cầu, bằng việc sử dụng chế độ điều khiển LSP theo lệnh.
Giả sử X là tiền tố địa chỉ trong bảng định tuan của LSR-Rd. Ru yêu cầu Rd ràng buộc 1 nhãn với X và phân bổ ràng buộc này tới Ru. Rd là lối ra của LSP, hay chặng kế tiếp lớp 3 của Rd của X là Rn và Rn đã ràng buộc 1 nhãn với X và phân bổ ràng buộc đó tới Rd. Nếu những điều kiện này thoả mãn, Rd phải ràng buộc 1 nhãn với X và phân bổ ràng buộc đó tói Ru.
Thủ tục Thu hồi nhãn
Nếu một LSR quyết định phá vỡ ràng buộc nhãn và tiền tố địa chỉ, bản tin huỷ