Các giao thức cổng nội (Interior Routing Protocols) I. Classfull routing protocol I.1. RIPv1 Routing Information Protocol (RIP) là giao thức định tuyến vector khoảng cách (Distance Vector Protocol) xuất hiện sớm nhất. Nó suất hiện vào năm 1970 bởi Xerox như là một phần của bộ giao thức Xerox Networking Services (XNS). Một điều kỳ lạ là RIP được chấp nhận rộng rải trước khi có một chuẩn chính thức được xuất bản. Mãi đến năm 1988 RIP mới được chính thức ban bố trong RFC1058 bởi Charles Hedrick. RIP được sử dụng rộng rãi do tính chất đơn giản và tiện dụng của nó. 1. Định nghĩa RIP là giao thức định tuyến vector khoảng cách điển hình, là nó đều đăn gửi toàn bộ routing table ra tất cả các active interface đều đặn theo chu kỳ là 30 giây. RIP chỉ sử dụng metric là hop count để tính ra tuyến đường tốt nhất tới remote network. Thuật toán mà RIP sử dụng để xây dựng nên routing table là Bellman-Ford. 2. Các giá trị về thời gian (RIP Timers) Trước khi đi vào tìm hiểu hoạt động của RIP, tôi xin giới thiệu một số khái niệm về thời gian: Route update timer: là khoảng thời gian trao đổi định kỳ thông tin định tuyến của router ra tất cả các active interface. Thông tin định tuyến ở đây là toàn bộ bảng routing table, giá trị thời gian là 30 giây. Route invalid timer: là khoảng thời gian trôi qua để xác định một tuyến là invalid. Nó đượ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 route invalid timer nó sẽ gửi một bản tin update tới tất cả các active interface là tuyến đường đó là invalid. Holddown timer: giá trị này được sử dụng khi thông tin về tuyến này bị thay đổi. Ngay khi thông tin mới được nhận, 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ề tuyến đường đó trong khong thời gian Holddown timer này. Sau khoảng thời gian này router mới nhận và gửi thông tin về tuyến đường đó. Tác dụng về giá trị này là 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 ở 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 neighbor của nó về trạng thái invalid của tuyến đó trước khi local routing được update. 3. Hoạt động của RIPv1 Tất cả các bản tin của RIP đều được đóng gói vào UDP segment với cả hai trường Source and Destination Port là 520. RIP định nghĩa ra hai loại bản tin Requestmessages and Response messages. Request message: được sử dụng để gửi một yêu cầu tới router neighbor để gửi update. Response message: mang thông tin update. a/ Khởi động RIPRIP gửi broadcast bản tin Request ra tất cả các active interface. Sau đó lắng nghe hay đợi Response message từ router khác. Còn các router neighbor nhận được các Request message rồi gửi Response message chứa toàn bộ routing table. b/ Xử lý thông tin update của router Sau khi xây dựng xong routing table lúc khởi động, khi router nhận được thông tin update về route tới một mạng nào đó. Nếu route tới mạng đó đã tồn tại trong routing table, route đang tồn tại sẽ bị thay thế bởi route mới nếu route mới có hop count nhỏ hơn. Nó sẽ lờ đi nếu route mới có hop count lớn hơn. Nếu hết thời gian Holddown time thì bất kể route mới có giá trị như thế nào thì nó vẫn được lưu vào routing table. c/ Định dạng bản tin của RIP (RIP Message Format) Định dạng bản tin RIP được mô tả trong hình dưới. Mỗi bản tin RIP đều bao gồm trường command, version và có thể chứa được tới 25 tuyến đường (route entries). Mỗi route entry bao gồm address family identifier, the IP address reachable by the route, and the hop count for the route.Nếu router phi một update với hn 25 route entries thì multiple message được sử dụng. Chú ý, phần đầu gồm 4 octet cộng và mỗi route entry là 20 octet. Do đó kích thước tối đa của message là 4 + 25*20 + 8 = 512 octet. Header của UDP segment là 8 octet. Các trường cụ thể trong bản tin RIP: Command: có giá trị là 1 cho biết đây là một Request message, có giá trị là 0 cho biết đây là Response message. Version: là 1 cho biết đây là version 1. Address Family Identifier: có giá trị là 2 nếu là IP. IP Address: là địa chỉ đích của tuyến đường. Metric: là hop count như đã đề cập. d/ Đặc trưng của RIPRIP thường được sử dụng cho những mạng nhỏ với kiến trúc đơn giản, RIPrất ít khi được sử dụng cho những mạng lớn, phức tạp vì những lý do sau: Metric của RIP có giá trị tối đa là 15, 16 có nghĩa là mạng unreachable (không tới được). Metric của RIP là hop count nên không giải quyết tốt được vấn đề lưu lượng. Thời gian hội tụ Convergence time là rất lớn. Khi một sự cố xy ra trên mạng, RIP phải cần một khoảng thời gian khá lớn để tìm được tuyến đường thay thế. Giá trị này ít nhất phi lớn hơn Flush time là 240 giây. I.2. Interior Gateway Routing Protocol (IGRP) 1. Định nghĩa Trước những nhược điểm vốn có của RIP như: metric là hop count, kích thước mạng tối đa là 15 hop. Cisco đã phát triển một giao thức độc quyền của riêng mình là IGRP để khắc phục những nhược điểm đó. Cụ thể là metric của IGRP là sự tổ hợp của 5 yếu tố, mặc định là bandwidth và delay: Bandwidth Delay Load Reliability Maximum transfer unit (MTU) IGRP không sử dụng hop count trong metric của mình, tuy nhiên nó vẫn theo dõi được hop count. Một mạng cài đặt IGRP thì kích thước mạng có thể nên tới 255 hop. Ưu điểm nữa của IGRP so với RIP là nó hỗ trợ được unequal-cost load sharing và thời gian update lâu hơn RIP gấp 3 lần. Tuy nhiên bên cạnh những ưu điểm của mình so với RIP, IGRP cũng có những nhược điểm đó là giao thức độc quyền của Cisco. 2. Hoạt động và đặc trưng IGRP có rất nhiều điểm chung với RIP, chúng cùng là classfull distance vector protocol cũng như định kỳ gửi toàn bộ routing table ra tất cả active interface. Cũng giống như RIP, IGRP cũng broadcasd Request packet ra tất cả các active interface khi khởi động và cẩn thận check các paket update nhận được xem source address của packet đó có cùng subnet mà update được nhận. Giống như RIP nó cũng không gửi subnetmask trong thông tin định tuyến. Nếu như RIP dùng port 520 của giao thức UDP để trao đổi thông tin định tuyến, thì IGRP thì làm điều này trực tiếp trong gói tin IP với trường Protocol number là 9. IGRP sử dụng khái niệm Autonomous System (AS), một IGRP AS là một IGRP process domain_tập hợp các router có chung routing protocol là một IGRP process. Cho phép multiple IGRP AS tồn tại bên trong một AS có nghĩa là người quản trị có phân đoạn mạng tốt hơn. Người quản trị có thể tạo một IGRP AS cho mỗi routing domain, giúp cho việc điều khiển thông tin giữa các mạng tương tác tốt hơn. IGRP thừa nhận 3 loại tuyến đường trong thông tin update: Interior route: mạng nối trực tiếp với router. System route: là đường tới địa chỉ mạng mà bị summary bởi network border router. Exterior route: là đường học qua IGRP từ IGRP AS khác, nó cung cấp thông tin sử dụng bởi default route. a/ IGRP Timer Chu kỳ update của IGRP là 90 giây, IGRP có sử dụng nhân tố random 20% để ngăn chặn sự đồng bộ update timer. Khoảng thời gian giữa 2 lần update biến đổi từ 72 đến 90 giây. Khi một tuyến đường đầu tiên được học, invalid timer cho tuyến đó là 270 giây hay là gấp 3 lần update timer. Flush timer được thiết lập với giá trị là 630 giây_ gấp 7 lần update timer. Mỗi lần tuyến được được update thì những thông số thời gian này được khởi động lại. Nếu như invalid timer trôi qua mà tuyến đường đó không nhận được một update thì tuyến đường đó sẽ bị đánh dấu là không đến được. Tuyến đường đó sẽ được giữ trong routing table và quảng bá với thông tin là tuyến đó không đến được cho đến khi flush timer trôi qua, tuyến đó sẽ được xoá khỏi routing table. Update timer của IGRP gấp 3 lần RIP, điều đó chứng tỏ IGRP tốn it băng thông hơn cho việc gửi update. Nhưng thời gian hội tụ của IGRP sẽ lớn hơn RIP. b/ IGRP Metrics Metric của IGRP là tổ hợp của các thành phần sau: bandwidth, delay, load, reliability. Mặc định của metric là bandwidth và delay, bạn hãy tưởng tượng liên kết dữ liệu (data link) như là một cái ống thì bandwidth như là chiều rộng của ống còn delay như là chiều dài của ống. Nói cách khác bandwidth là thước đo khả năng mang thông tin và delay độ trễ cần thiết để một bít truyền đến đích. Bandwidth: được biểt diễn với đơn vị là kbps, là một thông số được sử dụng để IGRP sử dụng để chạy thuật toán Bellman-Ford. Nó là một thông số tĩnh có thể thay đổi bởi người quản trị không liên quan gì đến bandwidth thật của đường truyền. BW = [10000000/(bandwidth in Kbps)] Delay: giống như bandwidth là một thông số tĩnh có thể được cấu hình bằng tay. Delay = [Delay in 10s of microseconds] Reliability: là một thông số động, được biểu diễn bởi một số 8bit. được tính số lượng gói tin đến đích mà không bị hỏng. Reliability có giá trị 255 có nghĩa là 100% gói tin không bị hỏng, giá trị nhỏ nhất là 1. Load: là một phần băng thông sử dụng trên đường truyền, được biểu diễn bởi một số 8 bit. Load có giá trị là 255 nghĩa là sử dụng 100%, 1 là giá trị nhỏ nhất. Mặc định: K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0. Các hăng số trên có thể được thay tuỳ theo mục đích của người quản trị. c/ IGRP Packet Format Định dạng gói tin IGRP được biểu diễn như hình sau: Như ta thấy bản tin IGRP update mang nhiều thông tin hơn so với RIP. Mỗi bản tin IGRP update có thể chứa tối đa 104 muc nhập (entry) với mỗi mục nhập có kích thước 14octet và header của IGRP update là 12 octet. Ta có maximum của IGRP packet là 12 + 104*14 = 1468 byte. Các trường của IGRP có ý nghĩa là: Version: luôn luôn có giá trị bằng 1. Opcode: có giá trị là 1 cho IGRP Request packet và có giá trị là 2 cho IGRP Update packet. Chú ý Request packet không chứa mục nhập (entry). Edition: giá trị được tăng lên bởi nơi gửi bất cứ khi nào có một thay đổi về thông tin định tuyến. Giá trị này giúp cho router tránh update nhầm thông tin update cũ sau khi nhận thông tin update mới. Autonomous System Number: là ID number của IGRP process. Thông số này cho phép multiple IGRP process trao đổi thông tin định tuyến qua một liên kết dữ liệu chung. Number of Interior Routes: là số mục nhập trong update, là những subnet của những network nối trực tiếp. Number of System Routes: số tuyến đường tới những mạng mà không nối trực tiếp. Hay nói cách khác, là những tuyến đường đã được summary bởi router biên. Number of Exterior Routes: là số tuyến đường tới những mạng mà được học bởi default route. Checksum: được tính trên IGRP header và tất cả các mục nhập. Destination: là trường đầu tiên của mỗi mục nhập. Có một chú ý là trường destination chỉ có 3 octet trong khi địa chỉ IP có 4 octet. Điều này được thực hiện do những nguyên nhân sau. Nếu mục nhập là một interior route thì ít nhất octet đầu tiên của địa chỉ IP luôn luôn được xác định từ địa chỉ IP của interface mà nó nhận được update. Tương tự như vậy nếu mục nhập là system hay external route thì route sẽ bị summary và ít nhất là octet cuối cùng là toàn zero. Do đó trường destination chỉ cần biểu diễn 3 octet đầu là đủ. Delay: trường này bao gồm 24 bit. Bandwidth: trường này bao gồm 24 bit. MTU: là Maximum Transmission Unit nhỏ nhất của bất kỳ link nào trong tuyến đường đến đích. Mặc dù đây là một thông số nhưng không bao giờ được sử dụng để tính route. Reliability, Load: có giá trị biến đổi từ 0x01 đến 0xFF. Hop Count: có giá trị biến đổi từ 0x01 đến 0xFF cho biết số hop của tuyến đường đến đích. d/ Unequal-Cost Load Balancing Load balancing là cách router gửi lưu lượng qua nhiều đường để đến cùng đích. Nó được sử dụng để giảm lưu lượng qua single path. Không giống như RIP, IGRP không những chỉ hỗ trợ equal-cost balancing mà còn hỗ trợ cả unequal-cost balancing. Điều này được thực hiện nhờ sử dụng thông số variance. Những route nào có metric nhỏ hơn hoặc bằng metric*variance sẽ được chọn là feasiable route (metric tốt nhất). Thông số Maximum Paths xác định tối đa có bao nhiêu route tham gia load balancing. . mình so với RIP, IGRP cũng có những nhược điểm đó là giao thức độc quyền của Cisco. 2. Hoạt động và đặc trưng IGRP có rất nhiều điểm chung với RIP, chúng. lần RIP, điều đó chứng tỏ IGRP tốn it băng thông hơn cho việc gửi update. Nhưng thời gian hội tụ của IGRP sẽ lớn hơn RIP. b/ IGRP Metrics Metric của IGRP