Một giao thức định tuyến là một tập hợp các qui tắc mô tả một giao thức lớp 3 sẽ gửi các cập nhật cho nhau về các mạng hiện có.. Nếu có nhiều đường đi đến một mạng cùng tồn tại, giao thứ
Trang 1DISTANCE VECTOR PROTOCOL: RIP & IGRP
Tổng quan về giao thức định tuyến
Một giao thức là một tập hợp các qui tắc trong đó xác định một đối tượng nào đó sẽ hoạt động như thế nào Một giao thức định tuyến là một tập hợp các qui tắc mô tả một giao thức lớp 3 sẽ gửi các cập nhật cho nhau về các mạng hiện có Nếu có nhiều đường đi đến một mạng cùng tồn tại, giao thức định tuyến cũng sẽ xác định đường đi tốt nhất được dùng Khi các thiết bị có chung một hiểu biết về mạng đó, các thiết bị sẽ bắt đầu route trên đường đi tốt nhất
Các giao thức định tuyến hoạt động như thế nào?
Có ba bước cơ bản liên quan trong quá trình xây dựng, duy trì và sử dụng bảng định tuyến:
bên trong AS, chẳng hạn như RIPv1, IGRP và EIGRP và giữa các AS như BGP4
thông tin theo yêu cầu
chuyển một gói tin đi
Hoạt động của các giao thức Distance Vector
Các giao thức distance vector gửi định kỳ các cập nhật về các mạng mà quá trình định tuyến đã tìm thấy và đưa vào bảng định tuyến Các cập nhật được gửi trực tiếp vào các router láng giềng kết nối trực tiếp Địa chỉ đích của các routing update là
255.255.255.255 (địa chỉ broadcast), có nghĩa là tất cả các router trên phân đoạn mạng đó
sẽ nghe được các update
Các cập nhật sẽ gửi ra định kỳ sau khi một khoảng thời gian bị hết Khoảng thời gian timer này sẽ được reset ngay lập tức sau khi router gửi một cập nhật Như vậy giao thức định tuyến distance vector sẽ gửi ra toàn bộ bảng định tuyến đến các láng giềng của nó, thiết lập một đồng hồ thời gian và sau một khoảng thời gian xác định trước (30 giây đối với RIP v.1) sẽ gửi ra toàn bộ bảng định tuyến một lần nữa Sau khi nhận được bảng định tuyến của router láng giềng, router sẽ cập nhật bảng định tuyến của nó và thay đổi bảng định tuyến theo các cập nhật mà nó nhận được Do router sẽ tiếp tục truyền những thông tin mà nó nghe được từ router láng giềng, các giao thức định tuyến nhóm distance vector được gọi là “định tuyến theo tin đồn”
RIP là giao thức định tuyến dạng classful, nghĩa là không chứa thông tin subnet mask trong các cập nhật định tuyến Do đó, RIP không hỗ trợ VLSM và mạng không liên tục
(discontiguos network) RIP có hai phiên bản là RIPv1 và RIPv2, sử dụng metric là hop count với giới hạn là 15 hop RIPv1 là giao thức định tuyến dạng classful, không hỗ trợ
VLSM RIPv2 là giao thức định tuyến dạng classless, có hỗ trợ VLSM, route
summarization và xác thực
Trang 2Hoạt động của RIP:
Routing Information Protocol version 1 (RIPv1) là một giao thức đơn giản và vì vậy hoạt động hiệu quả trong những mạng nhỏ ít có những thay đổi RIP là giao thức đầu tiên trong nhóm distance vector và trở thành một chuẩn mở cho các nhà quản trị mạng
Router RIP sẽ gửi bảng định tuyến để cập nhật thông tin sau khoảng thời gian trung bình là 30 giây (update timer), địa chỉ đích của thông tin cập nhật này là 255.255.255.255 (all-hosts broadcast) Thời gian route tồn tại trong bảng định tuyến khi không có cập nhật mới là 180 giây (invalid timer/timeout/expiration timer) Trong vòng 180 giây mà không nhận được thông tin cập nhật thì hop count của route sẽ mang giá trị 16, mặc dù route là unreachable nhưng route vẫn được dùng để chuyển tiếp gói Router sẽ không nhận bất cứ cập nhật mới của route này trong khoảng thời gian 180 giây (holddown timer) Khoảng thời gian router phải chờ trước khi xoá route
ra khỏi bảng định tuyến là 240 giây (flush timer/garbage collection timer).
Metric của RIP
Giao thức định tuyến RIP sử dụng metric là hop count mang giá trị từ 1 đến 15 Tuyến
đường (route) có metric là 16 được định nghĩa là vô hạn (infinity), nghĩa là tuyến đó không đến được (unreachable)
Count to infinity
Một router A nghe các thông tin về các mạng từ các láng giềng B và C và cập nhật bảng định tuyến với các mạng mới Bảng định tuyến sau đó sẽ được gửi tới tất cả các láng giềng (B và C) Tuy nhiên, nếu láng giềng B được gửi thông tin về network mà chính router B là nguồn gốc của network này, sự nhầm lẫn có thể xảy ra Vấn đề này còn gọi là routing loop Vấn đề xảy ra khi đường đi đến một mạng bị down và mỗi router có thể tin rằng có một đường đi khác về router láng giềng của bó Mỗi router thường tăng giá trị hop count trước khi nó gửi update Khi giá trị hop count đạt đến giá trị 16, thông tin về network đó sẽ được xem là unreachable, bởi vì giá trị của RIPv1 sẽ không vượt quá con
số 15 Đây còn được gọi là count-to-infinity, trong đó giá trị bất định là bằng 16
Split Horizon
Split horizon là một kỹ thuật dùng để tránh lặp trong quá trình cập nhật định tuyến Với split horizon khi tuyến học được từ một cổng giao tiếp thì tuyến đó sẽ không quảng cáo lại trên cổng giao tiếp đó Ví dụ ở hình 2-1:
Hình 2-1
R o u t e r 1 R o u t e r 2 N e t w o r k X
Trang 3Router 1 nhận thông tin về mạng X với metric là 1 từ router 2 Khi split horizon được kích hoạt trên router 1, thông tin về mạng X sẽ không quảng cáo ngược lại về router 2 Nếu không kích hoạt split horizon, router 1 sẽ quảng cáo mạng X cho router 2 với metric
là 2 Nếu mạng X bị sự cố, router 2 sẽ học tuyến đường đến mạng X qua router 1 và sẽ tạo ra lỗ hổng (black hole)
Split Horizon with Poison Reverse
Đây là một kỹ thuật khác được dùng để tránh lặp Với poison reverse, tuyến đường học được từ cổng giao tiếp sẽ được quảng cáo ngược lại cổng giao tiếp đó nhưng được đánh dấu với metric là 16 (unreachable) Ví dụ ở hình 2-2
Hình 2-2
R o u t e r 1 R o u t e r 2 N e t w o r k X
Router 1 nhận thông tin về mạng X với metric là 1 từ router 2 Khi sử dụng kỹ thuật split horizon with poison reverse, router 1 sẽ quảng cáo mạng X với metric là 16 ngược trở về router 2 Bình thường kỹ thuật này không được dùng (vì nó có khuynh hướng làm tăng kích thước bảng định tuyến) mà chỉ được dùng khi mạng gặp sự cố (link failure occurs)
Holddown
Sau khi quyết định rằng một địa chỉ mạng trong bảng định tuyến là không còn hợp lệ, quá trình định tuyến sẽ chờ trong khoảng thời gian 3 lần thời gian gửi routing update trước khi nó bắt đầu quá trình định tuyến với một đường đi cho metric tồi hơn
Triggered updates
Ngay khi một quá trình định tuyến thay đổi metric cho một địa chỉ mạng nào đó trong bảng định tuyến của nó, nó sẽ gửi một cập nhật với giá trị metric đến một giá trị không dùng được Giá trị này thường là bằng 16 Trigger update thông báo cho các router khác ngay lập tức Nếu có một vấn đề xảy ra, tất cả các router bị ành hưởng sẽ đi vào trạng thái holdown ngay lập tức thay vì chờ một khoảng thời gian định kỳ Cơ chế này giúp giảm thời gian hội tụ và giúp ngăn ngừa routing loop.
Load balancing
Nếu một giao thức định tuyến tìm thấy nhiều đường đi có chi phí bằng nhau, nó sẽ phân phối các gói bằng nhau giữa các đường đi Các gói dữ liệu sẽ được phân phốI theo kiểu round-robin Kiểu switching được dùng bên trong router (process switching hay fast switching) sẽ xác định là quá trình cân bằng tải sẽ thực hiện theo kiểu round-robin hay là theo kiều session Cân bằng tải theo kiểu round-robin sẽ được dùng khi cơ chế process switching được dùng.
Trang 4Nguyên tắc gửi và nhận thông tin cập nhật định tuyến
Xét ví dụ như hình dưới, 2 router sử dụng giao thức định tuyến RIP, mạng 131.108.0.0 kết nối router 1 và router 2
Hình 2-3
R o u t e r 1 R o u t e r 2
1 3 1 1 0 8 2 0 / 2 4
S 0
1 3 1 1 0 3 5 0 / 2 4
S 0 2 1 1 3 1 1 0 8 3 0 / 2 4 1
1 3 7 9 9 8 8 0 / 2 4
2 2
Các bước thực hiện khi Router 1 gửi cập nhật định tuyến cho Router 2
mạng 131.108.2.0/24 hay không?
131.108.2.0/24 hay không?
mạng 131.108.2.0/24 hay không?
và quảng cáo mạng này đến router 2
Như vậy Router 1 sẽ gửi đến Router 2 mạng 131.108.5.0 và 137.99.0.0
Khi sử dụng lệnh debug ip rip trên router 1, kết quả sẽ như sau:
Router1#debug ip rip
RIP: sending v1 update to 255.255.255.255 via Serial0 (131.108.2.2)
subnet 131.108.5.0, metric 1
network 137.99.0.0, metric 1
Các bước kiểm tra khi router 2 tiến hành cập nhật định tuyến
131.108.2.0/24 hay không?
137.99.0.0 hay không?
Trang 54. Kiểm tra xem mạng 131.108.5.0 có cùng mạng chính (major network) với mạng 131.108.2.0/24 hay không?
là mask của cổng giao tiếp nhận thông tin định tuyến)
Như vậy router 2 sẽ nhận được 2 mạng đến router 1 là mạng 131.108.5.0/24 và
137.99.0.0/16
Khi sử dụng lệnh debug ip rip trên Router 2, kết quả sẽ như sau:
Router2#debug ip rip
RIP: received v1 update from 131.108.2.2 on Serial0
131.108.5.0 in 1 hops
137.99.0.0 in 1 hops
Xem bảng định tuyến trên Router 2 kết quả sẽ như sau:
Router2#show ip route
R 137.99.0.0/16 [120/1] via 131.108.2.2, 00:00:07, Serial0
131.108.0.0/24 is subnetted, 3 subnets
R 131.108.5.0 [120/1] via 131.108.2.2, 00:00:08, Serial0
C 131.108.2.0 is directly connected, Serial0
C 131.108.3.0 is directly connected, Ethernet0
RIP không hỗ trợ discontigous network
Mạng không liên tục là một major network bị phân cách bởi một major network khác Ví
dụ mạng 131.108.0.0 bị ngăn cách bởi mạng 137.99.0.0 như hình 2-4:
Hình 2-4
1 3 1 1 0 8 2 0 / 2 4
R o u t e r 1 R o u t e r 2
1 3 7 9 9 8 8 0 / 2 4
1
1 3 1 1 0 8 5 0 / 2 4
2
Trang 6RIP là giao thức dạng classful, khi RIP quảng cáo một mạng đi qua một major network khác thì sẽ tiến hành tóm tắt mạng đó về major network Ví dụ router 1 gửi cập nhật chứa mạng 131.108.5.0 đến router 2 thông qua mạng 137.99.88.0, mạng 131.108.5.0 sẽ được tóm tắt thành mạng 131.108.0.0/16 Tiến trình này được gọi là autosummarization
Trước khi gửi cập nhật định tuyến cho router 2, router 1 thực hiện các bước sau:
137.99.88.0/24 hay không?
hành quảng cáo mạng này
Khi sử dụng lệnh debug ip rip trên router 1, kết quả sẽ như sau:
Router1#debug ip rip
RIP: sending v1 update to 255.255.255.255 via Serial0 (137.99.88.2)
network 131.108.0.0, metric 1
Router 2 thực hiện kiểm tra các cập nhật định tuyến qua các bước sau:
137.99.88.0/24 hay không?
network với mạng 131.108.0.0 hay không?
Khi sử dụng lệnh debug ip rip trên router 2, kết quả như sau:
Router2#debug ip rip
RIP: received v1 update from 137.99.88.1 on Serial0
131.108.0.0 in 1 hops
Xem bảng định tuyến trên router 2 bằng lệnh show ip route kết quả như sau:
Router2#show ip route
137.99.0.0/24 is subnetted, 1 subnets
C 137.99.88.0 is directly connected, Serial0
131.108.0.0/24 is subnetted, 3 subnets
C 131.108.2.0 is directly connected, Ethernet0
Trang 7Có nhiều cách để giải quyết vấn đề này, cách cơ bản nhất là dùng định tuyến tĩnh như sau:
Router1(config)#ip route 131.108.2.0 255.255.255.0 137.99.88.1
Router2(config)#ip route 131.108.5.0 255.255.255.0 137.99.88.2
RIP không hỗ trợ VLSM
Xét ví dụ như hình 2-5, 2 router sử dụng giao thức định tuyến RIP, mạng 131.108.0.0 kết nối router 1 và router 2
Hình 2-5
R o u t e r 1 R o u t e r 2
1 3 1 1 0 8 6 0 / 3 0
S 0
1 3 1 1 0 3 7 0 / 3 0
S 0 2 1 1 3 1 1 0 8 2 0 / 3 0 1
1 3 1 1 0 8 5 0 / 2 4
2 2
Các bước thực hiện khi Router 1 gửi cập nhật định tuyến cho Router 2
với mạng 131.108.6.0/30 hay không?
131.108.6.0/30 hay không?
với mạng 131.108.6.0/30 hay không?
131.108.6.0/30 hay không?
Khi sử dụng lệnh debug ip rip trên router 1, kết quả như sau:
RIP: sending v1 update to 255.255.255.255 via Serial0 (131.108.6.2)
subnet 131.108.7.0, metric 1
Xem bảng định tuyến trên router 2 bằng lệnh show ip route kết quả như sau:
Router2#show ip route
131.108.0.0/30 is subnetted, 3 subnets
R 131.108.7.0 [120/1] via 131.108.2.2, 00:00:08, Serial0
Trang 8C 131.108.6.0 is directly connected, Serial0
C 131.108.2.0 is directly connected, Ethernet0
Ta thấy rằng chỉ có mạng 131.108.7.0 được quảng cáo
Để khắc phục, trong mạng RIP nên sử dụng cùng chung subnet mask hoặc sử dụng cách
cơ bản nhất là dùng định tuyến tĩnh để định tuyến
RIP và default route
RIP hỗ trợ default route, nghĩa là cho phép quảng bá mạng 0.0.0.0/0 Khi RIP tìm thấy một default route trong bảng định tuyến, nó sẽ tự động quảng cáo route này trong các cập nhật định tuyến Chú ý rằng default route phải có metric phù hợp Ví dụ nếu default route học được từ OSPF có metric là 20, RIP sẽ quảng bá route này với metric là 16 (infinity)
Khi đó, cần sử dụng lệnh router(config-router)# default-metric để áp đặt metric cho route
đó
Trong định tuyến dạng classful, nếu router nhận gói tin đến một mạng không có trong bảng định tuyến và không khai báo default route trong bảng định tuyến thì router sẽ loại
bỏ gói tin đó
Hình 2-6
1 3 1 1 0 3 2 0 / 2 4
1 3 1 1 0 3 1 0 / 2 4
0 0 0 0 / 0
1 3 1 1 0 8 3 0 / 2 4
R 1 s e õ l o a ïi b o û g o ùi t ô ùi
1 3 1 1 0 8 3 0 / 2 4
Host X gửi dữ liệu đến mạng 131.108.3.0/24 Router R1 sẽ loại bỏ các gói tin này vì không tồn tại route đến mạng 131.108.3.0/24 Traffic cũng sẽ không gửi đến default route
vì đây là định tuyến dạng classful Nếu router R1 cho phép định tuyến dạng classless
(thực hiện lệnh ip classless), R1 sẽ chuyển tiếp traffic đến default route Do đó, nên cấu
hình định tuyến dạng classless khi sử dụng default route hay default network
RIP version 2
RIPv2 là một cải tiến của RIPv1 RIPv2 là giao thức định tuyến dạng classless,
có hỗ trợ VLSM, route summarization và authentication Một số cải tiến thể hiện ở: route tag, subnet mask, next-hop metric, multicast capability, authentication
Trang 90 8 16 31
IP address Subnet mask Next hop Metric
Route tag
Trường route tag dài 16 bit (2 byte) dùng để nhận dạng các route, được sử dụng để đánh dấu trong quá trình redistribution Các route khi phân phối (redistribute) vào RIP sẽ được đánh dấu bằng route tag để phân biệt giữa internal RIP và external RIP Ví dụ có 10 tuyến đường tĩnh muốn phân phối vào RIP và được gán tag là 20 Các tuyến đường tĩnh này sẽ được quảng cáo vào RIP như là external route với tag là 20 Nếu các router RIP muốn phân phối vào OSPF và OSPF chỉ muốn phân phối 10 tuyến đường tĩnh này thì OSPF chỉ cần kiểm tra tag này Hơn nữa, nếu OSPF được phân phối ngược về RIP, RIP
sẽ từ chối các route nào với tag là 20 Do đó, việc sử dụng tag còn giúp giải quyết vấn đề lặp (routing loops)
Next Hop
Trường Next Hop được sử dụng để tránh sự mở rộng hop trong quá trình chuyển tiếp gói
tin
Hình 2-7
R o u t e r 1 R o u t e r 2
R o u t e r 3
R o u t e r 4
R o u t e r 5
r o u t e r r i p
v e r s i o n 2
r e d is t r i b u t e o s p f m e t r i c 1
O S P F
O S P F
Trong hình, router 2 thực hiện phân phối route giữa OSPF và RIP Khi gói tin từ router 1 đến router 2 sẽ được chuyển tiếp đến router 5 để qua mạng OSPF Khi gói tin từ R4 đến router 3 để qua mạng OSPF, giả sử router 3 không có trường next-hop (RIPv1), router 3
Trang 10sẽ gửi gói tin đến router 2 và router 2 sẽ chuyển tiếp gói tin đến router 5 Trường hợp này
gọi là sự mở rộng hop (extra hop) trên router 3 để đến mạng OSPF Khi có trường Next
Hop, khi gói tin đến router 3 để đến mạng OSPF, các route sẽ có trường Next Hop là router 5 và gói tin sẽ gửi thẳng đến router 5
RIPv2 hỗ trợ Multicast
RIPv2 sử dụng mô hình truyền thông multicast để trao đổi các thông tin định tuyến Địa chỉ multicast RIPv2 sử dụng là 224.0.0.9 (01-00-5E-00-00-09)
IGRP
Tổng quan về IGRP
IGRP là giao thức định tuyến dạng classful, nghĩa là không chứa subnet mask trong các thông tin cập nhật định tuyến (routing update) Do không có khả năng mang các thông tin update nên dẫn đến có một vài hạn chế trong các thiết kế mạng dùng giao thức này Các giao thức nhóm classful gồm RIPv1 và IGRP Các đặc điểm của một giao thức classful gồm
cần giá trị mask Do đó giá trị subnet mask phải có cùng giá trị cho tất cả các ĩinterface trong cùng mạng Nếu có một entry trong bảng định tuyến cho một subnet cụ thể, gói IP sẽ được chuyển về địa chỉ đích đó Nếu địa chỉ đích là không biết, datagram sẽ bị drop Nếu ta có cấu hình default-network cho router, default network sẽ được dùng Tuy nhiên default-network chỉ được dùng trong classful routing nếu router không có kiến thức về mạng đíc ở bất kỳ mức nào Như vậy nếu major network là biết, gói IP sẽ bị drop cho dù có một mạng default network
Ở chế độ mặc định, IGRP tính toán metric dựa trên các thông số băng thông (bandwidth)
và độ trễ (delay) IGRP có thời gian cập nhật dài hơn RIP, có khả năng hỗ trợ cân bằng
tải với metric không bằng nhau IGRP không hỗ trợ discontiguous network, VLSM
Ở chế độ mặc định
gian trung bình là 90 giây (update timer) Địa chỉ đích của các gói tin cập nhật này là 255.255.255.255 (all-hosts broadcast)
270 giây (invalid timer/timeout/expiration timer) Khi router ngừng gửi cập nhật định tuyến trong thời gian invalid timer, các route sẽ ở trong tình trạng invalid