4. Điều khiển lưu lượng dựa trên MPLS
4.4.2 Giao thức phân phối nhãn định tuyến dựa trên sự ràng buộc
CR-LDP có nền tảng của nó trong giao thức LDP đang tồn tại, và nó được mở rộng để kết hợp chặt chẽ với thông tin định tuyến rõ ràng. Một định tuyến rõ ràng được đưa ra trong bản tin Label Request bao gồm một danh sách của các node dọc theo một định tuyến dựa trên sự ràng buộc. Nếu đường dẫn yêu cầu là thoả mãn yêu cầu về tài nguyên, các nhãn được cấp phát bởi bản tin Label Mapping. Hình 24 minh họa luồng của các bản tin khi CR-LDP được sử dụng để thiết lập một LSP.
Hình 24. Thiết lập đường dẫn CR-LDP
4.4.2.1 Sự thiết lập và duy trì CR-LDP
Tương tự như cấu trúc dữ liệu sử dụng trong việc thiết lập và duy trì, LSP cũng sử dụng trong việc thiết lập CR-LSP. Các luồng lưu lượng đến một đích cụ thể được gán cho một FEC mà được mã hoá như một LSP đã đưa ra một chuỗi các nhãn. Một nhãn được nhận ở đầu vào thì xem như đã nhận được một gói mà không yêu cầu một sự ràng buộc cụ thể nào.
Yêu cầu của LSR đầu vào để thiết lập một CR-LSP có thể bắt nguồn từ việc quản lý hệ thống hay ứng dụng, các chi tiết có thể được thực hiện cụ thể. LSR đầu vào sử dụng thông tin được cung cấp từ ứng dụng hay hệ thống quản lý, đồng thời với thông tin từ dải dữ liệu định tuyến “Routing Database”, nhằm tính toán chính xác định tuyến và tạo ra bản tin Label Request. CR-LSP được bắt đầu bởi LSR đầu vào dọc theo đường dẫn đã xác định từ trước. Tuyến cho LSP được định tuyến rõ ràng mà được cụ thể trong bản tin Label Request, cho phép thông tin bộ định tuyến được thực hiện dọc theo các node mà bản tin Label Request đi qua, từ LER đầu vào tới LER đầu ra. CR-LSP có thể được định rõ và được kiểm soát bởi người khai thác mạng hoặc các ứng dụng quản lý mạng trực tiếp tới lưu lượng mạng mà không phụ thuộc vào cấu hình lớp 3.
Khi một LSR nhận một bản tin Label Request chứa một tuyến rõ ràng (Explicit Route-ER), nó phải xác định bước truyền kế tiếp cho đường dẫn này. Sự chọn lựa bước truyền kế tiếp có thể bao gồm việc chọn lựa từ một tập hợp những khả năng khác. LSR nhận bản tin Label Request thì đầu tiên phải đánh giá bước truyền ER đầu tiên.
không chặt chẽ (nghĩa là bước truyền kế tiếp không phải theo một định tuyến chặt chẽ). Nếu node không phải là phần của node trừu tượng (node trừu tượng là một tập hợp của các node được mô tả bởi một node đặc trưng) được đưa ra bởi bước truyền ER đầu tiên, thì tức là nó đã nhận được một bản tin lỗi và sẽ quay trở lại lỗi Bad-Initial- ER-HOP.
Nếu L bit được thiết lập và node nội bộ không phải là một phần của node trừu tượng được miêu tả bởi ER-hop đầu tiên, các node lựa chọn một bước truyền kế tiếp đi dọc theo đường dẫn tới Node trừu tượng mô tả bởi ER-HOP đầu tiên. Nếu đó không phải là bước truyền ER đầu tiên, bản tin không lỗi thì hệ thống không quay trở lại lỗi Bad- Explicit Routing. Nếu đó không phải là bước truyền ER thứ hai, nó sẽ chỉ ra cái kết thúc của bộ định tuyến rõ ràng. Việc định tuyến rõ ràng TLV có thể bị xoá từ bản tin.
Khi node nhận thấy chính nó là đầu ra cho CR-LSP, nó sẽ phải gửi trả một bản tin Label Mapping, bởi bản tin này sẽ đi ngang qua một đường dẫn ở bản tin LSR trong hướng đối diện. LSR nhận bản tin này để xác định trả lời của nó tới bản tin Label Request vẫn chưa được quyết định đó. Một bản tin Label Request được phát ra và gửi đi tới LSR đường lên kế tiếp. Khi node đầu vào nhận một Label Mapping thì một CR-LSP được thiết lập.
LSP ID-chỉ số nhận dạng duy nhất của một CR- LSP trong một mạng MPLS. Bao gồm
ID của bộ định tuyến đầu vào và ID CR-LSP tới LSR đó.
Actflag-Cờ chỉ hoạt động mà chỉ ra rằng hoạt động nên được đưa ra nếu có LSP tồn tại
trên LSR nhận bản tin.
ER-hop-địa chỉ IP của LSR, L bít chỉ ra rằng đay có phải là một bước truyền không
chính xác hay không.
Flag-trường 8 bít chỉ ra rằng những tham số lưu lượng có được thương luợng hay không. Freq-trễ mà có thể được đưa ra.
Weight-quyết định sự chia xẻ cân xứng của độ rộng băng tần vượt quá khả năng trên tốc
độ đã cam kết của nó.
Peak Rate-tốc độ tối đa của lưu lưọng được gửi tới CR-LSP, xác định trong giới hạn
của PDR+PBS.
Committed Rate-tốc độ mà miền MPLS cam kết là có sẵn tới CR-LSP, xác định
trong giới hạn của CDR+CBS.
Excess Burst Rate-sử dụng để đo tốc độ của lưu lượng gửi trên một CR-LSP mà
vượt qua tốc độ cam kết.
Route Pining-có thể ứng dụng tới những đoạn của một LSP mà được định tuyến không
chính xác, được chỉ ra bởi L bít, thiết lập P=1, chỉ ra mấu chốt định tuyến là được yêu cầu.
Rescls-người khai thác mạng có thể phân loại tài nguyên mạng theo những cách khác
nhau. Những lớp này được nhận ra bằng mầu hoặc nhóm quản lý. Khi CR-LSP được thiết lập, sự cần thiết của nó là chỉ ra lớp tài nguyên nào mà CR-LSP có thể lấy từ đó.
SetupPrio/HoldPrio-chỉ rõ mức ưu tiên của
CR-LSP đang tồn tại.
4.4.2.2 Định tuyến hiện (ER) và định tuyến cưỡng bức (CR)
Định tuyến hiện (ER) là thành phần không thể thiếu của định tuyến cưỡng bức. Các đường đi được thiết lập tại biên của mạng, thoả mãn với các tiêu chuẩn QoS và thông tin định tuyến. Hình 25 biểu diễn ví dụ về định tuyến hiện.
Hình 25. Định tuyến hiện
Các đường đi trong định tuyến hiện bắt đầu tại router lối vào A và đi tới B, sau đó D, và ra tại router F. Các đường đi trong định tuyến hiện không được phép đi qua các LSR C và E. Các đường đi được phép có thể được thiết lập bằng việc sử dụng các bản tin LDP. Các đường đi trong định tuyến hiện được mã hoá trong bản tin yêu cầu nhãn. bản tin này chứa 1 danh sách các node (hay nhóm các node) dùng để tạo nên đường đi CR. Sau khi CR-LSP đã được thiết lập, tất cả tập con các node trong nhóm có thể được sử dụng thiết lập LSP.
4.4.2.3 LDP và định tuyến cưỡng bức (CR)
Nếu một LDP được sử dụng cho định tuyến cưỡng bức, đường đi được định tuyến cưỡng bức được mã hoá như là một chuỗi liên tiếp các chặng ER chứa trong bản tin LDP. Mỗi chặng ER có thể nhận ra một nhóm các node trên đường đi được định tuyến cưỡng bức, và cũng có các TLV để mô tả các tham số lưu lượng, chẳng hạn như là tốc độ đỉnh và tốc độ cam kết. Một đường đi được định tuyến cưỡng bức là một đường dẫn bao gồm tất cả nhóm các node được nhận dạng theo thứ tự như chúng xuất hiện trong TLV.
4.4.2.4 Thuật toán định tuyến cưỡng bức
Định tuyến cưỡng bức phải tính toán xác định đường đi thoả mãn các điều kiện sau:
Tối ưu theo một tiêu chuẩn nào đó (ví dụ đường ngắn nhất hoặc số chặng ít nhất)
Thoả mãn các điều kiện ràng buộc.
Thuật toán “đường ngắn nhất đầu tiên” (SPF) thường được sử dụng để tìm đường tối ưu theo tiêu chuẩn nào đó. Các mạng IP truyền thống sử dụng thuật toán này để tìm đường tối ưu theo tiêu chuẩn nào đó (chẳng hạn: số hop…) mà không tính tới các yếu tố bổ sung như trễ, biến thiên trễ…Để thoả mãn cả các điều kiện ràng buộc thì thuật toán SPF cần phải thay đổi để bao gồm các điều kiện ràng buộc. Thuật toán mới này gọi là SPF cưỡng bức (CSPF).
Trước hết chúng ta tìm hiểu hoạt đông của thuật toán SPF. Thuật toán SPF hoạt động khởi đầu tại một nút được gọi là gốc và bắt đầu tính toán xây đường ngắn nhất ứng với gốc là nút đó. Tại mỗi vòng của thuật toán sẽ có một danh sách các nút “ứng cử” không nhất thiết phải là ngắn nhất. Tuy nhiên ứng với nút “ứng cử” ở ngay kề nút gốc thì đường nối tới nút này phải là ngắn nhất. Vì vậy tại mỗi vòng, thuật toán sẽ tách nút có đường ngắn nhất tới nút gốc từ danh sách nút “ứng cử”. Nút này sẽ được bổ sung vào cây đường ngắn nhất, thì các nút không nằm trên cây đường ngắn nhất nhưng liền kề ngay nút này cũng được kiểm tra để bổ sung hoặc sửa đổi danh sách nút “ứng cử”. Sau đó thuật toán lại được thực hiện lặp lại. Trong trường hợp tìm đường ngắn nhất từ một gốc đến tất cả các nút khác trong mạng thì thuật toán sẽ dừng khi nào danh sách các nút “ứng cử” là rỗng. Trong trường hợp tìm đường ngắn nhất từ một gốc đến một nút cụ thể thì thuật toán sẽ dừng lại khi nào nút đó được bổ sung vào cây đường ngắn nhất. Thuật toán SPF để tính toán xác định đường ngắn nhất từ nút SPF (nguồn) đến một số nút (đích) có thể được mô tả dưới dạng các bước như sau:
Bước 1 (khởi tạo): Đặt danh sách các nút “ứng cử” bằng rỗng. Đặt cây đường
ngắn nhất chỉ có gốc S. Đối với mỗi nút liền kề gốc đặt độ dài đường bằng độ dài kênh giữa gốc và nút. Đối với tất cả các nút khác, đặt độ dài này bằng vô cùng.
Bước 2: Đặt tên nút bổ sung vào cây đường ngắn nhất là V. Đối với mỗi kênh nối
vào nút này, kiểm tra các nút phía còn lại của kênh. Đánh dấu các nút này là W.
Bước 2a: Nếu như nút W này đã có trong danh sách cây đường ngắn nhất thì kiểm tra tiếp với các kênh còn lại nối với nút V.
Bước 2b: Trong trường hợp ngược lại (W không nằm trong danh sách cây đường ngắn nhất) thì tính độ dài của đường nối từ gốc đến nút W (độ dài này bằng tổng độ dài của đường nối từ gốc đến nút V cộng với độ dài từ nút V đến nút W). Nếu như W không nằm trong danh sách các nút “ứng cử” thì giá trị độ dài đường hiện thời lớn hơn giá trị độ dài đường mới tính và gán giá trị độ dài đường từ gốc đến nút W bằng độ dài mới tính.
Bước 3: Trong danh sách nút “ứng cử”, tìm một nút với độ dài đường ngắn nhất.
Bổ sung nút này vào cây đường ngắn nhất và xoá nút này khỏi danh sách nút “ứng cử”. Nếu nút này là nút D thì thuật toán kết thúc và ta được cây đường ngắn nhất từ nút nguồn SPF đến nút đích D. Nếu như nút này chưa phải là nút D thì quay trở lại bước 2.
Từ các bước của thuật toán SPF đơn giản trên đây, chúng ta dễ dàng sửa đổi nó trở thành CSPF. Tất cả chúng ta phải làm đó là sửa đổi bước thực hiện bổ sung sửa đổi danh sách nút “ứng cử”. Cụ thể là bước 2, khi chúng ta kiểm tra các kênh nối với nút V, đối với mỗi kênh trước hết chúng ta kiểm tra xem kênh đó có thoả mãn điều kiện ràng buộc không? Chỉ khi điều kiện này được thoả mãn, sau đó chúng ta mới kiểm tra nút W ở đầu kia của kênh. Thông thường chúng ta hay gặp bài toán tìm đường từ S đến D thoả mãn một số điều kiện ràng buộc là C1, C2,…, Cn, khi đó tại bước 2 chúng ta sẽ kiểm tra tất cả các kênh nối với nút V, đối với mỗi kênh trước hết chúng ta kiểm tra xem nó có thoả mãn điều kiện C1, C2,.., Cn. Chỉ khi kênh thoả mãn tất cả các điều kiện ràng buộc thì chúng ta mới kiểm tra nút W ở phía đầu kia của kênh.
Về tổng quát, thủ tục kiểm tra xem kênh có thoả mãn một điều kiện ràng buộc cụ thể là đặc điểm của định tuyến cưỡng bức. Ví dụ như nếu điều kiện ràng buộc cần thoả mãn là độ rộng băng tần khả dụng, khi đó chúng ta cần kiểm tra độ rộng băng tần khả dụng của kênh có lớn hơn một giá trị độ rộng băng tần được chỉ ra trong điều kiện ràng buộc; chỉ khi thoả mãn chúng ta mới kiểm tra nút W ở đầu kia của kênh.
Để kiểm tra kênh có thoả mãn một điều kiện ràng buộc cụ thể nào đó thì chúng ta phải biết trước các thông tin của kênh tương ứng có liên quan đến điều kiện ràng buộc. Ví dụ như khi điều kiện ràng buộc cần thoả mãn là độ rộng băng tần khả dụng thì thông tin cần có là độ rộng băng tần khả dụng của từng kênh.
Lưu ý rằng thuật toán tính toán xác định đường sử dụng trong CSPF, yêu cầu bộ định tuyến thực hiện việc tính toán xác định đường phải có các thông tin về tất cả các kênh trong mạng. Điều đó có nghĩa là chỉ một số loại giao thức định tuyến có thể hỗ trợ định tuyến cưỡng bức đó là giao thức định tuyến theo trạng thái kênh (ví dụ như IS-IS, OSPF). Còn các giao thức định tuyến theo vector khoảng cách (ví dụ như RIP) không hỗ trợ định tuyến cưỡng bức.
Hình 26. Ví dụ về CSPF
Để minh hoạ cho CSPF, chúng ta hãy xem xét ví dụ trên hình 26. Chúng ta giả sử rằng độ dài tất cả các kênh đều bằng nhau và có giá trị là 1. Chúng ta cũng giả sử rằng tất cả các kênh đều có độ rộng băng tần khả dụng là 150 Mb/s, ngoại trừ kênh nối từ LSR2 đến LSR4 có độ rộng băng tần khả dụng là 45Mb/s. Nhiệm vụ của chúng ta là tìm đường từ LSR1 đến LSR6 sao cho có độ dài ngắn nhất và độ rộng băng tần khả dụng phải lớn hơn hoặc bằng 100Mb/s. ở đây điều kiện ràng buộc cần thoả mãn là độ rộng băng tần khả dụng.
Khởi đầu cây đường ngắn nhất (có gốc là LSR1) chỉ có nút LSR1. Tiếp theo chúng ta kiểm tra hai nút bên cạnh LSR1 đó là LSR2 và LSR3 với lưu ý rằng độ rộng băng tần khả dụng của kênh (LSR1-LSR2) và (LSR1-LSR3) đều lớn hơn giá trị cần thiết là 100Mb/s. Kết luận không kênh nào vi phạm điều kiện ràng buộc, vì vậy chúng ta bổ sung LSR2 và LSR3 vào danh sách “ứng cử”. Tiếp theo chúng ta tìm nút có khoảng cách ngắn nhất đến LSR1 trong danh sách các nút “ứng cử”. Nút này là LSR2 (ở đây cả hai nút LSR2 và LSR3 đều có khoảng cách như nhau đến LSR1 vì vậy có thể chọn ngẫu nhiên là LSR2), chúng ta bổ sung nó vào cây đường ngắn nhất (LSR1, LSR2) và xoá nó khỏi danh sách các nút “ứng cử”. Kết thúc vòng một của thuật toán.
Vòng thứ hai chúng ta kiểm tra nút cạnh nút LSR2 là LSR4. Với nút này chúng ta thấy rằng độ rộng băng tần khả dụng trên kênh (LSR2-LSR4) nhỏ hơn độ rộng băng tần yêu cầu. Vì vậy kênh này không thoả mãn điều kiện ràng buộc và chúng ta không bổ sung LSR4 vào danh sách nút “ứng cử”. Chúng ta vẫn còn LSR3 trong danh sách nút “ứng cử”, vì vậy ta bổ sung nó vào cây đường ngắn nhất (LSR1, LSR3) và xoá nó khỏi danh sách “ứng cử”. Kết thúc vòng thứ hai của thuật toán.
nút này chúng ta thấy độ rộng băng tần khả dụng trên kênh (LSR3-LSR5), lớn hơn độ rộng băng tần yêu cầu. Vì vậy kênh này thoả mãn điều kiện ràng buộc và ta bổ sung nó vào danh sách nút “ứng cử”. Tiếp theo chúng ta tìm trong danh sách các nút “ứng cử” nút có khoảng cách ngắn nhất tới LSR1 là nút LSR5. Vì vậy ta bổ sung LSR5 vào cây đường ngắn nhất (LSR1, LSR3, LSR 5) và xoá LSR5 khỏi danh sách “ứng cử”. Kết thúc vòng thứ 3 của thuật toán.
Tại vòng thứ 4 của thuật toán, ta kiểm tra nút cạnh nút LSR5 là LSR4. Với nút này chúng ta thấy rằng độ rộng băng tần khả dụng trên kênh (LSR5-LSR4) lớn hơn độ