Bài viết này sẽ review lại hoạt động của giao thức RIP – một trong các
giao thức định tuyến được đề cập đến trong chương trình CCNA.
Đầu tiên, chúng ta cùng trao đổi lại một vài đặc điểm của RIP:
1. RIP là một giao thức distance – vector điển hình. Mỗi router sẽ gửi
toàn bộ bảng định tuyến của nó cho router láng giềng theo định kỳ
30s/lần. Thông tin này lại tiếp tục được láng giềng lan truyền tiếp cho
các láng giềng khác và cứ thế lan truyền ra mọi router trên toàn mạng.
Kiểu trao đổi thông tin như thế còn được gọi là “lan truyền theo tin
đồn”. (Ở đây, ta có thể hiểu router láng giềng là router kết nối trực
tiếp với router đang xét).
2. Metric trong RIP được tính theo hop count – số node lớp 3 (router)
phải đi qua trên đường đi để đến đích. Với RIP, giá trị metric tối đa là
15, giá trị metric = 16 được gọi là infinity metric (“metric vô hạn”),
có nghĩa là một mạng chỉ được phép cách nguồn tin 15 router là tối đa,
nếu nó cách nguồn tin từ 16 router trở lên, nó không thể nhận được nguồn
tin này và được nguồn tin xem là không thể đi đến được.
3. RIP chạy trên nền UDP – port 520.
4. RIPv2 là một giao thức classless còn RIPv1 lại là một giao thức classful.
5. Cách hoạt động của RIP có thể dẫn đến loop nên một số quy tắc chống
loop và một số timer được đưa ra. Các quy tắc và các timer này có thể
làm giảm tốc độ hội tụ của RIP.
6. AD của RIP là 120.
Ta cùng khảo sát hoạt động “lan truyền theo tin đồn” của RIP bằng một ví dụ như sau:
Hình 1 – Sơ đồ ví dụ 1.
Trên hình 1 là sơ đồ kết nối của 03 router R1, R2 và R3. Các router này
được kết nối với nhau bằng các đường serial point – to – point mô tả các
kết nối leased – line. Bản thân mỗi router lại đấu nối xuống các mạng
LAN bằng các cổng F0/0 của chúng. Quy hoạch IP cho các phân đoạn mạng
được mô tả chi tiết trên sơ đồ.
Như đã thảo luận trong bài viết trước, khi chưa chạy định tuyến mỗi
router chỉ biết các mạng kết nối trực tiếp trên các cổng đấu nối của
mình và đưa các subnet này vào bảng định tuyến. Trên hình 1 cũng hiển
thị bảng định tuyến của mỗi router tại thời điểm đầu tiên khi chưa chạy
định tuyến. Các giá trị “0” bên cạnh phản ánh rằng metric để đi đến các
mạng này bằng 0 theo quan điểm metric của RIP (các mạng này đều kết nối
trực tiếp nên để đi đến chúng không phải bước qua router nào cả).
Tiếp theo, để các router có thể lấy được thông tin của nhau, ta thực
hiện chạy định tuyến RIP trên các router để chúng quảng bá thông tin cho
nhau bằng cách vào các router bật RIP trên các cổng thích hợp. Câu lệnh
để bật RIP sẽ được đề cập đến sau trong bài viết. Ở bước này, ta chỉ
khảo sát hoạt động của RIP.
Như đã nói, RIP hoạt động theo kiểu Distance – vector, mỗi router sẽ gửi
toàn bộ bảng định tuyến của mình cho các router láng giềng theo định
kỳ. Không mất tính tổng quát, ta giả sử R3 sẽ gửi cho R2 trước tiên bảng
định tuyến của mình.
Hình 2 – R3 gửi cho R2 bảng định tuyến của nó.
Khi R2 nhận bảng định tuyến này, nó sẽ kiểm tra thông tin và tiếp nhận
những route nó chưa có. Có một route 192.168.3.0/24 mà R2 chưa có trong
bảng định tuyến, nó sẽ tiếp nhận route này vào bảng định tuyến của nó.
Sau khi đã tiếp nhận xong thông tin từ R3, bảng định tuyến từ R2 sẽ là:
Hình 3 – Bảng định tuyến của R2.
Ta thấy route mới được cập nhật chỉ cổng ra là S2/1 vì route này được
cập nhật từ phía cổng S2/1, và nó chỉ ra rằng để đi đến được mạng
192.168.3.0/24, gói tin từ R2 phải được đẩy ra cổng S2/1. Thêm nữa, ta
cũng thấy metric của route này được tăng thêm 1 đơn vị khi lan truyền
qua thêm một router. Quan sát trên hình 1, ta cũng thấy rõ ràng rằng từ
R2 muốn đi đến được mạng 192.168.3.0/24 , ta phải bước qua một con
router (R3) trên đường đi.
Tiếp theo, đến lượt router R2 lại đem toàn bộ bảng định tuyến của mình gửi cho R1:
Hình 4 – R2 gửi bảng định tuyến của nó cho R1.
Khi R1 nhận bảng định tuyến này, nó sẽ kiểm tra thông tin và tiếp nhận
những route nó chưa có. Có hai route là 192.168.23.0/24 và
192.168.3.0/24 mà R1 chưa có trong bảng định tuyến, nó sẽ tiếp nhận các
route này vào bảng định tuyến. Sau khi đã tiếp nhận xong thông tin từ
R2, bảng định tuyến từ R1 sẽ là:
Hình 5 – Bảng định tuyến của R1.
Bảng định tuyến của R1 có thêm các route mới học được: 192.168.23.0/24,
cổng ra là S2/0, metric = 1 và 192.168.3.0/24, cổng ra S2/0 với metric =
2. Quan sát lại trên sơ đồ mạng ở hình 1, ta thấy các thông tin này đã
được cập nhật hoàn toàn đúng đắn.
Như vậy sau một lượt lan truyền thông tin định tuyến từ R3 đến R1, các
subnet phía R3 đã được học trên toàn mạng. Quá trình học này bắt đầu từ
láng giềng R2 của R3, sau đó lan từ R2 sang R1. Kiểu lan truyền này được
gọi một cách hình ảnh là “lan truyền theo tin đồn”: R3 “đồn” thông tin
của nó sang R2, R2 lại “đồn” tiếp thông tin sang R1. Chúng ta cần nắm
vững nguyên tắc hoạt động này của Distance – vector vì các giao thức
thuộc trường phái link – state như OSPF lại hoạt động hoàn toàn khác:
thông tin định tuyến được gửi đi không phải là các route trong bảng định
tuyến mà là các “trạng thái đường link” trong bảng cơ sở dữ liệu trạng
thái đường link, và được gửi đi đến mọi router trong vùng chứ không phải
là chỉ gửi đi cho láng giềng như đối với Distance – vector.
Cuối cùng, sau một vài lượt “lan truyền theo tin đồn” như đã mô tả ở
trên, kết quả hội tụ cuối cùng của các bảng định tuyến trên các router
sẽ là:
Hình 6 – Kết quả hội tụ cuối cùng của ví dụ 1.
Các router đều đã học được các subnet ở xa không kết nối trực tiếp thông
qua chạy giao thức định tuyến, đảm bảo đi đến được mọi nơi trong hệ
thống mạng.
Với kiểu hoạt động này, mỗi router đều phải tin tưởng tuyệt đối vào
thông tin định tuyến nhận được từ người láng giềng của mình, từ đó dẫn
đến có thể xảy ra hiện tượng loop trên sơ đồ chạy Distance – vector. Để
hiểu rõ vấn đề, ta cùng quan sát tiếp ví dụ đã nêu ở trên trong trường
hợp mạng 192.168.3.0/24 bị down:
Hình 7 – Mạng 192.168.3.0/24 down.
Như mô tả trên hình 7, khi mạng 192.168.3.0/24 down, R3 loại bỏ mạng này
ra khỏi bảng định tuyến và xem như không biết thông tin gì về mạng này.
Một thời gian ngắn sau, khi đến hạn, R2 lại gửi toàn bộ bảng định tuyến
của nó qua cho R3. R3 tiếp nhận thông tin định tuyến mới và thấy rằng
trong khối thông tin mà R2 chuyển sang cho nó có mạng 192.168.3.0/24 mà
nó không biết, R3 cập nhật thông tin này vào bảng định tuyến của mình:
Hình 8 – Bảng định tuyến của R3.
Ta thấy R3 đã cập nhật thông tin định tuyến một cách sai lầm và chỉ một
đường hoàn toàn sai đến mạng 192.168.3.0/24 không còn tồn tại nữa! Chưa
dừng lại ở đó, khi đến hạn, R3 lại tiếp tục gửi bảng định tuyến của nó
sang cho R2. Khi R2 tiếp nhận thông tin từ R3, R2 thấy rằng thông tin
mạng 192.168.3.0/24 mà nó học từ R3 trước đó đã có sự thay đổi về metric
và nó cập nhật lại thông tin metric này:
Hình 9 – Bảng định tuyến của R2.
Cứ như thế R2 và R3 trao đổi thông tin định tuyến cho nhau và thông tin
về metric của route 192.168.3.0/24 ngày một sai lệch – tăng lên sau mỗi
lần trao đổi.
Khi một gói tin định đi đến mạng 192.168.3.0/24 đi đến R2, R2 sẽ tra
bảng định tuyến rồi đẩy nó sang R3 theo cổng ra là S2/1 R3 khi tiếp nhận
gói tin này lại tra bảng định tuyến rồi đẩy ngược lại R2, R2 khi nhận
được lại đẩy trở lại về R3,… Từ đó tạo nên một vòng loop trong vận
chuyển gói tin (xem hình 10).
Hình 10 – Loop trong định tuyến.
Các quy tắc chống loop
Để khắc phục hiện tượng này, RIP sử dụng một quy tắc chống loop gọi là quy tắc Split – horizon.
Luật Split – horizon:
Khi router nhận được cập nhật định tuyến của một mạng từ phía cổng nào
thì nó không gửi ngược lại cập nhật cho mạng ấy về phía cổng mà nó nhận
được nữa.
Theo cách này, trở lại ví dụ trên, khi R2 đã nhận cập nhật định tuyến
cho mạng 192.168.3.0/24 từ cổng S2/1 thì trong những lần gửi cập nhật
định tuyến về phía cổng S2/1, nó sẽ loại ra không gửi thông tin
192.168.3.0/24 đi nữa. Từ đó R3 sẽ không nhận được thông tin định tuyến
sai lệch khi mạng 192.168.3.0/24 của nó bị down.
Hình 11 – R2 sẽ không gửi ngược thông tin nó học được từ R3 về cho R3.
Ngoài ra, khi xảy ra các sự cố down mạng như trên, RIP còn sử dụng thêm
các quy tắc sau để thúc đẩy nhanh hơn tiến trình cập nhật định tuyến và
hỗ trợ cho tiến trình chống loop:
Route – poisoning:
Khi một subnet kết nối trực tiếp chuyển sang down, router sẽ gửi đi một
bản tin cập nhật cho subnet này có metric = 16 (infinity metric) cho
láng giềng của nó. Router láng giềng khi nhận được bản tin này sẽ cập
nhật được rằng subnet đã không còn nữa, đến lượt nó, nó lại tiếp tục
phát ra một cập nhật định tuyến cho subnet này với metric =16 cho láng
giềng tiếp theo,… cứ thế cả mạng sẽ nhanh chóng biết được subnet này
không còn nữa. Việc phát ra bản tin cập nhật cho subnet down được thực
hiện ngay lập tức mà không cần phải chờ tới hạn định kỳ (ta gọi việc này
là trigger update).
Poison – reverse:
Khi router láng giềng nhận được bản tin update cho một subnet down có
metric = 16 (infinity metric), nó cũng phải ngay lập tức hồi đáp về cho
láng giềng một bản tin cập nhật cho subnet ấy cũng với metric = 16. Hoạt
động này được gọi là poison – reverse.
Trigger – update:
Việc phát ra các bản tin Route – poisoning và Poison – reverse phải được
thực hiện ngay lập tức mà không cần chờ tới hạn định kỳ gửi cập nhật
định tuyến được gọi là hoạt động trigger update.
Hình 12 – Route poisoning và Poison reverse.
Ngoài ra, để chống loop, RIP còn sử dụng một tiến trình đó là tiến trình
holddown, sử dụng một bộ định thời gọi là holddown – timer.
Holddown timer
Ta cùng xem xét một trường hợp cho thấy rằng ngay cả khi split – horizon
đã được bật, vẫn có thể xảy ra loop và lỗi tăng metric đến infinity. Sơ
đồ ví dụ:
Hình 13 – Sơ đồ ví dụ 2.
Như đã thảo luận trong ví dụ trước, trong trường hợp bình thường, khi
bật RIP trên các router R1, R2 và R3, R3 sẽ gửi thông tin về mạng
192.168.3.0/24 của mình ra khỏi các cổng serial đấu nối đến R1 và R2 để
R1 và R2 cập nhật thông tin về mạng 192.168.3.0/24 vào bảng định tuyến
của mình như hình 13. Tất nhiên, R1 và R2 đến lượt chúng cũng lại tiếp
tục gửi cập nhật ra các cổng serial còn lại sang nhau nhưng R1 và R2 đều
bỏ qua các cập nhật mạng 192.168.3.0/24 nhận được từ nhau vì metric của
các cập nhật này lớn hơn metric trong cập nhật nhận được trực tiếp từ
R3.
Khi mạng 192.168.3.0/24 trên cổng F0/0 của R3 chuyển sang down, như đã
trình bày, R3 sẽ gửi các bản tin route – poisoning đến R1 và R2 với nội
dung “192.168.3.0/24, metric = 16”. R1 và R2 sẽ cập nhật và biết được
mạng 192.168.3.0/24 đã down, sau đó chúng tiếp tục gửi bản tin này cho
láng giềng khác (gửi cho nhau). Tuy nhiên, một trường hợp có thể xảy ra
đó là khi bản tin route – poisoning đã đi đến được R1, R1 kết luận mạng
192.168.3.0/24 down, nhưng bản tin này chưa đến kịp R2 (có thể do trễ)
và đúng vào lúc đó R2 gửi cho R1 bản tin cập nhật như thường lệ về mạng
192.168.3.0/24 (R2 lúc này chưa biết mạng này đã down) (xem hình 14).
Hình 14 – Mạng 192.168.3.0/24 down.
R1 khi nhận được bản tin cập nhật từ R2 lập tức cập nhật mạng
192.168.3.0/24 vào bảng định tuyến của nó vì lúc này nó đang ở trạng
thái không biết mạng 192.168.3.0/24. Đến lựot nó, nó lại gửi tiếp cập
nhật 192.168.3.0/24 cho R3, R3 lúc này cũng không biết mạng
192.168.3.0/24 nên lại cập nhật vào bảng định tuyến chỉ đường về R1. Sau
đó R3 tiếp tục gửi cập nhật đi cho R2 và R2 lại cập nhật lại mạng
192.168.3.0/24 vào bảng định tuyến của nó chỉ đường đi về R3… Cứ như
vậy, loop lại xảy ra (xem hình 15).
Hình 15 – Sơ đồ xảy ra loop.
Các giao thức Distance – vector sử dụng holddown – timer để ngăn chặn việc xảy ra loop trong trường hợp như thế này.
Luật Holddown timer:
Sau khi nhận được một poisoned route, router sẽ khởi động bộ định thời
holddown – timer cho route này. Trước khi bộ timer này hết hạn, không
tin tưởng bất kỳ thông tin định tuyến nào về route down này, ngoại trừ
thông tin đến từ chính láng giềng đã cập nhật cho mình route này đầu
tiên. Giá trị default của holddown – timer là 180s.
Như vậy theo luật này, khi R1 nhận được cập nhật route – poisoning từ R3
cho mạng 192.168.3.0/24 và kết luận rằng route này down, R1 sẽ không
chấp nhận bất kỳ thông tin nào đến từ nguồn tin khác ngoại trừ R3 trong
suốt khoảng thời gian holddown – timer. Nhờ đó thông tin route –
poisoning cho mạng 192.168.3.0/24 được cập nhật kịp thời đến R2 và không
còn gây ra loop nữa.
Các bộ timer
Bên cạnh các quy tắc chống loop đã đề cập ở trên, RIP còn sử dụng một số timer cho hoạt động của mình:
Update timer: khoảng thời gian định kỳ gửi bản tin cập nhật định tuyến ra khỏi các cổng chạy RIP, giá trị default là 30s.
Invalid timer: khi router đã
nhận được cập nhật về một subnet nào đó mà sau khoảng thời gian invalid
timer vẫn không nhận lại cập nhật về mạng này (mà đúng ra là phải nhận
được 30s/lần), router sẽ coi route đi đến subnet này là invalid nhưng
vẫn chưa xóa route này khỏi bảng định tuyến. Giá trị default của timer
này là 180s.
Flush timer : khi router đã
nhận được cập nhật về một subnet nào đó mà sau khoảng thời gian flush
timer vẫn không nhận lại cập nhật về mạng này (mà đúng ra là phải nhận
được 30s/lần), router sẽ xóa bỏ hẳn route này khỏi bảng định tuyến. Giá
trị default của timer này là 240s.
Như vậy, khi một route cho một subnet nào đó xuất hiện trong bảng định
tuyến, router kỳ vọng rằng cứ 30s một lần route này phải được láng giềng
gửi lại cập nhật để “refresh”. Nếu sau 30s, route không được “refresh”,
nó sẽ được theo dõi tiếp cho đến hết giây thứ 180 và bị đánh dấu
invalid. Khi invalid, route vẫn còn được duy trì trong bảng định tuyến
thêm 60s nữa (đến hết giây thứ 240) mới bị xóa hoàn toàn khỏi bảng định
tuyến.
So sánh giữa RIPv1 và RIPv2
Có hai version hoạt động của giao thức RIP là version 1 và 2. Hai
version này giống nhau hoàn toàn về cách thức hoạt động như đã mô tả ở
trên. Tuy nhiên, cũng có một số điểm khác biệt giữa hai version:
- RIPv1 là một giao thức classful trong khi RIPv2 là một giao thức
classless. Các giao thức classful có nhiều điểm hạn chế nên ngày nay các
tiến trình RIP được chạy chủ yếu là RIPv2.
- RIPv1 sử dụng địa chỉ broadcast 255.255.255.255 để gửi đi các bản tin
cập nhật trong khi RIPv2 sử dụng địa chỉ multicast 224.0.0.9 để gửi đi
các bản tin cập nhật.
- RIPv1 không hỗ trợ xác thực trong định tuyến trong khi RIPv2 có hỗ trợ
xác thực. Điều này dẫn đến những nguy cơ về bảo mật khi sử dụng RIPv1.
Cấu hình
Việc cấu hình RIP trên các router rất đơn giản. Ta chỉ việc vào tiến
trình RIP trên các router chỉ định ra các cổng được tham gia RIP và các
mạng trực tiếp sẽ được quảng bá đi bằng câu lệnh “network”. Để hiểu rõ
vấn đề, chúng ta cùng khảo sát ví dụ:
Hình 16 – Sơ đồ ví dụ cấu hình.
Trên hình 16 là ba router đại diện cho ba chi nhánh khác nhau của một
doanh nghiệp : R1 cho chi nhánh 1, R2 cho chi nhánh 2 và R3 cho chi
nhánh 3. R1 sử dụng cổng F0/0 của nó đấu xuống mạng LAN của chi nhánh 1,
mạng này sử dụng subnet 192.168.1.0/24. Tương tự, R2 sử dụng cổng F0/0
của nó đấu xuống mạng LAN của chi nhánh 2, mạng này sử dụng subnet
192.168.2.0/24 và R3 sử dụng cổng F0/0 đấu xuồng mạng LAN 3 với subnet
192.168.3.0/24. Subnet sử dụng cho các kết nối leased – line nối giữa ba
chi nhánh (qua các cổng serial của các router) lần lượt là
192.168.12.0/24, 192.168.23.0/24. Các interface loopback 0 trên mỗi
router được tạo thêm với địa chỉ IP như hình vẽ dùng để test vấn đề auto
– summary của RIP. Yêu cầu đặt ra là thực hiện định tuyến RIP trên sơ
đồ này đảm bảo mọi địa chỉ trên sơ đồ thấy nhau.
Cấu hình trên R1:
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#network 192.168.1.0
R1(config-router)#network 192.168.12.0
R1(config-router)#network 172.16.0.0
Cấu hình trên R2:
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#network 192.168.2.0
R2(config-router)#network 192.168.12.0
R2(config-router)#network 192.168.23.0
R2(config-router)#network 172.16.0.0
Cấu hình trên R3:
R3(config)#router rip
R3(config-router)#version 2
R3(config-router)#network 192.168.3.0
R3(config-router)#network 192.168.23.0
R3(config-router)#network 172.16.0.0
Như vậy với mỗi router chúng ta đi vào mode cấu hình RIP bằng câu lệnh
“router rip”. Trong mode cấu hình cho RIP, chúng ta chọn các cổng tham
gia RIP bằng câu lệnh “network”. Khi chúng ta “network” mạng nào thì
cổng có địa chỉ thuộc mạng ấy sẽ tham gia RIP, router sẽ thực hiện
gửi/nhận các bản tin cập nhật định tuyến trên cổng này. Thêm nữa, mạng
của cổng tham gia RIP sẽ được quảng bá đi trong các bản tin định tuyến.
Ví dụ: khi chúng ta “network 192.168.12.0” trên R1, cổng S2/0 của R1 sẽ
tham gia định tuyến RIP vì cổng này được gán địa chỉ thuộc mạng
192.168.12.0/24 và thông tin mạng 192.168.12.0/24 của cổng này sẽ được
R1 gửi đi cho láng giềng trong các bản tin định tuyến.
Chúng ta cũng nhận thấy rằng câu lệnh “network” không hề chỉ ra subnet
mask hay prefix – length cụ thể của các subnet được nêu ra. Do đó, cần
nhớ rằng tham số trong câu lệnh này luôn luôn là major – network (một
mạng lớp A, B hoặc C chưa bị chia nhỏ ra). Từ đó ta thấy rằng để cho các
loopback 0 của các router tham gia định tuyến, ta không “network” các
subnet cụ thể trên các loopback này mà “network” mạng major của chúng,
ví dụ như trên R1, thay vì “network 172.16.1.0”, ta thực hiện “network
172.16.0.0” là major network của subnet 172.16.1.0/24.
Ta thực hiện kiểm tra bảng định tuyến trên các router:
Trên R1:
R1#show ip route
(đã bỏ bớt một số dòng)
C 192.168.12.0/24 is directly connected, Serial2/0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
R 172.16.0.0/16 [120/1] via 192.168.12.2, 00:00:06, Serial2/0
C 172.16.1.0/24 is directly connected, Loopback0
R 192.168.23.0/24 [120/1] via 192.168.12.2, 00:00:06, Serial2/0
C 192.168.1.0/24 is directly connected, FastEthernet0/0
R 192.168.2.0/24 [120/1] via 192.168.12.2, 00:00:06, Serial2/0
R 192.168.3.0/24 [120/2] via 192.168.12.2, 00:00:06, Serial2/0
Trên R2:
R2#show ip route
(đã bỏ bớt một số dòng)
C 192.168.12.0/24 is directly connected, Serial2/0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
R 172.16.0.0/16 [120/1] via 192.168.23.3, 00:00:12, Serial2/1
[120/1] via 192.168.12.1, 00:00:09, Serial2/0
C 172.16.2.0/24 is directly connected, Loopback0
C 192.168.23.0/24 is directly connected, Serial2/1
R 192.168.1.0/24 [120/1] via 192.168.12.1, 00:00:09, Serial2/0
C 192.168.2.0/24 is directly connected, FastEthernet0/0
R 192.168.3.0/24 [120/1] via 192.168.23.3, 00:00:12, Serial2/1
Trên R3:
R3#show ip route
(đã bỏ bớt một số dòng)
R 192.168.12.0/24 [120/1] via 192.168.23.2, 00:00:03, Serial2/1
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
R 172.16.0.0/16 [120/1] via 192.168.23.2, 00:00:03, Serial2/1
C 172.16.3.0/24 is directly connected, Loopback0
C 192.168.23.0/24 is directly connected, Serial2/1
R 192.168.1.0/24 [120/2] via 192.168.23.2, 00:00:03, Serial2/1
R 192.168.2.0/24 [120/1] via 192.168.23.2, 00:00:03, Serial2/1
C 192.168.3.0/24 is directly connected, FastEthernet0/0
Ta thấy trong bảng định tuyến của mỗi router đã hiện lên thông tin về
các route ở xa được học thông qua RIP (kí hiệu bởi kí tự “R”). Ta cùng
phân tích một số thông tin được đưa ra trong mỗi dòng route được học từ
RIP. Ví dụ, với dòng thông tin:
R 192.168.1.0/24 [120/2] via 192.168.23.2, 00:00:03, Serial2/1
Ta có:
R: cho biết đây là thông tin do RIP cung cấp.
192.168.1.0/24: mạng đích.
[120/2]: chỉ số bên trái dấu
“/” là AD của giao thức (RIP có AD = 120), chỉ số bên phải dấu “/” chính
là metric để đi đến mạng đích (ở đây metric = 2).
via 192.168.23.2: IP next hop của route này – địa chỉ IP của trạm kế tiếp trên đường đi đến đích.
00:00:03: route này được học cách đây 03 giây (định dạng này là hh:mm : ss).
Serial2/1: cổng ra (output interface).
Khi các route chỉ đến các mạng LAN đã xuất hiện trên bảng định tuyến của các router, các mạng này đã có thể thấy nhau. Kiểm tra:
R1#ping 192.168.2.254 source 192.168.1.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.254, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.254
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/29/96 ms
R1#ping 192.168.3.254 source 192.168.1.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.254, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.254
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/29/96 ms
R2#ping 192.168.1.254 source 192.168.2.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.254, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.254
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/29/96 ms
R2#ping 192.168.3.254 source 192.168.2.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.254, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.254
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/29/96 ms
R3#ping 192.168.1.254 source 192.168.3.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.254, timeout is 2 seconds:
Packet sent with a source address of 192.168.3.254
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/29/96 ms
R3#ping 192.168.2.254 source 192.168.3.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.254, timeout is 2 seconds:
Packet sent with a source address of 192.168.3.254
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/29/96 ms
Ta cũng để ý rằng trong bảng định tuyến của các router, các mạng
loopback học được đều không phản ánh đúng subnet của nó: tất cả đều được
đưa về mạng major 172.16.0.0/16. Nguyên nhân của hiện tượng này là do
tính năng auto – summary được tự động bật lên với RIP một cách mặc định.
Với RIP, tính năng này sẽ tự động chuyển tất cả các subnet thành major
network khi quảng bá nó qua biên giới một major network khác. Cụ thể, ta
xét trên R1:
Hình 17 – Auto summary.
Khi R1 quảng bá subnet của loopback 0 là 172.16.1.0/24 qua R2, cập nhật
này đi qua một major khác là 192.168.12.0/24. Khi tính năng auto –
summary được bật lên, R1 sẽ chuyển cập nhật này thành mạng major là
172.16.0.0/16 rồi mới gửi đi cho R2. Điều này xảy ra tương tự cho R2 và
R3.
Việc để auto summary xảy ra như vậy có thể dẫn đến thiếu chính xác trong
định tuyến và trong nhiều trường hợp có thể làm dữ liệu không đi được
đến đích của nó. Vì vậy khi mạng của chúng ta có những subnet như sơ đồ
đang xét, ta nên tắt tính năng này đi bằng cách sử dụng câu lệnh “no
auto-summary”. Cấu hình:
R1(config)#router rip
R1(config-router)#no auto-summary
R2(config)#router rip
R2(config-router)#no auto-summary
R3(config)#router rip
R3(config-router)#no auto-summary
Sau khi trên các router thực hiện lệnh này, kiểm tra lại bảng định
tuyến, ta thấy các route subnet của các loopback đã hiện đúng giá trị
của nó:
R1#sh ip route rip
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
R 172.16.0.0/16 [120/2] via 192.168.12.2, 00:00:07, Serial2/0
R 172.16.2.0/24 [120/1] via 192.168.12.2, 00:00:07, Serial2/0
R 172.16.3.0/24 [120/2] via 192.168.12.2, 00:00:07, Serial2/0
R 192.168.23.0/24 [120/1] via 192.168.12.2, 00:00:07, Serial2/0
R 192.168.2.0/24 [120/1] via 192.168.12.2, 00:00:07, Serial2/0
R 192.168.3.0/24 [120/2] via 192.168.12.2, 00:00:07, Serial2/0
R2#sh ip route rip
172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
R 172.16.0.0/16 [120/1] via 192.168.23.3, 00:00:26, Serial2/1
[120/1] via 192.168.12.1, 00:03:01, Serial2/0
R 172.16.1.0/24 [120/1] via 192.168.12.1, 00:00:14, Serial2/0
R 172.16.3.0 [120/1] via 192.168.23.3, 00:00:08, Serial2/1
R 192.168.1.0/24 [120/1] via 192.168.12.1, 00:00:14, Serial2/0
R 192.168.3.0/24 [120/1] via 192.168.23.3, 00:00:26, Serial2/1
R3#sh ip route rip
R 192.168.12.0/24 [120/1] via 192.168.23.2, 00:00:17, Serial2/1
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
R 172.16.0.0/16 [120/1] via 192.168.23.2, 00:00:47, Serial2/1
R 172.16.1.0/24 [120/2] via 192.168.23.2, 00:00:17, Serial2/1
R 172.16.2.0/24 [120/1] via 192.168.23.2, 00:00:17, Serial2/1
R 192.168.1.0/24 [120/2] via 192.168.23.2, 00:00:17, Serial2/1
R 192.168.2.0/24 [120/1] via 192.168.23.2, 00:00:17, Serial2/1
Ta cũng nhận thấy rằng các route “172.16.0.0/16” vẫn còn tồn tại trong
bảng định tuyến, đó là do hoạt động của các bộ timer đã được đề cập ở
trên. Dù không còn được quảng bá nữa nhưng các router vẫn giữ route này
trong bảng định tuyến cho đến hết Flush – timer mới xóa hẳn khỏi bảng
định tuyến.
Ta đã cùng nhau điểm qua các nét chính trong đặc điểm hoạt động của giao
thức RIP – một giao thức Distance – vector điển hình được đề cập trong
chương trình CCNA. Nhìn chung RIP khá đơn giản trong việc cấu hình và
quản trị, tuy nhiên với cơ chế hoạt động của RIP dẫn đến nhược điểm là
RIP hội tụ khá chậm. Thêm nữa, RIP chỉ phù hợp với những mạng có quy mô
nhỏ vì đường kính hoạt động của nó không qua 15 router. Để chạy định
tuyến cho những mạng có quy mô lớn hơn và cần tốc độ hội tụ nhanh hơn,
ta phải chuyển qua sử dụng những giao thức khác như OSPF và EIGRP. Các
bài viết tiếp theo sẽ review hoạt động của các giao thức này.
Tìm kiếm nhanh và chính xác hơn với google tùy chỉnh
Thứ Năm, 21 tháng 6, 2012
Giao thức RIP
10:00
Unknown
4 comments
Bài viết liên quan:
Nhãn
2.5G
(1)
2.75G
(1)
2G
(2)
3.5G
(9)
3.75G
(2)
3.9G
(3)
3G
(4)
4G
(4)
Ảnh hưởng trong đời sống
(5)
Báo hiệu
(2)
Các khái niệm cơ bản
(20)
Các kỹ thuật trong viễn thông
(6)
Các lý thuyết cơ bản
(5)
Các nguyên tắc và kỹ thuật cơ bản
(22)
Các yếu tố ảnh hưởng đến truyền tin
(9)
CCNA
(25)
Dịch vụ viễn thông
(1)
Điều khiển liên kết dữ liệu
(8)
Đồ án tốt nghiệp
(1)
Đồng bộ
(2)
Giám sát
(1)
Giới thiệu về viễn thông
(2)
Khoa học vui
(5)
Kinh nghiệm - nhận thức - tư duy
(10)
Kỹ thuật truyền dẫn số
(25)
Lịch sử
(12)
Lý thuyết thông tin
(15)
Mạng không dây
(35)
Mạng viễn thông
(63)
MICROSOFT
(1)
Mô phỏng
(5)
Phần mềm tiện ích
(2)
Tài liệu
(6)
Thiết bị
(7)
Thông tin di động
(26)
Thông tin quang
(5)
Thông tin vệ tinh
(3)
Thông tin vi ba
(1)
Tiếng Anh
(8)
Tin tức - sự kiện
(7)
Tổ chức - tiêu chuẩn
(7)
Tổng đài - chuyển mạch
(6)
Truyền hình
(12)
Tuyển dụng
(9)
Ứng dụng - công nghệ
(9)
Viễn thông trong tự nhiên
(1)
4 nhận xét:
Đúng là dễ hiểu hơn khi học trên lớp nhiều. Cám ơn nhé :D
Anh cho em hỏi, tại sao ở hình 6 - Kết quả hội tụ cuối cùng, bảng định tuyến của R1 và R3 không có mạng 192.168.2.0/24
Bạn có thể tự cấu hình ví dụ và xem kết quả, theo mình thì chắc bài viết ghi thiếu thôi, trong ví dụ ở trên R1 và R3 khi show vẫn có dải địa chỉ đó
Cám ơn anh rất nhiều :). Bài này đọc dễ hiểu lắm.
Đăng nhận xét