Để biết được cần bổ sung những chức năng nào vào hệ thống định tuyến IP đơn giản sao cho nú cú thể hỗ trợ định tuyến cưỡng bức, trước hết chỳng ta hóy xem lại cỏc đặc điểm chớnh của định tuyến cưỡng bức cần hỗ trợ.
Đặc điểm đầu tiờn đú là khả năng tớnh toỏn và xỏc định đường tại phớa nguồn, tức là phớa nguồn phải cú đầy đủ cỏc thụng tin cần thiết để tớnh toỏn xỏc định đường.
Cỏc thụng tin mà phớa nguồn sử dụng để tớnh toỏn xỏc định đường cú thể là một phần thụng tin cú sẵn trong cơ sở dữ liệu của nguồn và cỏc thụng tin mà phớa nguồn cú thể cú được từ cỏc bộ định tuyến khỏc trong mạng. Cỏc thụng tin cú sẵn trong nguồn là cỏc thụng tin về điều kiện cưỡng bức của cỏc đường khỏc khau xuất phỏt từ nguồn. Cỏc thụng tin mà nguồn cú thể cú được từ cỏc bộ định tuyến khỏc trong mạng bao gồm thụng tin về cấu trỳc mạng cũng như cỏc thụng tin về đặc điểm của cỏc kờnh tương ứng trong mạng. Tất cả cỏc nỳt trong mạng đều cú thể là nguồn khởi phỏt lưu lượng định tuyến theo phương thức cưỡng bức vỡ vậy cỏc nỳt trong mạng đều phải cú được cỏc thụng tin này khi cần. Vỡ vậy đặc điểm thứ hai là cần phải cú khả năng phõn phối thụng tin về cấu trỳc mạng và đặc điểm cỏc kờnh tới tất cả cỏc nỳt trong mạng.
73
Khi tớnh toỏn xỏc định đường, chỳng ta cần biết phương thức truyền thụng tin dọc theo đường. Vỡ vậy đặc điểm thứ ba là hệ thống phải hỗ trợ định tuyến hiện. Cụng nghệ MPLS hỗ trợ khả năng định tuyến hiện, do đú, nú được sử dụng làm phương tiện chuyển tiếp thụng tin. Cú hai lý do để sử dụng MPLS. Trước hết, MPLS cho phộp tỏch cỏc thụng tin sử dụng để chuyển tiếp (nhón) từ cỏc thụng tin cú trong mào đầu của gúi IP. Thứ hai là việc chuyển đổi giữa FEC và LSP chỉ được giới hạn trong LSR tại một đầu của LSP. Núi một cỏch khỏc, việc quyết định gúi IP nào sẽ định tuyến hiện như thế nào hoàn toàn do LSR tớnh toỏn xỏc định tuyến. Và như đó trỡnh bày ở trờn, đõy chớnh là chức năng cần thiết để hỗ trợ định tuyến cưỡng bức.
Cũng như cỏc chức năng khỏc của MPLS, chức năng định tuyến hiện của MPLS cũng được chia làm hai phần: điều khiển và chuyển tiếp. Phần tử điều khiển chịu trỏch nhiệm thiết lập trạng thỏi chuyển tiếp (nhón) dọc theo tuyến hiện. Phần tử chuyển tiếp sử dụng trạng thỏi chuyển tiếp được thiết lập bởi phần tử điều khiển cũng như cỏc thụng tin cú trong cỏc gúi tin để truyền cỏc gúi tin dọc theo tuyến hiện.
Cuối cựng khi xỏc định một tuyến cho một nhúm lưu lượng cú thể yờu cầu dự phũng tài nguyờn trờn tuyến đú vỡ vậy nú cú thể làm thay đổi cỏc đặc điểm tương ứng của cỏc kờnh tương ứng trong mạng. Vớ dụ như nếu độ rộng băng tần khả dụng là một trong những điều kiện cưỡng bức của kờnh thỡ khi chỳng ta muốn truyền một lưu lượng qua một tuyến mà lưu lượng đú yờu cầu cú dự phũng độ rộng băng tần dọc theo tuyến thỡ nú sẽ làm thay đổi giỏ trị độ rộng băng tần khả dụng của cỏc kờnh dọc theo tuyến. Vỡ vậy, đặc điểm thứ 4 là tài nguyờn mạng cú thể dự phũng và cỏc thụng số của kờnh cú thể thay đổi được khi truyền lưu lượng tương ứng trờn tuyến.
Điều kiện cưỡng bức "chọn đường ngắn nhất":
Như đó đề cập ở trờn, định tuyến cưỡng bức phải tớnh toỏn xỏc định được đường thoả món cỏc điều kiện sau:
Là tối ưu theo một tiờu chớ nào đú (như đường ngắn nhất hoặc số nỳt ớt nhất) Khụng vi phạm cỏc điều kiện cưỡng bức.
Một trong cỏch thoả món tiờu chớ tối ưu là sử dụng thuật toỏn “trước tiờn là đường ngắn nhất” (SPF – Shortest Path First). Quay trở lại thuật toỏn SPF ứng với định tuyến IP đơn giản, việc tớnh toỏn xỏc định đường phải tối ưu theo một tiờu chớ nào đú (vớ dụ như khoảng cỏch). Vỡ vậy để tớnh toỏn xỏc định đường khụng vi phạm cỏc điều kiện cưỡng bức chỳng ta cần sửa đổi thuật toỏn sao cho nú tớnh đến cỏc điều kiện cưỡng bức. Chỳng ta hóy xem xột một thuật toỏn loại này đú là: điều kiện cưỡng bức “chọn đường ngắn nhất” (CSPF).
Để hiểu SPF được sửa đổi như thể nào để nú cú thể tớnh đến cỏc điều kiện cưỡng bức, trước hết chỳng ta tỡm hiểu hoạt động của SPF đơn giản. Thuật toỏn SPF đơn giản 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 dựng đườ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
74
danh sỏch cỏc nỳt “ứng cử”. Thụng thường, đường từ nỳt gốc đến cỏc nỳt “ứng cử khụng nhất thiết phải là ngắn nhất. Tuy nhiờn đối 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 và loại bỏ khỏi danh sỏch cỏc nỳt “ứng cử”. Khi mà nỳt này đượ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 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 S (nguồn) đến một số nỳt D (đớ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ới nỳt này, kiểm tra cỏc nỳt phớa đầu kia 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 đối 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ỡ bổ sung W vào danh sỏch này và gỏn độ dài đường từ gốc đến nỳt W bằng khoảng cỏch này. Nếu như W 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 độ 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 như 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 là S đến nỳt đớch là 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, người ta dễ dàng sửa đổi để nú trở thành CSPF, đú là sửa đổi bước thực hiện việc bổ sung/sửa đổi danh sỏch nỳt “ứng cử“. Cụ thể là bước 2, khi 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 kiểm tra xem kờnh đú cú thoả món điều kiện cưỡng bức khụng? Chỉ khi điều
75
kiện này được thoả món thỡ 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 cưỡng bứ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 cỏc điều kiện C1, C2,..., Cn. Chỉ khi kờnh thoả món tất cả cỏc điều kiện cưỡng bức thỡ chỳng ta mới kiểm tra nỳt W ở phớa đầu kia của kờnh.
Để kiểm tra kờnh cú thoả món một điều kiện cưỡng bứ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 cưỡng bức. Vớ dụ như khi điều kiện cưỡng bứ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 cú lớn hơn một giỏ trị được chỉ ra trong điều kiện cưỡng bức; chỉ khi thoả món chỳng ta mới kiểm tra nỳt W ở đầu kia của 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à cỏc 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.
Để minh hoạ cho CSPF, chỳng ta hóy xem xột vớ dụ trờn hỡnh 3.8. 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à 45 Mb/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 100 Mb/s. Ở đõy điều kiện cưỡng bức cần thoả món là độ rộng băng tần khả dụng.
Hỡnh 3.8 - Vớ dụ về CSPF
Khởi đầu cõy đường ngắn nhất (cú gốc ở 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ỏ
LSR1 LSR2 LSR3 LSR4 LSR5 LSR6 LSR7
76
trị cần thiết là 100 Mb/s. Kết luận khụng kờnh nào vi phạm điều kiện cưỡng bứ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 một vũng của thuật toỏn.
Vũng thứ 2 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 cưỡng bứ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.
Tại vũng thứ 3 của thuật toỏn, chỳng ta kiểm tra nỳt cạnh nỳt LSR3 là nỳt LSR5. 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 (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 cưỡng bứ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, LSR5) 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 kể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 độ rộng băng tần yờu cầu. Vỡ vậy kờnh này thoả món điều kiện cưỡng bứ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 LSR4. Vỡ vậy ta bổ sung LSR4 vào cõy đường ngắn nhất (LSR1, LSR3, LSR5, LSR4) và xoỏ LSR4 khỏi danh sỏch “ứng cử”. Kết thỳc vũng thứ 4 của thuật toỏn.
Tại vũng thứ 5 của thuật toỏn, ta kểm tra nỳt cạnh nỳt LSR5 là LSR6 và LSR7. Với nỳt này chỳng ta thấy rằng độ rộng băng tần khả dụng trờn cỏc kờnh (LSR4-LSR6) và (LSR4-LSR7) 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 cưỡng bức và ta bổ sung LSR6 và LSR7 vào danh sỏch nỳt “ứng cử”. Tiếp theo chỳng ta nhận thấy rằng trong danh sỏch cỏc nỳt “ứng cử” cú nỳt LSR6 cú khoảng cỏch ngắn nhất tới LSR1. Vỡ vậy ta bổ sung LSR6 vào cõy đường ngắn nhất (LSR1, LSR3, LSR5, LSR4, LSR6) và xoỏ LSR6 khỏi danh sỏch “ứng cử”. Tại đõy chỳng ta nhận thấy cõy đường ngắn nhất đó cú chứa nỳt LSR6 là nỳt đớch của đường cần tỡm. Vỡ vậy thuật toỏn kết thỳc ở đõy. Kết quả đường ngắn nhất từ LSR1 đến LSR6 là (LSR1, LSR3, LSR5, LSR4, LSR6). Chỳng ta cú thể nhận thấy đường này khỏc với đường được xỏc định theo thuật toỏn SPF cú thể là (LSR1, LSR2, LSR4, LSR6).
77