Enhanced Interior Gateway Routing Protocol(EIGRP) Tác giả: Trần Văn Thành Enhanced Interior Gateway Routing Protocol(EIGRP) Lần đầu tiên được đưa vào sử dụng trong phiên bn ISO 9.21, Enhanced Interior Gateway Routing protocol (EIGRP) là m ột sự nâng cấp của IGRP. Bên cạnh những tính chất vốn có IGRP là một distance-vector protocol, EIGRP còn mang một số tính chất của link state protocol. Tất cả các distance vector protocol nguyên thuỷ đều chạy thuật toán Bellman- Ford để xây dựng nên routing table. Và nhược điểm chung của chúng là gặp phải vấn đề chúng là gặp phải vấn đề chống loop và th ời gian hội tụ của các distance vector protocol là rất lớn, bởi vì mỗi router đều chạy thuật toán Bellman- Ford sau khi đã thông tin định tuyến từ neighbor rồi sau đó mới gửi thông tin định tuyến tới tất cả các neighbor. Ưu điểm hơn so với distace vector protocol, link state protocol không phi giải quyết vấn đề chống loop và thời gian hội tụ rất lớn bởi vì không gi ống như routing-by-rumor approach c ủa distance vector các router link state có thông tin trực tiếp từ tất cả các router chạy cùng routing protocol và mỗi router linkstate chạy các thuật toán định tuyến để tính tuyến đường tối ưu độc lập với sự tính toán đầu tiên. Không quan tâm đến việc chạy các thuật toán định tuyến xảy ra trước hay sau khi xây dựng topology database và chúng thức hiện các quá trình trên một cách riêng lẻ. Nhưng với EIGRP thì lại hoàn toàn khác bằng cách sử dụng diffusing computations sự tính toán các tuyến đường được thực hiện trong sự kết hợp giữa nhiều router_chính điều đó đạt được sự hội tụ rất nhanh trong khi vẫn loại bỏ được sự loop trên mạng. 1. Đặc trưng của EIGRP (Diffusing computations) EIGRP gửi thông tin update tới tất cả các neighbor trực tiếp một cách: nonperiodic, partial, and bounded. Nonperiodic: có ngh ĩa là thông tin update được gửi một cách không định kỳ mà thông tin update chỉ được gửi mỗi khi mạng có sự thay đổi. Partial: có nghĩa là thông tin update trao đổi với neighbor chỉ bao gồm thông thay đổi chứ không gửi toàn bộ routing table. Bounded: có nghĩa là thông tin update chỉ gửi cho router có cùng process domain. Chính những đặc trưng đó làm EIGRP tốn ít bandwidth hơn distance vector protocol. Do đó EIGRP có thể chạy trên những đường truyền có bandwidth thấp. Không những vậy mà trên những đư ờng truyền bandwidth thấp ta còn điều chỉnh được số phần trăm bandwidth dành cho định tuyến. EIGRP còn hỗ trợ authentication bằng việc sử dụng các bản tin mã hoá MD5. EIGRP là classless routing protocol, có nghĩa là gửi subnet mask trong thông tin định tuyến. Đặc điểm cuối cùng là EIGRP không chỉ hỗ trợ IP mà còn hỗ trợ IPX và AppletTalk. 2. Operation of EIGRP Metric trong EIGRP sử dụng cùng dạng công thức tính metric của IGRP nhưng lớn hơn 256 lần khiến cho việc tính metric được đảm bảo hơn. EIGRP có 4 module chính: Error! + Protocol-Dependent Modules + Reliable Transport Protocol (RTP) + Neighbor Discovery/ Recovery + Diffusing Update Algorithm (DUAL) a/ Protocol-Dependent Modules EIGRP thi hành module cho IP, IPX và AppleTalk bằng cách mỗi module được giao một nhiêm vụ xác định riêng biệt. Ví dụ module IPX EIGRP được giao trách nhiệm trao đổi thông tin định tuyến về mạng IPX với IPX EIGRP router và đưa thông tin vào module DUAL. EIGRP tự động redistribution với các giao thức khác trong các trường hợp sau: + IPX EIGRP tự động redistribution với IPX RIP và NLSP. + AppleTalk EIGRP tự động redistribution với AppleTalk RTMP. + IP EIGRP tự động redistribution IGRP nếu IGRP process có cùng autonomous system. b/ Reliable Transport Protocol Reliable Transport Protocol (RTP) qun lý việc phân phát packet EIGRP. Reliable có nghĩa là sự phân phát được đảm bảo và packet được phân phát một cách trình tự. Sự phân phát trình tự (Ordered delivery) được đảm bảo bởi 2 số sequence trong packet. Một gán cho router rửi và giá trị này tăng lên một giá trị mỗi khi router gửi gửi một packet mới. Và một số sequence là của packet cuối cùng nhận được từ router đích. Tuy nhiên trong vài trường hợp RTP vẫn sử dụng unreliable delivery, không có Ack và không có số sequence. Các gói tin trong EIGRP bao gồm: Hellos: được sử dụng khám phá neighbor duy trì neighbor, Hello packet s ử dụng multicast để trao đổi và là unreliable delivery. Acknowledgments ( ACKs): là Hello packet nhưng không có data, ACK luôn luôn là unicast và là unreliable delivery. Updates: chuyên trở thông tin định tuyến không giống như RIP và IGRP những gói này chỉ được gửi khi cần thiết và chỉ bao gồm thông tin cần thiết và chỉ gửi tới router yêu cầu. Khi update được gửi bởi một router xác định thì nó là unicast. Còn khi yêu cầu update được gửi bởi nhiêu router khi topo mạng thay đổi thì nó là multicast. Update packet luôn luôn là reliable delivery. Queries và Replies: được sử dụng bởi DUAL finite state machine để quản lý diffusing computation. Query có thể là multicast hay unicast và Reply luôn luôn là unicast. Cả hai packet này đều là reliable delivery. Bất cứ packet nào là reliably multicast và không nhận được ACK từ neighbor thì packet sẽ được gửi lại bằng unicast tới neighbor mà không gửi lại ACK đó. Nếu không nhận được ACK sau 16 lần gửi lại bằng unicast thì neighbor công khai dead. Multicast flow timer: thời gian đợi một ACK trư ớc khi chuyển từ multicast sang unicast. Retransmission timeout (RTO): thời gian giữa 2 unicast liên tiếp. Smooth round-trip time (SRTT): là khoảng thời gian trung bình trôi qua tính từ khi truyền packet tới neighbor đến khi nhận một ACK. Cả hai thông số Multicast flow timer và Retransmission timeout (RTO) đều dựa trên SRTT. c/ Neighbor Discovery/Recovery Bằng cách trao đổi bản tin Hello, EIGRP thiết lập và trao đổi quan hệ với neighbor router. Trong hầu hết các mạng Hello packet là multicast với chu kỳ 5 giầy trừ đi random timer để ngăn chặn synchronization. Chú ý trên các interface: X.25, Frame Relayvà ATM với tốc độ access link là T1 ho ặc nhỏ hơn thì Hello packet là unicast với chu kỳ 60 giây. Khi router nhận Hello packet từ neighbor, trong packet đó có chứa thông số hold timer. Hold timer báo cho router biết thời gian chờ tối đa cho Hello packet liền sau đó. Nếu hết thời gian hold timer mà router không nhận được Hello packet từ neighbor, thì neighbor công khai là unreacha ble và DUAL thông báo là mất neighbor. Hold timer gấp 3 lần Hello timer. d/ The Diffusing Update Algorithm Trước khi tìm hiểu hoạt động của DUAL ta hãy làm quen với các khái niệm sau: Adjacency: khi khởi động router sử dụng Hello để khám phá động neighbor. Sau khi đã thiết lập được quan hệ với neighbor, router sẽ nhận được update từ neighbor. Thông tin update bao gồm tất cả tuyến đường m à neighbor biết được và metric của tất cả các tuyến đó. Đối với mỗi tuyến, router sẽ tính được distance dựa trên những thông số mà neighbor đã quảng cáo. Feasible distance (FD): là metric nhỏ nhất để tới đích. Feasibility condition(FC): là điều kiện mà advertised distance của neighbor phải nhỏ hơn FD. Feasible successor: nếu neighbor quảng bá advertised distance của nó theo mản FC thì neighbor đó sẽ trở thành Feasible successor. Tất cả các Feasible successor được lưu trong topology table. Successor: từ topology table, nó sẽ tìm route nào có metric nhỏ nhất v à lưu nó vào routing table. Và neighbor qung bá route đó sẽ là Seccessor. The DUAL Finite State Machine Khi một router không thực hiện diffusing computations thì mỗi route sẽ ở trạng thái passive state. Khi router tính toán lại danh sách Feasible successor cho một route bất cứ khi nào một input event xảy ra. Input event có thể là: + Sự thay đổi cost của một link nối trực tiếp. + Sự thay đổi trạng thái (up hay down) của link nối trực tiếp. + Khi nhận một update packet. + Khi nhận một query packet. + Khi nhận một reply packet. N ếu distance tới destination sẽ được tính toán lại với bước đầu tiên là: local computation. Có thể xảy ra các trường hợp như sau: N ếu FS khác có distance nhỏ nhất sẽ trở thành successor. N ếu distance mới nhỏ hơn FD thì FD sẽ được update. N ếu distance mới khác với distance đang tồn tại, update sẽ gửi tới tất cả các neighbor. Trong khi đang thực hiện local computation thì những route còn lại vẫn ở trạng thái passive state. Nếu một FS được tìm thấy update sẽ được gửi tới tất cả các neighbor nhưng state không đổi. N ếu không tìm thấy FS trong topology table thì router thực hiện diffusing computations và route sẽ chuyển trạng thái sang active state. Cho đến khi diffusing computations chạy xong và route sẽ quay trở về trạng thái passive state. Chú ý router không thể thực hiện được những việc sau: Thay đổi successor của route. Thay đổi distance mà nó quảng bá cho route đó. Thay đổi FD của route. Chú ý là khi route chuyển sang active state nó sẽ khởi tạo active timer nếu hết thời gian này mà route vẫn không chuyển được về passtive state thì route sẽ được công bố là Suck-in-active(SIA). 3. EIGRP Packet Formats EIGRP packet chính là IP packet tưng ứng với trường protocol number là 88 và kích thước tối đa của EIGRP chính là kích thước cực đại của IP packet_thường là 1500 octet. Cấu trúc cụ thể của EIGRP packet như sau: Error! Version: Opcode: xác định loại EIGRP packet, kết quả cụ thể như bảng sau: Error! Checksum: nó tính cho toàn bộ EIGRP packet trừ IP header. Flags: hiện tại chỉ sử dụng 2 bit cuối cùng trong trường flag. Bit thứ 1 là bit bên phải là 0x00000001 là bit Init, cho biết EIGRP packet gửi k èm theo gửi toàn bộ routing table khi thiết lập quan hệ với neighbor mới. Bit thứ 2 là 0x00000002 là bit Conditional Receive, được sử dụng trong thuật toán độc quyền Reliable Multicasting. Sequence: là trường 32 bit sử dụng bởi RTP. ACK: . không gi ống như routing-by-rumor approach c ủa distance vector các router link state có thông tin trực tiếp từ tất cả các router chạy cùng routing protocol và mỗi router linkstate chạy các thuật. Enhanced Interior Gateway Routing protocol (EIGRP) là m ột sự nâng cấp của IGRP. Bên cạnh những tính chất vốn có IGRP là một distance-vector protocol, EIGRP còn mang một số tính chất của link state. thuật toán Bellman- Ford sau khi đã thông tin định tuyến từ neighbor rồi sau đó mới gửi thông tin định tuyến tới tất cả các neighbor. Ưu điểm hơn so với distace vector protocol, link state protocol