Tìm hiểu giao thức RIP

Giới thiệu về RIP

Ngày nay, một liên mạng có thể lớn đến mức một giao thức định tuyến không thể xử lý công việc cập nhật các bảng định tuyến của tất cả các bộ định tuyến. Vì lý do này, liên mạng được chia thành nhiều hệ thống tự trị (AS-Autonomous System). Hệ thống tự trị là một nhóm các mạng và bộ định tuyến có chung chính sách quản trị. Nó đôi khi còn được gọi là miền định tuyến (routing domain). Các giao thức định tuyến được sử dụng bên trong một AS được gọi là giao thức định tuyến nội miền IGP (Interior Gateway Protocol). Để thực hiện định tuyến giữa các AS với nhau chúng ta phải sử dụng một giao thức riêng gọi là giao thức định tuyến ngoại miền EGP (Exterior Gateway Protocol). Routing Information Protocol (RIP) được thiết kế như là một giao thức IGP dùng cho các AS có kích thước nhỏ, không sử dụng cho hệ thống mạng lớn và phức tạp.

RIP xuất hiện sớm nhất vào 6/1988 và đước viết bởi C. Hedrick trong Trường Đại học Rutgers. Được sử dụng rộng rãi nhất và trở thành giao thức định tuyến phổ biến nhất trong định tuyến mạng.

RIP đã chính thức được định nghĩa trong hai văn bản là: Request For Comments (RFC) 1058 và 1723. RFC 1058 (1988) là văn bản đầu tiên mô tả đầy đủ nhất về sự thi hành của RIP, trong khi đó RFC 1723 (1994) chỉ là bản cập nhật cho bản RFC 1058.

RIP có 2 phiên bản là, RIPv1 và RIPv2, RIPv2 thừa hưởng tất cả các ưu điểm của RIPv1 và khắc phục được những yếu điểm của RIPv1. Vì vậy, RIPv2 được sử dụng rộng rãi hơn RIPv1.

Định nghĩa giao thức RIP

RIP là một giao thức định tuyến miền trong được sử dụng cho các hệ thống tự trị. Giao thức thông tin định tuyến thuộc loại giao thức định tuyến khoảng cách véctơ, giao thức sử dụng giá trị để đo lường đó là số bước nhảy (hop count) trong đường đi từ nguồn đến đích. Mỗi bước đi trong đường đi từ nguồn đến đích được coi như có giá trị là 1 hop count. Khi một bộ định tuyến nhận được 1 bản tin cập nhật định tuyến cho các gói tin thì nó sẽ cộng 1 vào giá trị đo lường đồng thời cập nhật vào bảng định tuyến. Screenshot from 2016-12-27 00-08-17.png

Thuật toán

RIP sử dụng thuật toán định tuyến theo véctơ khoảng cách DVA (Distance Véctơ Algorithms) Thuật toán Véctơ khoảng cách: Là một thuật toán định tuyến tương thích nhằm tính toán con đường ngắn nhất giữa các cặp nút trong mạng, dựa trên phương pháp tập trung được biết đến như là thuật toán Bellman-Ford. Các nút mạng thực hiện quá trình trao đổi thông tin trên cơ sở của địa chỉ đích, nút kế tiếp, và con đường ngắn nhất tới đích.

RIP timer

Giao thức RIP sử dụng một số timer sau:

  • Route update timer: là thời gian trao đổi thông tin định tuyến của Router với tất cả các active interface. Thông tin ở đây là toàn bộ bảng định tuyến và thởi gian định kỳ là 30s.
  • Routing invalid Timer: là khoảng thời gian xác định một tuyến đường invalid. Được bắt đầu nếu hết thời gian Hold time mà không nhận được update, sau khoảng thời gian đó Router sẽ gửi một update tới tất cả các Interface là tuyến đường đó đã invalid.
  • Holddown timer: giá trị này được sử dụng khi có thông tin định tuyến bị thay đổi. Sau khi nhận thông tin thay đổi, Router đặt tuyến đường đó vào trạng thái hold-down. Điều này có nghĩa là Router không gửi quảng bá cũng như không nhận quảng bá về thông tin đó trong khoảng thời gian Hold down timer. Sau khoảng thời gian này Router mới nhận và gửi thông tin về tuyến đường đó. Điều này làm giảm thông tin sai mà Router học được. Giá trị mặc định là 180 giây.
  • Route flush timer: là khoảng thời gian được tính từ khi tuyến đường ở trạng thái không hợp lệ đến khi tuyến bị xoá khỏi bảng định tuyến. Giá trị Route invalid timer phải nhỏ hơn giá trị Route flush timer vì Router cần thông báo tới các Router bên cạnh của nó về trạng thái invalid của tuyến đường đó trước khi local routing được update.

Một số lỗi của RIP

RIP phải xử lý một số lỗi do thuật giải cơ sở gây ra. Đầu tiên là rong suốt thời gian holddown, router nhận được thông tin cập nhật từ một router láng giềng khác nhưng thông tin này cho biết có đường đến mạng X với thông số định tuyến tốt hơn con đường mà router trước đó thì nó sẽ bỏ qua, không cập nhật thông tin này.

Tiếp theo là lỗi đếm vô hạn. Định tuyến lặp có thể xảy ra khi bảng định tuyến trên các router chưa được cập nhật do quá trình hội tụ chậm. Screenshot from 2016-12-27 00-09-53.png

Khi không có lỗi, bảng định tuyến trên các router đối với mạng đích:

  • D: directly connected, metric 1
  • B: route via D, metric 2
  • C: route via B, metric 3
  • A: route via B, metric 3

Liên kết B-D bị đứt, các routers nên sử dụng liên kết C-D. Tuy nhiên phải mất một khoảng thời gian. Quá trình diễn ra bắt đầu từ khi B phát hiện ra đường đi đến D không sử dụng được nữa. Screenshot from 2016-12-27 00-10-15.png

Ban đầu B phát hiện khong đi được đến đích. Nhưng A và C vẫn chưa được cập nhật. B lại nghĩ là có thể đi đến đích qua C. Và quảng bá đường đi đó... Quá trình này có thể lặp vô hạn đối với một số trường hợp.

Với các giao thức định tuyến vector khoảng cách sử dụng thông số là số lượng hop thì mỗi khi router chuyển thông tin cập nhật cho router khác, chỉ số hop sẽ tăng lên 1. Việc cập nhật sai về bảng định tuyến như trên sẽ bị lặp vòng như vậy mãi cho đến khi nào có một tiến trình khác cắt đứt được quá trình này. RIP sử dụng một giá trị vừa đủ nhỏ, 16 hop để gán cho khoảng cách tối đa có thể có. Để tránh lỗi lặp vô hạn, sử dụng ỹ thuật cắt hàng ngang (split horizon update): bộ định tuyến sẽ không cập nhật thông về tuyến đường ngược trở về bộ định tuyến mà từ đó đã nhận được thông tin về tuyến đường Screenshot from 2016-12-27 00-10-33.png