RIP là một giao thức định tuyến véc tơ khoảng cách phổ biến được thực hiện bởi các host và router TCP/IP. Nó được phân tán trong vòng một vài phát hành khởi đầu của UNIX vào giữa thập niên 80.
Các đặc tính chức năng cơ bản của RIP.
- Sử dụng thuật toán định tuyến véc tơ khoảng cách. - Sử dụng tham số host-count
- Các router broadcast toàn bộ cơ sở dữ liệu định tuyến 30s một lầ. - Đường kính mạng cực đại mà RIP hỗ trợ là 15hop.
- Nó không hỗ trợ VLSM (variable length subnet mask).
RIP nói chung là đơn giản trong cấu hình, chạy trên rất nhiều mạng cỡ trung bình và nhỏ, vì vậy nó được xác định là một giao thức định tuyến trong miền (interior). RIP 2 khắc phục một số nhược điểm của RIP 1 và nó hoạt động tương tự như RIP 1 và hỗ trợ VLSM. Để cung cấp cho các nhà quản lý mạng, những người cần quản lý không gian địa chỉ IPv4 một cách mềm dẻo hơn, thì OSPF được sử dụng thay thế. RIP được thiết kế như một giao thức broadcast, nhưng nó có thể gửi các bản tin đến các node non-broadcast . Khả năng này có thể rất hữu ích khi kết nối đến một router khác trên tuyến điểm-điểm (ví dụ từ router của ISP đến router của khách hàng). Có thể không cho phép sử dụng RIP trên các giao diện xác định. Để làm được như vậy thì các nhà quản lý mạng phải ngăn chặn các bản tin RIP được tạo ra trên các giao này.
U* Các bả n tin RIP
RIP chạy trên UDP do đó các bản tin của nó được đóng gói trong UDP datagram và nó chạy trên cổng số 520 (well-known port). Hình 2.7 dưới đây đưa ra định dạng các bản tin RIP
Hình 2.7: Định dạng bản tin RIP
Trong đó:
- Command có thể chứa giá trị từ 1 đến 6 nhưng có 2 giá trị phổ biến là 1 xác định bản tin yêu cầu và 2 xác định bản tin trả lời.
- Version có giá trị 1 hoặc 2 tương ứng RIP 1 và RIP 2
- Address family với cả 2 phiên bản được mã hoá là 2 cho các địa chỉ IP.
- Metric ở đây chính là hop-count
Các trường thông báo có thể được lặp 25 lần do đó hạn chế độ dài cực đại của bản tin RIP là nhỏ hơn 512 byte.
Đối với RIP 2 các trường dự trữ trong bản tin RIP 1 được mã hoá như sau:
- Routing domain xác định ‘routing deamon’được kết hợp với bản tin
này. Trong UNIX đây là trường ‘process ID’. Bằng cách sử dụng miền định tuyến, một máy có thể chạy nhiều RIP đồng thời.
- Route tag: Nếu RIP được sử dụng để hỗ trợ EGP thì trường này chứa
một số AS.
- Subnet mask được kết hợp với địa chỉ IP trong bản tin.
- Next-hop address chứa địa chỉ IP của nơi mà datagram nên được gửi
RIP 2 hỗ trợ nhận thực trong khi RIP 1 thì không. Mỗi gói RIP được nhận thực tại phía thu nên giao diện được cấu hình để hỗ trợ nhận thực. Thông thường, nhận thực MD5 được thực hiện mặc dù các router có thể có lựa chọn khác. Gói RIP 2 để nhận thực cũng có định dạng tương tự như trong hình 2.8:
Hình 2.8: Gói RIP 2 cho nhận thực
Trường ‘address family’được lập là 0xffff đối với gói nhận thực. Trường ‘authentication type’ được lập là 2 đối với thủ tục nhận thực plain-text và 3 đối với thủ tục MD5. Các byte ’authentication infor’ chứa ID như một số khoá, nó có thể là nhiều số. Người sử dụng nhiều số cho phép phía thu sắp xếp thành chuỗi các khoá và do đó sử dụng các khoá khác nhau cho các lần khác nhau. Các byte này cũng chứa các trường xác định thời gian sống của khoá hay các khóa. Mỗi xác định khoá trong gói được kết hợp với một khoá được lưu trữ, xác định khoá và các giá trị được kết hợp với bản tin xác định thuật toán nhận thực và khoá nhận thực MD5 đặc biệt được sử dụng cho hoạt động nhận thực. RIP 1 và RIP 2 có thể hoạt động một mình hoặc kết hợp với nhau.
U* Các vấn đề về hội tụ và một số giải pháp khắc phục
Cập nhật RIP hầu như đơn giản nhưng nó gây ra một số vấn đề. Nó có khả năng gửi lưu lượng qua một đường không hiệu quả hay có thể cập nhật định tuyến mất quá nhiều thời gian để đạt được hội tụ khi miền định tuyến không ổn định và chuyển lưu lượng không hiệu quả, có thể không chính xác. Do đó có thể gây ra loop hay sự cố đếm vô hạn. phần lớn các thực hiện RIP đều thực hiện các giải pháp để khắc phục sự cố đếm vô hạn. Một thay đổi quyết định là loại bỏ định thời 30s và khi một router có một cập nhật định tuyến nó sẽ gửi đi ngay lập tức. Với giải pháp này các cập nhật trung gian
không giải quyết được vấn đề, nhưng nó tăng tốc độ đạt được hội tụ. Một số giải pháp khác được đưa ra dưới đây.
1. Trượt ngang (split horizon): Với giải pháp này ý tưởng của nó là
không cho phép router gửi thông báo qua giao diện mà nó vừa đến. Nó là trong hầu hết các tình huống nhưng không hoàn toàn vì nếu mạng vật lý có cấu hình bị loop thì sự cố đếm vô hạn vẫn tồn tại.
2. Trượt ngang với đảo ngược poison: Đây là một biến thể của trượt
ngang, nó gửi thông báo tới giao diện nó vừa đến với metric bằng 16.
3. Holddown được tăng cường cho giao thức véc tơ khoảng cách khi một
tuyến được thông báo là ‘unreachable’ thì router thông báo sẽ từ chối cập nhật trong một khoảng thời gian sau khi tuyến được thông báo. Nó làm tăng thời gian hội tụ nhưng tránh được loop. RIP không sử dụng holddown nhưng các giao thức vectơ khoảng cách khác như IGRP (Intergateway Routing Protocol) của Cisco thì có sử dụng. Với IGRP, khi router biết một mạng bị down hoặc một mạng có khoảng cách lớn hơn so với thông báo thì tuyến đến mạng đó được đặt trong holddown. Trong thời gian này, tuyến có thể được thông báo những thông báo đầu vào về tuyến này từ bất kỳ router nào khác router đã thông báo trước đó đều bị huỷ bỏ.
Người ta có thể không muốn sử dụng trượt ngang trên các link nối tiếp (non-broadcast ) như X25, frame relay, ATM. Các router có thể được cấu hình để không cho phép trượt ngang.
* Điều chỉnh định thời:
Phần lớn các router high-end có được thể cấu hình để biến đổi tần số cập nhật định tuyến RIP và các tham số khác. Cisco chạy một loạt các đồng hồ định thời (timer) cho các hoạt động định tuyến theo yêu cầu ODR (on deman routing) đối với RIP. Các tham số cấu hình RIP sau là khả dụng đối với nhà quản lý mạng.
1. Update: là khoảng thời gian giữa các lần cập nhật và nó có giá trị mặc
định là 30s.
2. Invalid: khoảng thời gian để sau đó một tuyến không hợp lệ, nó là
không hợp lệ nếu nó không được cập nhật. Tuyến không thể truy nhập mạng sau đó sẽ vào holddown. Nó có thể vẫn được sử dụng cho chuyển phát gói, giá trị mặc định của nó là 180s.
3. Holddown là khoảng thời gian mà thông tin trên các tuyến tồi hơn bị
loại bỏ,giá trị này nên bằng 3 lần giá trị update. Khi hết thời gian holddown, các tuyến được thông báo bởi các nguồn khác được chấp nhận và tuyến đó có thể truy cập. Giá trị mặc định của nó là 180s.
4. Flush là tổng thời gian một thực thể định tuyến phải duy trì trong
bảng định tuyến trước khi bị loại bỏ. Nó ít nhất phải bằng tổng của invalid và holddown. Giá trị mặc định của nó là 240s.
5. Sleep time là tổng thời gian cập nhật định tuyến. Nếu một router chấp
nhận cập nhật tức thì, thì tham số này sẽ được cấu hình. Nó nên nhỏ hơn thời gian update và được sử dụng cho hoạt động ODR của Cisco nhưng không khả dụng đối với RIP.
Để thiết lập việc điều khiển thông tin định tuyến được truyền bá như thế nào qua router đến/từ các giao diện. Các router có thể được thiết lập để cung cấp các bộ lọc RIP sau.
- Tránh cập nhật định tuyến qua một giao diện nhằm tránh các router khác nhau trên một LAN biết về các tuyến động.
- Điều khiển việc thông báo về các tuyến trong cập nhật định tuyến cho phép nhà quản lý mạng cấm các tuyến đang được thông báo trong cập nhật RIP .
- Điều khiển xử lý cập nhật định tuyến, nó không cho phép tuyến ‘discovered’ được xử lý.
- Lọc các nguồn thông tin định tuyến, nó có thể xảy ra trường hợp một tuyến tốt hơn được tìm thấy qua giao thức định tuyến khác.
Một số giao thức định tuyến xử lý thông tin chính xác hơn các giao thức khác, nó có thể thiết lập mức ưu tiên cho các nguồn khác nhau đối với một router. Đặc điểm này cho phép nhà quản lý mạng lựa chọn một giao thức cho một giao diện.
* C
ấu hình một miền định tuyến RIP:
Để cấu hình một miền định tuyến RIP thì các router phải được cấu hình để thực hiện các nhiệm vụ dưới đây. Một số nhiệm vụ là rõ ràng nhưng một số khác cần giải thích thêm.
- Cho phép RIP là nhiệm vụ duy nhất được yêu cầu cấu hình để router thực hiện hoạt động RIP .
- Cho phép cập nhật unicast cho RIP. RIP sẽ vận hành như một giao thức broadcast trừ khi nhiệm vụ này được cấu hình. Với nhiệm vụ này, các nhà quản lý mạng có thể điều khiển các quyết định trao đổi thông tin định tuyến.
- Áp dụng offset đối với các tham số (metric) định tuyến. Trong khi RIP là giao thức hop-count, nhiệm vụ này có thể được sử dụng để tăng metric đến các tuyến được biết bởi RIP. Nó cho phép nhà quản lý mạng coi trọng hơn các khám phá RIP.
- Điều chỉnh timer và xác định phiên bản của RIP
- Cho phép nhận thực RIP. RIP 2 hỗ trợ nhận thực có thể thiết lập (plain-text, MD5). Để sử dụng MD5 thì các khoá phải được thiết lập và xác định,một trương thời gian sống phải được xác định cho một bộ khoá trên một ‘chain’. Mỗi khoá phải được xác định với một ‘key ID’và key được lưu trữ cục bộ. Key ID và giao diện kết hợp với key xác định đơn nhất thuật toán nhận thực và MD5 được sử dụng.
- Không cho phép tóm tắt tuyến. Tóm tắt tuyến được thực hiện tự động bởi RIP2. các prefix mạng con được tóm tắt khi chuyển qua đường biên mạng. Nếu miền định tuyến có các mạng con không liên tục thì tóm tắt định tuyến có thể bị huỷ bỏ.
- Sử dụng IGRP và RIP đồng thời. Nếu nhiệm vụ này được phép thì thông tin định tuyến IGRP gạt bỏ thông tin RIP vì sử dụng quản lý IGRP. Các giao thức này sử dụng các đồng hồ định thời khác nhau khiến một phần của miền định tuyến tin RIP một phần khác tin IGRP. Hội tụ sẽ xảy ra nhưng tình huống này ảnh hưởng đến các ứng dụng nhậy cảm với thời gian.
- Không cho phép sự hợp lệ của địa chỉ IP nguồn. Đối với mục đích bảo an, một địa chỉ IP nguồn cho một bản tin cập nhật RIP là không hợp lệ. Nhiệm vụ này thoả mãn yêu cầu lọc trên một giao diện, nó cũng là một ‘trap door’ cho một miền định tuyến.
- Cấu hình trễ giữa các gói.
- Cho phép/không cho phép trượt ngang. - Lọc thông tin RIP và quản lý khóa
- VLSM là một công cụ tốt để sử dụng địa chỉ IP.