1. Nội dung thiết kế tốt nghiệp:
4.6. GIAO THỨC ĐỊNH TUYẾN RIPng
Giao thức RIPng (RIPv6) là một trong số các giao thức định tuyến dựa trên thuật toán định tuyến Distance Vector (Vector khoảng cách). RIPng thuộc nhóm các giao thức định tuyến IGP sử dụng bên trong một hệ thống AS. Giao thức này thường chỉ phù hợp với các hệ thống vừa và nhỏ, không thích hợp với các hệ thống lớn và phức tạp.
Theo thuật toán định toán định tuyến Distance Vector, mỗi router trong hệ thống sẽ phát tới Neighbor của mình toàn bộ bảng định tuyến một cách định kỳ. Mỗi router sau đó dựa vào các thông tin nhận được từ Neighbor sẽ xác định được các tuyến đường tới bất kỳ đích nào. Độ đo được giao thức RIPng sử dụng để so sánh các tuyến đường khác nhau là hop- count, tức là số chặng mà gói một gói sẽ phải đi qua để tới đích. Gói đi qua một router được tính đi qua một chặng. Tuyến đường phải đi qua ít chặng hơn để tới đích là tuyến đường ngắn hơn.
RIPng giới hạn số chặng tối đa là 15, tuyến đường có độ đo bằng 16 có nghĩa là đích không tới được (destination unreachable) và sẽ không được sử dụng để định tuyến. Thông thường, tuyến đường từ router tới mạng mà nó nối trực tiếp tới có giá trị
độ đo bằng 1. Người quản trị hệ thống cũng có thể cấu hình giá trị này lớn hơn trong trường hợp cần thiết.
Mỗi router chạy giao thức RIPng đều phải duy trì một bảng định tuyến. Mỗi đầu vào của bảng định tuyến là một tuyến tới một đích gồm:
- Tiền tố Ipv6 của mạng đích cùng độ dài tiền tố. Nếu tiền tố này có độ dài 128 thì có nghĩa đích của tuyến là một host cụ thể.
- Địa chỉ unicast liên kết cục bộ của router neighbor.
- Giá trị độ đo: Biểu diễn tổng số chặng mà gói phải đi qua để tới mang đích (biểu diễn bởi tiền tố đích ở trên).
- Một số cờ thông báo về sự thay đổi thông tin của một tuyến. - Các giá trị thời gian gắn liền với tuyến.
- Định danh của giao diện mà router sử dụng cho tuyến.
Bảng 4.1: Ví dụ về bảng định tuyến
Network Next Hop I
f M et T ag T ime C 2003:0:01:: /64 :: E th0 1 0 R 2003:0:02:: /64 Fe80::260:97ff:fe11 :4c61 E th0 2 0 0 2:26 R 2003:0:04:: /64 Fe80::260:b0ff:feb4 :7bf5 E th1 3 0 0 2:18 S 2003:0:05:: /64 :: E th1 1 0
• Hoạt động của router chạy giao thức RIPng
Theo định kỳ 30 giây, router chạy RIPng sẽ gửi tới tất cả các neight của mình toàn bộ bảng định tuyến bằng các bảng tin Response (hồi đáp). Các bản tin Response được
đóng gói trong các gói Ipv6. Hai router được coi là Neighbor nếu cùng chia sẻ một liên kết.
Giao thức RIPng sử dụng địa chỉ nguồn của gói Ipv6 chứa các bản tin RIPng là địa chỉ unicast liên kết cục bộ của giao diện sẽ phát bản tin đi. Địa chỉ đích sử dụng là địa chỉ multicast được định nghĩa dành riêng cho giao thức RIPng, đó là địa chỉ FF2::9. Cổng UDP sử dụng là cổng RIPng 512. Đặc biệt, trường Hop limit trong gói bằng 1, giới hạn số chặng mà một bản tin sẽ đi qua là 1 do đó phạm vi mà các bản tin RIPng có thể tới chỉ là các router Neighbor. Tất cả các router RIPng đương nhiên cũng luôn sẵn sàng lắng nghe để nhận các bản tin RIPng ở địa chỉ FF02::9, cổng UDP 521.
RIPng cũng sử dụng phương pháp Triggerd Updates để gửi tới các neighbor thông tin về một tuyến tức thì ngay khi trạng thái của tuyến thay đổi. Khi nhận được một bản tin định tuyến từ router neighbor, tính hợp lệ của gói tin Ipv6 và tính hợp lệ của bản tin RIPng được kiểm tra chặt chẽ. Sau đó mỗi khối RTE trong bản tin lần lượt được sử dụng. Như trên đã mô tả, mỗi khối RTE thực chất là một tuyến trong bảng định tuyến của router neighbor, thông tin về tuyến gồm tiền tố mạng đích, độ dài tiền tố mạng đích và giá trị metric của tuyến. Nếu RTE chứa thông tin về một tuyến mà bảng định tuyến chưa có thì router sẽ đưa tuyến mới này vào bảng định tuyến:
Thiết lập một tiền tố đích cùng độ dài tiền tố vào bảng.
Giá trị độ đo của tuyến bằng giá trị độ đo trong RTE cộng thêm giá trị trọng số liên kết giữa router và router neighbor đã phát bản tin chứa RTE này. Công thức để tính giá trị metric của tuyến là:
Metric = min[(metric1+cost), 16]
Metric1: Giá trị độ đo trong RTE gửi đến từ Neighbor
Cost: Trọng số liên kết từ router tới router neighbor, trong trường hợp thông thường thì cost này bằng 1.
Giá trị Next- hop trong bảng đặt bằng địa chỉ unicast liên kết cục bộ của router neighbor đã phát bản tin. Địa chỉ unicast liên kết cục bộ này nằm trong trường địa chỉ nguồn của gói Ipv6 đã mang bản tin.
Trong trường hợp RTE nhận được mang thông tin về một tuyến đã tồn tại trong bảng với giá trị metric mới hoặc từ một neighbor khác, tuyến này sẽ được tính toán lại cho phù hợp. Khi nhận được thông tin về cùng một tuyến từ các neighbor khác nhau gửi đến, router sẽ chọn chặng tiếp theo là neighbor đã gửi thông tin về tuyến với giá trị độ đo nhỏ nhất.
Trong quá trình vận hành, cập nhật bảng định tuyến từ Neighbor, mỗi tuyến trong bảng luôn được điều khiển bởi các biến thời gian. Sự thay đổi của các biến thời gian này tương ứng với sự biến đổi trạng thái của tuyến, điều này quyết định sự ứng xử của router với tuyến. Một tuyến trong bảng định tuyến có thể có các trạng thái sau:
UP: Một tuyến được xem là UP nếu giá trị độ đo của nó nhỏ hơn vô cùng ( nhỏ hơn 16). Chỉ tuyến nào ở trạng thái UP mới được sử dụng để định tuyến cho giao thông mạng. Mỗi tuyến sẽ tồn tại ở trạng thái UP trong thời gian bằng 6 lần chu kỳ cập nhật (180 giây), thời gian này gọi là định thời của tuyến (router timer), định thời của tuyến được thiết lập lại mỗi lần tuyến được cập nhật và sửa đổi lại. Khi hết thời gian này, tuyến sẽ chuyển sang trạng thái Garbage- collection.
Garbage- collection: Sau khi hết thời gian router timer, tuyến chuyển sang trạng thái Garbage- collection và tồn tại ở trạng thái này trong thời gian Garbage- collection timer, thời gian này bằng 4 lần chu kỳ cập nhật (120 giây). Nếu hết thời gian này mà tuyến không được cập nhất thì nó bị xóa khỏi bảng, nếu tuyến được cập nhật thì nó trở về trạng thái UP với giá trị độ đo mới hoặc chặng tiếp theo khác.
Hold- down: Một tuyến đang ở trạng thái UP sẽ chuyển sang trạng thái Hold- down nếu như nhận được cập nhật của nó với độ đo bằng vô cùng (16). Tuyến này sẽ tồn tại ở trạng thái này trong khoảng thời gian bằng 4 lần chu kỳ cập nhật gọi là Hold- down timer. Nếu trong khoảng thời gian này mà tuyến được cập nhật với độ đo nhỏ hơn vô cùng thì nó lại về trạng thái UP. Quá thời gian này tuyến chuyển về trạng thái Garbage- collection. Mục đích của Hold- down là tạo ra khoảng thời gian cho phép để các router khác nhận được cập nhật vừa rồi.
Một tuyến tồn tại ở trạng thái Garbage- collection quá thời hạn (Garbage- collection timer) sẽ bị xóa khỏi bảng khoảng cách (trạng thái Down).
Hình 4.1: Sơ đồ chuyển trạng thái trong RIPng
Router chạy giao thức RIPng có thể vận hành theo một trong hai chế độ: Chủ động (active mode)
Thụ động (passive mode)
Router chạy chế độ thụ động chỉ lắng nghe và nhận thông tin cập nhật từ các router neighbor mà không gửi thông tin cập nhật từ bảng định tuyến của mình tới các router khác. Trong khi đó, router chạy ở chế độ chủ động sẽ đồng thời làm cả hai việc trên.
Giao thức RIPng dựa trên thuật toán định tuyến Distance Vector nên cũng đối mặt với vấn đề “đếm tới vô cùng” và “định tuyến quẩn” (routing loop). Để ngăn chặn các hiện tượng này, RIPng cũng sử dụng các phương pháp truyền thống.
Trước hết, RIPng giới hạn số chặng tối đa là 15 nên hiện tượng đếm đến vô cùng sẽ kết thúc khi đếm đến 16. Giao thức RIPng cũng sử dụng phương pháp Triggerd Updates để cập nhật ngay những tuyến thay đổi trong bảng định tuyến (không phải toàn bộ bảng định tuyến). Phương pháp này cũng làm cho quá trình đếm đến vô cùng (đếm đến 16) diễn ra nhanh hơn. Các vòng lặp giữa nhiều hơn 2 router sẽ bị ngăn chặn bởi các phương pháp này.
Đối với vòng lặp giữa hai router, giao thức cho phép người quản trị có thể cấu hình cho từng giao diện có sử dụng phương pháp Split Horizon hay không khi gửi
thông tin về bảng định tuyến neighbor. Người quản trị cũng có thể lựa chọn phương pháp Split Horizon with Poison Reverse.
Ưu điểm của RIPv6 là đơn giản và dễ cấu hình. Khuyết điểm là lưu lượng thông tin trao đổi giữa các router quá nhiều, thời gian hội tụ (convergence time) lâu, không dùng được cho mạng lớn hoặc quá lớn.