ĐẠI CƯƠNG VỀ ĐỊNH TUYẾN Tác giả: Trần Văn Thành Giới thiệu về các giao thức định tuyến A. Đại cương về định tuyến I. Thuật ngữ I. 1. Routing Protocol Routing protocol: là ngôn ngữ để một router trao đổi với router khác để chia sẻ thông tin định tuyến về khả năng đến được cũng như trạng thái của mạng. Được cài đặt tại các Router, chúng được sử dụng để: xây dựng nên bảng định tuyến để đảm bảo rằng tất c ả các Router đều có bảng “Routing table ” tương thích nhau cũng như đường đi đến các mạng phải được xác định trong “Routing Table”. I. 2. Routed Protocol Nó s ử dụng các bảng “Routing Table” mà Routing Protocol xây dựng lên để đảm bảo việc truyền dữ liệu qua mạng một cách tin cậy. Ví dụ: IP và IPX. I. 3. Vùng tự trị AS (Autonomous System) Mạng Internet được chia thành các vùng nhỏ hơn gọi là các vùng tự trị (Autonomous System – AS ). AS bao gồm một tập hợp các mạng con được kết nối với nhau bởi Router. Một hệ thống AS thông thường thuộc quyền sử hữu của một công ty hay nhà cung cấp dịch vụ Internet (ISP). V à để các hệ thống AS này kết nối được với nhau, nhà quản lý phải đăng ký với cơ quan quản trị mạng trên Internet (Inter NIC) để lấy được một số nhận dạng AS cho riêng mình. Bên trong mỗi AS, các nhà quản lý có quyền quyết định loại Router cũng như giao thức định tuyến cho hệ thống của mình. I. 4. Bảng định tuyến Một host hay một Router phải xem xét bảng định tuyến của mình trư ớc khi chuyển gói tin đến địa chỉ ở xa. Bảng này được gán tương ứng mỗi địa chỉ đích với một địa chỉ Router cần đến ở chặng tiếp theo.Bảng địa chỉ đích trong bảng có thể bao gồm các địa chỉ mạng, mạng con, các hệ thống độc lập. Trong bảng định tuyến có thể bao gồm một tuyến mặc định, đư ợc biểu diễn bằng địa chỉ 0.0.0.0. Bảng định tuyến của mỗi giao thức định tuyến là khác nhau, nhưng có thể bao gồm nhữnh thông tin sau : Địa chỉ đích của mạng, mạng con hoặc hệ thống. Địa chỉ IP của Router chặng kế tiếp phải đến. Giao tiếp vật lý phải sử dụng để đi đến Router kế tiếp. Mặt nạ mạng của địa chỉ đích. Khoảng cách đến đích (thí dụ : số lượng chặng để đến đích). Thời gian (tính theo giây) từ khi Router cập nhật lần cuối. I. 5. Khoảng cách quản lý (Administrative Distance (AD)) Administrative Distance đư ợc sử dụng để đánh giá độ tin cậy của thông tin định tuyến mà Router nhận từ Router hàng xóm. AD là một số nguyên biến đổi từ : 0 đến 255; 0 tương ứng với độ tin cậy cao nhất và 255 có nghĩa là không có lưu lượng đi qua tuyến này (tức là tuyến này không được sử dụng để vận chuyển thông tin của người sử dụng). Tức là khi một Router nhận được một thông tin định tuyến, thông tin này được đánh giá và một tuyến hợp lệ được đưa vào bảng định tuyến của Router. Thông tin định tuyến được đánh giá dựa vào AD, giả sử Router được cài đặt nhiều hơn một giao thức định tuyến thì giao thức định tuyến nào có AD nhỏ hơn sẽ được Router sử dụng. Mối giao thức định tuyến có tưng ứng một giá trị AD: Directly 0 Static route 1 RIP 120 OSPF 110 IGRP 100 II. Nguyên tắc định tuyến Các giao thưc định tuyến phi đạt được các yêu cầu đồng thời sau: Khám phá động một topo mạng. Xây dựng các đường ngắn nhất. Kiểm soát tóm tắt thông tin về các mạng bên ngoài, có thể sử dụng các metric khác nhau trong mạng cục bộ. Phản ứng nhanh với sự thay đổi topo mạng và cập nhật các cây đường ngắn nhất. Làm tất cả các điều trên theo định kỳ thời gian. III. Các thành phần của định tuyến (Components of Routing Data) Routing là quá trình chuyển tiếp packet từ một mạng này sang mạng khác. Chúng chuyển tiếp packet như thế nào? Thứ nhất: bạn cần phải biết logical address là gì? Địa chỉ logic được sử dụng để xác định host thuộc mạng nào. Thứ hai: Sau khi nhận packet từ một interface nó sẽ quyết định đẩy packet ra interface tương ứng, để chuyển tiếp packet đi. Để đưa ra quyết định chính xác router phải thực hiện đư ợc 3 nhiệm vụ sau: Router xác định xem lưu lượng mà nh ận hoặc gửi chạy giao thức lớp mạng nao? IP, IPX hay AppleTalk. Tiếp theo sẽ kiểm tra xem địa chỉ mạng đích có trong routing table hay không. Nếu không tìm thấy đường đến mạng đích đó trong routing table, router sẽ discard packet đó và gửi một gói ICMP network unreachable về host nguồn đã gửi packet. N ếu tìm thấy trong routing table tuyến đường tới mạng đích router sẽ forward packet ra interface tưng ứng. Router sẽ đẩy packet đó ra buffer của interface đó. Tiếp theo kiểu encapsulation (đóng gói) của frame lớp 2 của interface đó. Nếu là Ethernet thì chạy ARP để lấy địa chỉ lớp 2 là MAC, còn nếu là Frame-Relay thì chạy Inverse ARP hoặc static map để tìm DLCI. Cuối cùng Outbound interface sẽ đưa frame xuống phương tiện truyền dẫn và forward thông tin đến next hop. Packet sẽ tiếp tục được sử lý cho đến đích cuối cùng. 1. Routing tables Routing table là một bảng chứa các tuyến đường đến các mạng mà người quản trị cấu hình. Các bảng này được tạo ra bằng tay theo ý muốn của người quản trị hay bằng cách trao đổi thông tin định tuyến với các router khác. Để nhìn thấy routing table trên router, chúng ta sử dụng câu lệnh: show ip route. Error! Đoạn Code: xác định cách mà tuyến đường được học. Dòng Gateway of last resort is not set: cho biết routing table không có default gateway, nếu router nhận được một packet mà địa mạng đích không tìm thấy trong routing table thì router sẽ drop packet và g ửi một bản tin ICMP network unreachable tới nơi gửi packet đó. Xét dòng thông tin sau: R 175.21.0.0/16 [120/1] via 10.10.10.1, 00:00:18, Serial0 R: có nghĩa tuyến đường được học bằng giao thức RIP. 175.21.0.0/16: Địa chỉ mạng và số bit 1 trong subnetmask của mạng đích. [120/1]: 120 là administrative distance của tuyến đường, 1 là metric của tuyến đường. Với RIP thì đây là hop count. via 10.10.10.1: là địa chỉ next-hop của tuyến. Đây là đỉa chỉ mà packet c ần phải gửi tới để gửi packet tới đích. 00:00:18: khảong thời gian kể từ khi tuyến đường được update. Trong trường hợp này là 18 second. Serial0: là interface mà tuyến đường được học qua đó. Đồng thời đó cũng là interface mà packet được gửi qua để tới đích. 2. Xây dựng bảng định tuyến (Populating the Routing Table) Trước khi tuyến đường được đưa vào bảng định tuyến, router pảhi học về những tuyến đường đó. Có hai cách để học tuyến đường: + Statically defining a route + Dynamically learning a route a/ Statically Defined Routes Statically defined route: bằng cách này tuyến đường được nhập bằng tay vào router. Static route được nhập vào router với cú pháp như sau ở global configuration mode: ip route prefix mask {address|interface} distance prefix = IP route prefix for the destination. mask = Prefix mask for the destination. address = IP address of the next hop that can be used to reach the destination. interface = Network interface to use. distance = (Optional) Administrative distance. N ếu bạn muốn cấu hình default route, thì phần prefix = 0.0.0.0 và mask = 0.0.0.0. Default route sữ gửi bất cứ packet nào mà địa chỉ mạng đích tưng ứng không tìm thấy trong bảng định tuyến. Ưu điểm của static route là ngưởi quản trị có toàn quyền điều khiển thông tin lưu trong routing table và phải lãng phí băng thông để xây dựng nên routing table. Như ợc điểm của static route là độ phức tạp của việc cấu hình tăng lên khi kích thước của mạng tăng lên. Giả sử một mạng có N router thì người quản trị cần phải cấu hình (N-1)*N câu lệnh trên tất cả các router. Một nhược điểm nữa của static route là không có kh ả năng thích ứng với những mạng có cấu trúc thay đổi. b/Dynamically Learned Routes Dynamic routing là quá trình mà trong đó giao thức định tuyến phải tìm ra đường tốt nhất trong mạng và duy trì chúng. Có rất nhiều cách để xây dựng lên bảng định tuyến một cách động. Nhưng tất cả đều thực hiện theo quy tắc sau: nó sẽ khám tất cả các tuyến đường đến đích có thể và thực hiện một số quy tắc đã định trước để xác định ra đường tốt nhất đến đích. Ưu điểm của dynamic routing là đơn giản trong việc cấu hình và tự động tìm ra những tuyến đường thay thế nếu như mạng thay đổi. Như ợc điểm của dynamic routing là yêu cầu xử lý của CPU của router cao hơn là static route. Tiêu tốn một phần băng thông trên mạng để xây dựng lên bảng định tuyến. b.1. Distance-Vector Routing Distance-vector routing được chia làm hai phần: distance và vector. Distance là metric để tới đích (tiêu chuẩn về khoảng cách để tới đích). Vector là hướng để tới đích nó được xác định bởi next-hop của tuyến đường. Các giao thức định tuyến Distance-vector cập nhật và update bảng định tuyến của mình bằng cách thường xuyên gửi thông điệp update liên tục theo chu kỳ dưới dạng Broadcast. Thông điệp Broadcast đó bao gồm toàn bộ bảng định tuyến. Tuy nhiên một vấn đề chung xảy ra đối với các giao thức định tuyến Distance-Vector đó chính là “Routing Loop ”. Do các Router không được update ngay lập tức( mà theo chu kỳ), chính điều đó đ ã khiến cho các Router xây dựng lên bảng định tuyến không đúng. Dẫn đến các gói tin đi trên đường mà nó đã đi qua rồi, kết quả là gói tin đi lòng vòng trên mạng. Hiện tượng “Routing Loop ” đã làm phát sinh lưu lượng mạng vô ích gây lãng phí băng thông. Chính vì vậy người ta đã đưa vào các giao thức định tuyến theo khoảng cách các phương pháp để tránh loop đó là: b.1.1. Route Poisoning Một trong những phương pháp người ta đưa vào các giao thức định tuyến để tránh loop đó là “Route poisoning”. Route poisoning bắt đầu hoạt động khi Router nhận thấy một mạng nối tới nó bị down. Nó sẽ quảng bá tới tất cả các Router lân cận nó rằng: Mạng đó là không thể tới được. Ví dụ với RIP: nó s ẽ gửi thông báo tới các Router lân cận của nó với hop count = 16. Kết quả là mạng đó sẽ được xoá khỏi bảng định tuyến. b.1.2. Split Horizon Tuy nhiên trong một số trường hợp thì Route Poisoning không thể giải quyết được. Như trường hợp dưới đây : Error! Ngư ời ta đã đưa ra phương pháp Split Horizon, tránh các Router không gửi lại các thông tin định tuyến quay trở lại Router mà nó đã “học” được đường đi từ Rouer đó (vẫn có thể xảy ra với cấu trúc mạng vòng). b.1.3.Hold-Down Timer Để giải quyết trường hợp mà Split Horizon không giải quyết được ngư ời ta đưa ra phương pháp Hold-Down Timer. Tránh việc thay đổi tuyến được thực hiện trư ớc khi mạng hội tụ từ sự thay đổi đó. Tránh cập nhật thông tin từ việc thiết lập lại các thông tin không đúng. Khi một Router nhận được một cập nhật mà chứa một cấu trúc thay đổi, hold-down timer sẽ bắt đầu. Bất cứ cập nhật nào trong thời gian này sẽ bị huỷ bỏ. Thời gian hold-timer được đặt ít nhất phi lớn hơn 3 lần thời gian cập nhật thông tin toàn bộ tuyến trong mạng. b.1.4. Triggered (Flash) Updates Để ngăn chặn tình trạng hết thời gian hold-timer mà thông tin update mới tới. Người ta đưa ra phưng pháp Triggered (Flash) Updates tức l à ngay sau khi nhậnđược thông cập nhật mà chứa một cấu trúc thay đổi nó sẽ gửi ngay lập tức broadcast update tới các Router lân cận. b.2. Link-State Routing Khác với Distance-vector routing protocol, router chỉ biết được next-hop để gửi packet đi tới đích. Đối với Link-state routing protocol mỗi router đều xác định được chính xác topology của mạng. Chính vì vậy router sẽ đưa ra quyết định để đưa packet đến đích tốt hơn. Mỗi router trong mạng sẽ báo cáo trạng thái của nó, các link nối trực tiếp và trạng thái của mỗi link. Router sẽ nhân bản thông tin này tới tất cả các router trên m ạng. Cuối cùng tất cả các rouer trên mạng đều có cái nhìn giống nhau về topo mạng. Một điểm khác nữa đối với distance-vector routing protocol là các router không gửi toàn bộ routing table mà chỉ gửi sự thay đổi xảy ra hay một bản tin hello với kích thước nhỏ gọn nếu như mạng không có sự thay đổi theo những chu ky nhất định. Nên link-state có một ưu điểm nữa là tốn ít băng thông hơn distance-vector để xây dựng nên routing table. Như ợc điểm của link-state protocol là phức tạp hơn trong cấu hình so với distace-vector routing protocol và yêu cầu phần cứng của router cao hơn khi sử dụng distance-vector routing protocol. Tóm lại hoạt động của link-state routing protocol có thể chia làm 4 bước sau: 1. Các router tìm neighbors của mình từ các router nối trực tiếp. 2. Sau khi tìm được neighbors xong, router gửi các LSA tới các neighbor của nó. Sau khi nhận và copy thông tin từ LSA, router sẽ forward hay flood LSA tới các neighbor của nó. 3. Tất cả các router lưu LSA trong database của nó. Điều đó có nghĩa là t ất c các router đều có một cái nhìn giống nhau về topo mạng. 4. Mỗi router sử dụng thuật toán Dijkstra để tính toán ra đường tốt nhất để đưa vào routing table. c/Quyết định tuyến đường nào sẽ được lưu vào Routing table (The Final Decision on What Routes Populate the Routing Table) Administrative distance và metric là hai nhân tố quyết định tuyến đường nào sẽ được lưu vào routing table. Nhân tố đầu tiên xét đến là AD, AD là độ tin cậy của routing protocol mà tìm ra tuyến đường. Nếu có nhiều hơn tuyến đường tới đích thì tuyến đường nào có AD nhỏ hơn sẽ được đưa vào routing table. Nếu các tuyến đường đó có cùng AD thì nhân tố thứ 2 được xét đến chình là metric. Metric là giá trị của tuyến đường cụ thể của một giao thức định tuyến nào đó. Nếu có nhiều hơn một tuyến đường đến đích có cùng AD (cung giao thức định tuyến) thì tuyến nào có metric tốt hơn sẽ được đưa vào routing table. Nếu chúng có cùng AD và metric thì tuỳ từng routing protocol cụ thể mà số lượng tuyến đường được đưa vào routing table là khác nhau. 3. Reaching the Destination Sau khi router nhận packet, the router sẽ gỡ bỏ header lớp 2 để tìm địa chỉ đích lớp 3. Sau khi đọc xong địa chỉ đích lớp 3 nó tìm kiếm trong routing table cho địa chỉ đích đó. Giả sử đỉa chỉ đích đó có trong routing table, router sẽ xác định địa chỉ của next-hop. Sau đó packet bị đẩy ra buffer của interface tương ứng, router sẽ khám phá loại encapsulation lớp 2 nào được sử dụng giữa out going interface và next-hop. Packet đư ợc đóng gói xuống lớp 2 rồi đưa xuống môi trường truyền dẫn dưới dạng bit, tín hiệu điện, quang…Quá trình này sẽ tiếp tục cho đến khi packet được đưa đến đích th ì thôi. IV. Hội tụ (Convergence) Thời gian hội tụ (convergence time) là thời gian mà tất c router đồng ý về topo mạng sau một sự thay đổi của mạng. Các router phải đồng bộ routing table của chúng. . Router lân cận. b.2. Link-State Routing Khác với Distance-vector routing protocol, router chỉ biết được next-hop để gửi packet đi tới đích. Đối với Link-state routing protocol mỗi router. Nên link-state có một ưu điểm nữa là tốn ít băng thông hơn distance-vector để xây dựng nên routing table. Như ợc điểm của link-state protocol là phức tạp hơn trong cấu hình so với distace-vector. so với distace-vector routing protocol và yêu cầu phần cứng của router cao hơn khi sử dụng distance-vector routing protocol. Tóm lại hoạt động của link-state routing protocol có thể chia làm