Tự Học CCNA Bài 13: Giao thức EIGRP
Giao thức EIGRP
Tiếp nối series “Tự Học CCNAx” hôm nay mình xin chia sẻ về một giao thức định tuyến EIGRP(Enhanced Interior Gateway Routing Protocol) và cách thức mà giao thức EIGRP hoạt động trong một hệ thống mạng. Thực hiện các vai trò khá quan trọng trong hệ thống mạng – vai trò định tuyến(Routing). Mọi người cùng theo dõi với mình nhé.
Bài viết nên xem qua :
Series “Tự học CCNA”
1. Giới thiệu về EIGRP |
1. Giới thiệu về giao thức EIGRP.
EIGRP(Enhanced Interior Gateway Routing Protocol) là một giao giao thức định tuyến do Cisco phát triển, chỉ chạy trên các sản phẩm của Cisco. Đây là điểm khác biệt của EIGRP so với các giao thức đã được đề cập ở trên. Các giao thức RIP và OSPF là các giao thức chuẩn, có thể chạy trên các router của nhiều hãng khác nhau.
EIGRP được gọi là giao thức hybrid hoặc giao thức Advanced distance vector. Sử dụng multicast hoặc unicast để trao đổi thông tin.
EIGRP được gọi là Advanced distance vector hay Hybrid vì nó được lai giữa 2 hình thức định tuyến này. EIGRP không sử dụng broadcast để gửi thông tin đến các neighbors mà thay vào đó nó sử dụng multicast hay unicast.
Mang màu sắc đặc trưng của Distance vector điển hình như : Luật Split Horizon, Route Poisoning, Poison Reverse.
Việc sử dụng bảng topology và thuật toán DUAL khiến cho EIGRP có tốc độ hội tụ rất nhanh.
Chỉ số AD của EIGRP là 90 cho các route internal và 170 cho các route external.
EIGRP chạy trực tiếp trên nền IP và có số protocol –id là 88.
EIGRP sử dụng 3 Table để thực hiện viết định tuyến.
+ Neighbor Table: chứa tất cả các directly connected neighbors, các next-hop router, interface…
+ Topology Table: chứa tất các các route học được từ các EIGRP neighbors, các destination và metric đến các destination này.
+ Global Routing Table: Các “best-routes” từ EIGRP topology table sẻ được đưa vào bảng Routing Table.Routers chạy EIGRP sẻ gửi các bản tin tin Hello đến các routers láng giềng khác.
Khi Router gửi các gói tin hello và nhận lại được các gói tin này chúng sẻ trở thành neighbor với nhau. EIGRP neighbors sẻ trao đổi thông tin định tuyến và sẻ được lưu và Topology table. Sau đó “best-routes” sẻ được copy vào bảng Routing Table để thực hiện định tuyến.
2. Hoạt động lựa chọn đường đi của EIGRPThiết lập quan hệ láng giềng:
Khi bật EIGRP trên một cổng, router sẽ gửi các gói tin HELLO ra khỏi cổng để thiết lập quan hệ láng giềng với router kết nối trực tiếp với mình. Các gói tin HELLO được gửi đến địa chỉ multicast dành riêng cho EIGRP là 224.0.0.10 với giá trị HELLO –timer với chu kỳ là 5s.
Để thiết lập mối quan hệ láng giềng giữa 2 router, một số thông số được trao đổi qua các gói tin HELLO phải khớp với nhau giữa 2 router, một số thông số đc trao đổi qua các gói tin HELLO phải khớp với nhau giữa 2 router, các thông số này bao gồm:
- Giá trị AS được cấu hình trên mỗi router.
- Các địa chỉ đấu nối giữa 2 router phải cùng subnet.
- Thảo mãn điều kiện xác thực
- Cùng tham số K.
Giá trị AS – Autonomous System:Khi cấu hình EIGRP trên router, người quản trị phải khai báo AS mà router này thuộc về. Giá trị này buộc phải khớp nhau giữa 2 router kết nối trực tiếp với nhau để các router này có thể thiết lập mối quan hệ láng giềng.
Các địa chỉ đầu nối:Để 2 router thiết lập được quan hệ láng giềng với nhau, hai địa chỉ đầu nối giữa 2 router phải cùng subnet.
Thỏa mãn các điều kiện xác thực:Như các giao thức khác, để tang cường tính an ninh trong hoạt động trao đổi thông tin định tuyến,trên router có thể thực hiện cấu hình password để xác thực thông tin định tuyến nhận được từ các router khác. Hai router nếu có cấu hình xác thực thì phải thống nhất với nhau về password đã cấu hình thì mới có thể thiết lập quan hệ láng giềng với nhau.
Cùng bộ tham số K:EIGRP sử dụng một loại công thức tính metric phức tạp, là một hàm của bốn biến số: bandwidth, delay, load, reliability:Metric = f (bandwidth, delay, load, reliability)Các biến số này có thể được gắn với các trọng số để tang hoặc giảm bớt ảnh hưởng của chúng gọi là các tham số K gồm 5 giá trị K1, K2, K3, K4, K5. Các router chạy EIGRP bắt buộc phải thống nhất với nhau về bộ tham số K được sử dụng để có thể thiết lập quan hệ láng giềng với nhau.Việc lựa chọn đường đi tốt nhất của EIGRP có chút khác biệt với các giao thức khát. Ở đây ta xét hình bên dưới với metric trên các đường như hình:
Chúng ta tiến hành tính toán đường đi tốt nhất đến Dest.EIGRP sử dụng một công thức rất phức tạp để tính toán metrics là bandwidth, delay, load và reliability.
Router R3 sẻ quảng bá đến R2 metric từ nó đến Dest. Cost này được gọi là AD(Advertised Distance). Lúc đó giá trị AD này sẻ được lưu vào bảng Topology trên R2. Khi đó R2 sẻ biết rằng AD để đến Dest là 5
Lúc đó giá trị AD này sẻ được lưu vào bảng Topology trên R2. Khi đó R2 sẻ biết rằng AD để đến Dest là 5
Metric 10 giữa R2 và R3 là directly connected. R2 sẻ biết tổng metric để đến Dest là 15. Thông số này được gọi là FD(Feasible Distance) và nó được lưu trong bảng Topology.
Ở đây ta cần ghi nhớ. AD: là thông số mà neighbor cho ta biết metric bao nhiêu từ neighbor đến Destination.
FD: là thông số tổng metric để đi đến Destination. Bước tiếp theo R2 sẻ gửi FD = 15 của nó đến R1. R1 sẻ lưu lại thông tin này trong bảng Topology Table của nó và giá trị này là giá trị AD từ R2 gửi sang.
R1 sau đó sẻ tính ra được khoảng cách FD = 25. Thông tin này sẻ được lưu vào Topology table.Best-route chính là đường nào có thông số FD nhỏ nhất.Best-route đi đến Destination được gọi là Successor. Successor sẻ được copy từ Topology table sang Routing table làm đường chính đi đến đích.
EIGRP cũng cho ta một cơ chế tạo đường backup khi có sự cố. Đường này gọi là Feasible Successor. Vậy cơ chế để tạo ra đường backup Feasible Successor như thế nào. Chúng ta cùng xét sơ đồ sau:
Ta thiết lập bảng Topology của sơ đồ trên cho R1:
AD | FD | ||
R5 | 10 | 15 | |
R2 | 5 | 10 | Successor |
R4 | 9 | 109 |
Theo bảng Topology trên thì Đường đi qua R2 sẻ trở thành Successor (vì có FDmin đến Destination).
Vậy làm sao để ta chọn được Feasible Successor. Ta sẻ tìm theo công thức sau:“AD của đường nào nhỏ hơn FDmin” thì đường đó sẻ trở thành Feasible Successor.
Nói cách khác AD của Feasible Successor < FD của Successor. Vậy thì theo công thức trên đường đi qua R4 (AD=9) sẻ trở thành Feasible Successor và được sử dụng như một đường backup. Nhưng chúng ta chỉ có thể thấy Successor được điền vào bản Routing table.
Nếu đường Successor mất, EIGRP sẻ copy đường Feasible Successor và đưa vào bảng định tuyến ngay lập tức mà không cần bầu chọn lại.
Nên đó chính là lý do ta có thể nói EIGRP hội tụ rất nhanh so với các giao thức khác nếu Feasible Successor đã có sẳn trong Topology table.
Ở đây EIGRP có một đặc tính mà các giao thức khác không có đó là “Load-balancing” trên các đường có metrics không bằng nhau. Ta sẻ sử dụng một thông số đó là “variance”. Trong ví dụ trên ta thấy. Success có FD = 10. Feasible Successor có FD = 109. Để load-balance.
Feasible Successor cần có FD nhỏ hơn “X” lần của Successor.
Nếu ta set variance = 2, ta có FD = 20 < 109 ( không đạt)
Nếu ta set variance = 7, ta có FD = 70 < 109 ( không đạt)
Nếu ta set variance = 11, ta có FD = 110 > 109 (đạt yêu cầu)
Vậy nếu ta set “variance” bằng 11 thì đường Feasible Successor sẻ được điền vào Routing Table và Load-balance cùng lúc với Successor theo tỉ lệ 11:1.
3. Các gói loại gói tin của EIGRP.
Hello packets được gửi qua lại giữa các EIGRP neighbors cho 2 việc: neighbor discovery và recovery. Sau khi nhận được bản tin Hello các Router chạy EIGRP sẻ tiến hành thiết lập neighbor. Nếu không còn nhận được gói tin Hello. Router sẻ “drop” neighbor relationship.EIGRP sử dụng Reliable Transport Protocol(RTP) để trao đổi các gói tin giữa các Router chạy EIGRP sẻ “reliable”. Nó sẻ dụng multicast hoặc unicast để trao đổi các gói tin. Reliable ở đây có nghĩ nếu Router của bạn gửi một gói tin. Bạn muốn nhận một bản tin ACK từ Router láng giềng để biết chắc rằng gói tin đã gửi đến đúng.
R1 sẻ gửi 3 gói tin Hello đến các R5, R2, R4 để thiết lập quan hệ adjacencies.Trong trường hợp này có thực sự hiệu quả khi EIGRP gửi đến 2 gói tin Hello trên 1 đường link. Nhưng không thay vì phải gửi 2 gói tin Hello trên Link. EIGRP sẻ dùng multicast để gửi gói tin trong môi trường Multiaccess như trên hình.Ngoài gói tin Hello thì EIGRP còn có các packets khác như:
Hello: được sử dụng để tìm kím neighbor. Sau khi gửi và nhận gói tin Hello, Router chạy EIGRP sẻ thiết lập quan hệ láng giềng với Router neighbor.
Update: chứa routing information. Gói tin này được gửi và nhận “reliable” tức là có báo nhận ACK. Update packets có thể được gửi bằng unicast để gửi đến single neighbor hoặc dùng multicast để gửi đến một nhóm neighbors.
Query: được sử dụng khi Router EIGRP bị mất route và không có đường nào để backup. Router sẻ gửi gói tin Query đến các neighbor của nó để hỏi về thông tin của route bị mất này nếu neighbor biết.
Reply: các gói tin này được sử dụng để trả lời gói tin Query. Và các gói tin này được báo nhận ACK.
ACK packets được sử dụng để báo nhận của các gói tin Update, Query, Reply. ACK được gửi bằng unicast.
EIGRP không sử dụng từng bảng routing đơn lẻ, mà nó sử dụng 3 bảng. Neighbor table dùng để lưu trữ tất cả thông tin route directly connected. Sau khi đã trở thành neighbor. Các Router chạy EIGRP sẻ trao đổi thông tin định tuyến và được lưu trong EIGRP Topology table. Và bảng Routing Table sẻ dùng để lưu trữ best-path từ Topology table được copy sang. Chúng ta sẻ đi chi tiết về việc trao đổi các gói tin của EIGRP.
Step 1: 2 Router Test1 Test2 được cấu hình chạy EIGRP. Ngay sau khi ta bật tính năng trên các interface, các Router sẻ tiến hành gửi các bản tin Hello để thiết lập quan hệ neighbor.
Step2: Sau khi Router Test2 nhận được bản tin Hello từ Test1 nó sẻ trả lời bằng bản tin Update chứa tất cả các thông tin định tuyến mà Test 2 đang lưu trong Routing table của nó. Nhưng route học được từ interface e0/0 của Test 2 sẻ không được gửi qua Test 1 vì luật Split-Horizon. Tuy nhiên đến đây 2 Router vẫn chưa lên được Adjacency cho đến khi Test 2 gửi bản tin Hello lại cho Test1.
Step3: Sau khi Test2 gửi một bản tin Hello và Test 1 nhận được bản tin này. Chúng sẻ thiết lập để lên neighbor.
Step4: Sau khi cả 2 đã trao đổi các gói tin Hello, chúng ta sẻ thiết lập quan hệ neighbor. Test 1 sẻ gửi ACK đến Test 2 để thông báo rằng nó đã nhận được bản tin update từ Test 2 gửi qua. Và các thông tin định tuyến đã được lưu trong EIGRP Topology table.
Step5: Test 1 tiếp tục gửi bản tin Update chứa thông tin định tuyến của nó đến cho Router Test 2. Sau đó Test 2 sẻ lưu thông tin này vào bản EIGRP Topology Table.
Step6: Sau khi nhận được bản tin Update. Test 2 sẻ trả lời lại bằng 1 bảng tin ACK để báo rằng mọi thứ đã ok.Ngay sau khi trao đổi xong các routing information. EIGRP sẻ bầu chọn ra best-route đi đến từng Destination và đưa các routes này vào Routing table.Sau đây ta sẻ tiến hành debug quá trình thiết lập của một phiên EIGRP
Test1-ITFORVN(config)#router eigrp 1
Test1-ITFORVN(config-router)#no auto-summary
Test1-ITFORVN(config-router)#net 11.11.11.0 0.0.0.255
Test1-ITFORVN(config-router)#net 172.16.12.0 0.0.0.255
Test1-ITFORVN(config-router)#ex
Test2-ITFORVN(config)#router eigrp 1
Test2-ITFORVN(config-router)#no auto-summary
Test2-ITFORVN(config-router)#net 22.22.22.0 0.0.0.255
Test2-ITFORVN(config-router)#net 172.16.12.0 0.0.0.255
Test2-ITFORVN(config-router)#ex
Tiến hành debug eigrp packets hello trên Test2
Test2-ITFORVN#debug eigrp packets hello
Router Test 2 tiến hành gửi và nhận gói tin Hello để thiết lập neighbor. Sau khi Test 1 nhận được Hello packets. EIGRP sẻ báo một log thông báo đã lên được neighbor. 2 Router đã lên thiết lập được Adjacency.
Tiếp theo ta tiến hành debug eigrp packets update
Test1-ITFORVN(config)#do clear ip eigrp neighbors
Log ta debug được khi clear ip eigrp neighbors*Jul 3 03:45:16.954: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.12.1 (Ethernet0/0) is up: new adjacencyQuan hệ neighbor đã thiết lập lại
Các bản tin update được gửi qua lại giữa 2 Router.Ta tiếp tục debug các bản tin ACK.
Test1-ITFORVN(config)#do clear ip eigrp neighbors
Đây là các bản tin ACK để phản hồi các gói tin update trên.Hoặc ta có thể debug tất cả các gói tin của EIGRP.
Sau đó tiến hành clear neighbor để thấy các log debug.
————————————————————————————————————-
Lời Kết bài 12
Bài chia sẻ về“Giao thức định tuyến EIGRP part 1“của mình xin tạm dừng tại đây. Bài chia sẻ tiếp theo mình xin chia sẻ về “Giao thức định tuyến EIGRP part 2 và cách thức hoạt động của giao thức định tuyến này trong hệ thống mạng“. Hãy theo dõi bài viết tiếp theo trong Series Tự học CCNA tại website và blog itforvn.vcode.ovh nhé. Nếu có thắc mắc hay đóng góp các Anh em hãy comment bên dưới nhé! Thân ái!
Tác giả: Quân Lê – ITFORVN.COM
Bạn có thể tương tác và cập nhật thông tin mới nhất của Nhóm Facebook ITFORVN, Các khóa học mới do group tổ chức tại «Portal»
Tất cả bài viết về ccna tại đây
PHẦN I: SWITCHING
Tự Học CCNA Bài 1-Mạng máy tính là gì ?
Tự Học CCNA Bài 2-Mô hình OSI và TCP/IP
Tự Học CCNA Bài 3: Lớp Transport TCP/IP Topology
Tự Học CCNA Bài 4: Lớp Internet TCP/IP
Tự Học CCNA Bài 5: Ethernet LAN và hoạt động chuyển mạch
Tự Học CCNA Bài 6: VLAN, Trunking, VTP
Tự Học CCNA Bài 7: Giao thức Spanning Tree (STP)
Tự Học CCNA Bài 8: Giao Thức RSTP, pVST+
Tự Học CCNA Bài 9: Giao Thức DHCP cấp phát IP động
Tự Học CCNA Bài 10: Etherchannel
PHẦN II: ROUTING
Tự Học CCNA Bài 11: Các Kĩ Thuật Định Tuyến
Tự Học CCNA Bài 12: Giao thức định tuyến RIP
Tự Học CCNA Bài 13: Giao thức EIGRP (phần 1)
Tự Học CCNA Bài 14: Giao thức EIGRP (phần 2)
Tự Học CCNA Bài 15: Giao thức EIGRP (phần 3)
Phần Thực Hành demo lab
Tự Học CCNA Lab 1: Cấu hình Router Cisco cơ bản
Tự Học CCNA Lab 2 Cấu hình CDP, Telnet
Tự Học CCNA Lab 3: Cấu hình VLAN, Trunking VTP
Tự Học CCNA Lab 4: VLAN Routing
Tự Học CCNA Lab 5: Cấu hình STP
Tự Học CCNA Lab 6: Cấu hình DHCP
Tự Học CCNA Lab 7: Cấu hình Etherchannel
Tự Học CCNA Lab 8: Cấu hình Static Route