Kỹ thuật lưu lượng trong MPLS đảm bảo chất lượng dịch vụ trong mạng. Kỹ thuật lưu lượng là thao tác trên lưu lượng để phù hợp với mạng. Dù có cố gắng đến đâu thì lưu
43
lượng mạng cũng không bao giờ được đáp ứng hoàn toàn (100%) so với dự tính. Giữa thập niên 90 sự tăng trưởng lưu lượng vượt quá mọi dự tính và không thể nâng cấp mạng kịp thời được. Đôi khi một sự kiện nổi bật (sự kiện thể thao, vụ bê bối chính trị, một trang web phổ biến,…) làm đầy lưu lượng trên mạng, điều này không thể tính toán trước được. Do đó có thể tại một nơi nhu cầu băng thông quá nhiều nhưng đồng thời có các đường liên kết khác chưa được sử dụng. Kỹ thuật lưu lượng là một “nghệ thuật” chuyển lưu lượng từ các liên kết bị đầy sang các liên kết rỗi. Kỹ thuật lưu lượng có thể được bổ sung: IP metric trên giao tiếp, chạy một mắt lưới ATM PVC và xác định lại đường PVC dựa trên yêu cầu về lưu lượng đi qua nó. Kỹ thuật lưu lượng trong MPLS nhằm đạt đến kỹ thuật điều khiển lưu lượng hướng kết nối tốt nhất và kết hợp với định tuyến IP.
2.4.1. Kỹ thuật lƣu lƣợng trƣớc MPLS
Ta sẽ xem xét các kỹ thuật lưu lượng của IP và ATM:
Kỹ thuật lưu lượng IP thì phổ biến nhưng chất lượng khá kém. Cách điều khiển chủ yếu của IP là thay đổi chi phí trên một liên kết cụ thể. Việc điều khiển lưu lượng chỉ dựa trên một con đường nó sẽ đi tới – không hợp lý. Ngược lại, ATM để bạn thay thế các PVC trên mạng từ nguồn đến đích của sự lưu thông. Nghĩa là đạt được quyền điều khiển tốt hơn trên các luồng lưu lượng. Vài nhà cung cấp dịch vụ (ISP) lớn trên thế giới sử dụng ATM để quản lý lưu lượng trên mạng của họ bằng cách xây dựng mạng lưới đầy đủ các ATM PVC giữa một tập các router, tái định kích thước và vị trí các ATM PVC đó một cách định kỳ dựa trên thông tin lưu lượng do các router cung cấp.
2.4.2. Kỹ thuật lƣu lƣợng với MPLS
Có ba điểm khác biệt về kỹ thuật lưu lượng giữa ATM và MPLS:
- MPLS TE chuyển tiếp gói; ATM sử dụng tế bào.
- ATM yêu cầu mạng lưới đầy đủ các tuyến lân cận; MPLS không cần.
- Trong ATM, công nghệ lõi không thể thấy các router trên biên của mạng; MPLS thấy được nhờ các giao thức định tuyến IP quảng cáo thông tin của nó.
MPLS TE kết hợp khả năng điều khiển lưu lượng của ATM với sự mềm dẻo của IP và sự khác nhau của các lớp dịch vụ. MPLS cho phép xây dựng các con đường chuyển nhãn (LSP - Label Switch Path) trong mạng để giảm lưu lượng chuyển tiếp. MPLS TE (có thể gọi là đường hầm điều khiển lưu lượng - TE Tunnel) dùng một đường hầm TE điều khiển lưu lượng trên đường đến một đích cụ thể. Phương pháp này mềm dẻo hơn kỹ thuật lưu lượng chuyển tiếp chỉ dựa trên địa chỉ đích. MPLS tránh được flooding O(N2) và O(N3). MPLS TE sử dụng cơ chế gọi là định tuyến động (autoroute) để xây dựng bảng định tuyến bằng MPLS TE LSP mà không cần mạng lưới đầy đủ các tuyến láng giềng. MPLS TE dự trữ băng thông khi xây dựng LSP. Ở đây giới thiệu khái
44
niệm tài nguyên tiêu thụ. Khi LSP được thêm vào mạng chúng có thể tìm ra con đường có băng thông được lưu trữ sẵn. MPLS bắt buộc có sự dự trữ của mặt phẳng điều khiển, nghĩa là nếu một LSR dự trữ 10Mb và gửi đến nó 100Mb trên LSP đó, mạng sẽ thử phân chia 100 Mb đó trừ khi lưu lượng ở nguồn đã bị kỹ thuật QoS ràng buộc. Khi nghiên cứu về kỹ thuật lưu lượng ta quan tâm đến ba vấn đề chính:
(1)Sự phân phối thông tin (Information distribution): Cách các bộ định tuyến nhận diện ra mạng và các tài nguyên nào đã sẵn sàng.
(2)Tính toán và thiết lập tuyến (Path calculation and setup): Cách các bộ định tuyến quyết định tạo các đường hầm TE, và cách xây dựng và duy trì các đường hầm TE này một cách chính xác.
(3)Chuyển tiếp lƣu lƣợng vào một đƣờng hầm (Forwarding traffic down a tunnel): Sau khi đường hầm được xây dựng thì sử dụng nó như thế nào?
Sự phân phối thông tin
Kỹ thuật lưu lượng trong mạng nhà cung cấp là tập hợp các trung kế lưu lượng (traffic trunk) với các yêu cầu về băng thông và chính sách. Trong đó traffic trunk là tập hợp các dòng lưu lượng đi qua một đường chung trong mạng nhà cung cấp dịch vụ từ đầu này đến đầu kia. Traffic trunk có thể được định tuyến và di chuyển từ đường này sang đường khác. Trong thực tế khái niệm traffic trunk và đường hầm là không tách rời nhau. Do đó thông tin được phân phối để xây dựng đường hầm chuyển mạch nhãn chính là các thuộc tính của traffic trunk. Các thuộc tính đó bao gồm:
Băng thông: Là lượng băng thông dành trước.
Độ ƣu tiên: Cho phép ta xác định đường hầm nào quan trọng hơn đường hầm nào. Mỗi đường hầm đều có một độ ưu tiên. Độ ưu tiên có giá trị từ 0 đến 7. Giá trị càng lớn thì độ ưu tiên càng thấp.
Độ ƣu tiên thiết lập (setup priority): là giá trị được sử dụng khi đường hầm được thiết lập lần đầu tiên để đường hầm cho biết rằng nó đang chiếm nguồn tài nguyên.
Độ ƣu tiên nắm giữ (holding priority): cho biết khả năng giữ nguồn tài nguyên. Giả sử đường hầm A được thành lập đầu tiên, sau đó đường hầm B được thành lập. Đường hầm B sẽ so sánh giá trị ưu tiên thiết lập của nó với giá trị ưu tiên nắm giữ của đường hầm A để có quyết định đúng đắn về nguồn tài nguyên mạng.
Thuộc tính Affinity: các nhà quản trị mạng thường dùng giá trị affinity để thiết lập các chính sách cho lưu lượng. Affinity là giá trị bất kì khi một bit trong trường cờ 32 bit đựơc bật lên. Nó giống như một đồ thị màu sắc, mỗi kết nối có
45
đến 32 màu. Và nhà quản trị sẽ quyết định màu sắc nào dành cho kết nối tuỳ thuộc vào giá trị affinity. Ví dụ, giả sử một đường hầm được sử dụng để vận chuyển lưu lượng có yêu cầu nghiêm ngặt về độ trễ thì nhà quản trị có thể đánh dấu màu sắc bất kì trên các kết nối mà đường hầm đi ngang qua để quy định về điều đó. Màu sắc đó chính là giá trị affinity.
Preemprion: Một số đường hầm có thể có vai trò quan trọng hơn đường hầm khác. Các đường hầm quan trong hơn này sẽ tự do loại bỏ đường hầm khác trên đường đi của chúng khi chúng muốn dành trước băng thông. Đây được gọi là sự chiếm đường hầm.
Metric: MPLS TE sử dụng metric lấy đường đi ngắn nhất cho đường hầm. Khi MPLS TE được cấu hình trên một kết nối, router có thể flood ra hai metric, IGP metric và TE metric.
Tính toán và thiết lập tuyến
Tính toán đường đi là công đoạn cần thiết phải có để quyết định đường đi nào đường hầm sẽ sử dụng để đi qua mạng. Có hai lựa chọn cho việc tính toán đường đi LSP TE, đó là tính toán offline và tính toán online. Tính toán offline là phương thức trong đó sử dụng các công cụ khác để tính toán đường đi cho mỗi LSP TE dựa trên các ràng buộc và các thuộc tính (như băng thông, affinity, metric, preemption…), mô hình mạng và nguồn tài nguyên mạng. Vì việc tính toán được thực hiện đồng thời trên tất cả các đường hầm chuyển mạch nhãn trong mạng, các dụng cụ offline cố gắng đạt được sự tối ưu mạng với nhiều đặc tính như sử dụng kết nối tối ưu nhất, độ trễ truyền nhỏ nhất, và đạt được tối đa lưu lượng mà mạng có thể mang được.
Cách tính toán đường đi thứ hai phụ thuộc vào việc tính toán đường đi được phân phối, trong đó mỗi router đầu đường hầm sẽ chịu trách nhiệm tính toán đường đi của LSP TE. Không có dụng cụ hay server nào khác chịu trách nhiệm tính toán đường đi trong mạng. Với phương pháp này, router sử dụng thuật toán CSPF (Constraint shortest path first) để tính toán LSP TE.
Như ta đã biết, thuật toán Dijiktra Shortest Path First (là tên của Edsger W. Dijiktra, người đã xây dựng thuật toán này) là thuật toán được sử dụng để xác định đường đi ngắn nhất giữa router đang thực hiện thuật toán với các router khác trong mạng. Vì tất cả các router chạy cùng một thuật toán, và tính toán đường đi theo một kiểu giống nhau nên mỗi router đều có một bức tranh chung về toàn mạng, các gói tin được định tuyến cố định tại mỗi hop.
Trong việc tính toán SPF, mỗi router duy trì hai danh sách:
- Một danh sách các node được biết trong đường đi ngắn nhất đến đích. Danh sách này được gọi là PATH.
46
- Một danh sách bao gồm các nexthop có thể hoặc không thể có trong đường đi ngắn nhất đến đích. Danh sách này được gọi là TENatitve hay TENT nói theo cách ngắn gọn.
Thuật toán CSPF có giải thuật cũng tương tự như thuật toán SPF. Nó cũng tính toán đường đi ngắn nhất. Nhưng thay vì chỉ sử dụng metric là chi phí như trong thuật toán SPF, thuật toán CSPF sử dụng nhiều tham số hơn, các tham số này được gọi là các tham số ràng buộc như băng thông, độ trễ, nguồn tài nguyên, các attribute…, để tính toán đường đi ngắn nhất.
Thuật toán hoạt động như sau:
- Bƣớc 1: Đặt “self” vào trong danh sách PATH với khoảng cách là 0, next-hop là chính nó. Thiết lập băng thông là 0.
- Bƣớc 2: Lấy một node và đặt vào trong danh sách PATH, gọi nó là PATH node. Quan sát danh sách láng giềng của node đó. Thêm mỗi láng giềng trong danh sách này vào danh sách TENT với next-hop là PATH node, trừ khi láng giềng đã có trong danh sách TENT hoặc PATH với chi phí (cost) thấp hơn. Không thêm đường đi này vào danh sách TENT trừ khi nó đáp ứng được các ràng buộc cho đường hầm như băng thông và affinity. Nếu một node vừa được thêm vào danh sách TENT đã tồn tại trong danh sách, nhưng có chi phí cao hơn hoặc băng thông nhỏ hơn, thì thay thể đường đi có chi phí cao hơn này bằng đường đi đã ở trong danh sách trước đó.
- Bƣớc 3: Tìm láng giềng trong danh sách TENT với chi phí thấp nhất, thêm láng giềng đó vào danh sách PATH. Lặp lại bước 2. Nếu danh sách TENT rỗng hoặc node đó là cuối đường hầm ở trong danh sách PATH thì dừng lại quá trình chạy thuật toán.
Có một vấn đề đặt ra là trong danh sách TENT có thể có trường hợp khi ta đặt vào đó một node và một node khác đã tồn tại trong danh sách này có cùng chi phí. Vậy làm sao để phân biệt các đường đi này với nhau. Ta có một số quy tắc để giải quyết vấn đề trên như sau:
- Lấy đường đi với băng thông có thể sử dụng được lớn nhất.
- Nếu vẫn còn trùng, lấy đường đi với hop count (số lượng router trên đường đi) nhỏ nhất.
- Nếu vẫn còn trùng, lấy một đường ngẫu nhiên.
Trong 2 cách tính toán đường đi mà ta nói ở trên. Đối với cách tính online, có ưu điểm là linh động hơn, có phản ứng với sự thay đổi về mạng cũng như lưu lượng tốt hơn, và hiệu quả hơn vì nó được phân phối một cách tự nhiên (vì nó không phụ thuộc vào một
47
server trung tâm nào cả). Nhưng nó có nhược điểm là tạo ra đường đi ít tối ưu hơn. Ngược lại, phương pháp tính toán offline cho phép chọn đường đi tối ưu hơn, mặc dù ít linh động, không có khả năng mở rộng và làm tăng chi phí quản lý.
Chuyển tiếp lƣu lƣợng vào một đƣờng hầm
Có ba phương pháp chuyển tiếp lưu lượng MPLS xuống đường hầm:
- Các tuyến tĩnh (Static routes): Cách đơn giản nhất để định tuyến một luồng lưu lượng xuống một giao tiếp đường hầm là sử dụng định tuyến tĩnh (static route). Nó hoạt động giống như định tuyến IP bình thường.
- Định tuyến dựa trên chính sách PBR(Policy Base Routing): Được phép sử dụng ánh xạ tuyến theo chính sách áp dụng cho giao tiếp ngõ vào. Với PBR bạn có thể gửi loại lưu lượng cụ thể xuống một giao tiếp đường hầm mà không cần sửa đổi bảng định tuyến của bộ định tuyến.
- Định tuyến tự động (Autoroute): Nếu có nhiều loại giao tiếp trong Cisco IOS Software (một giao tiếp vật lí, giao tiếp con, hau đường hầm GRE), bạn cần cho phép giao thức cổng nội (IGP – Interior Gateway Protocol) trên giao tiếp để thiết lập giao thức định tuyến láng giềng, học tuyến, và xây dựng một bảng định tuyến cho giao tiếp đó[3].