EIGRP – ENHANCED INTERIOR GATEWAY ROUTING PROTOCOL (Phần 1)
Giới thiệu EIGRP
Giao thức định tuyến đầu tiên mà chúng ta cùng khảo sát qua trong phần này là giao thức EIGRP (Enhanced Interior Gateway Routing Protocol). EIGRP là giao thức được tạo ra và độc quyền bởi Cisco, có nghĩa là bạn chỉ có thể chạy được giao thức này trên các thiết bị phần cứng của Cisco. Nếu bạn muốn sử dụng các thiết bị định tuyến của các hãng khác (như là Juniper…), các bạn cần phải chọn và sử dụng một giao thức định tuyến khác (RIP, OSPF…)
Trong chương này sẽ giới thiệu và cung cấp cho bạn một cái nhìn đầu tiên về EIGRP, cho thấy cách mà EIGRP hoạt động, những điểm khác nhau giữa EIGRP và OSPF. Hầu hết các thông tin trong chương này sẽ giúp bạn kiểm tra lại các kiến thức về EIGRP trong chương trình CCNA, vì vậy nếu bạn có chưa hiểu rõ về EIGRP thì có thể tham khảo và nắm bắt thông tin thông qua thông tin được giới thiệu trong chương này. Sau đây là cái nhìn tổng quan về EIGRP:
- Advanced distance vector hay Hybrid routing protocol
- Sử dụng Multicast hay unicast để trao đổi các thông tin giữa các router
- Hỗ trợ được nhiều giao thức lớp 3 (IP, IPX, AppleTalk…)
- 100% loop-free. (Không gây ra lỗi lặp vô hạn giữa các con đường).
Tại sao lại gọi EIGRP là một Advanced distance vector hay Hybrid routing protocol ? Nếu như bạn đã từng học qua chương trình CCNA thì bạn đã biết qua giao thức RIP, một giao thức distance vector và các phương thức hoạt động đơn giản:
- Không thực hiện tìm kiếm các router láng giềng. (No neighbor discovery)
- Update thông tin định tuyến định kỳ. (Periodic updates)
- Dễ xảy ra vòng lặp vô hạn trên các thông tin định tuyến (Vulnerable to loops)
- Sử dụng hop count làm metric
Tại sao lại gọi EIGRP là một Advanced distance vector hay Hybrid routing protocol ? Nếu như bạn đã từng học qua chương trình CCNA thì bạn đã biết qua giao thức RIP, một giao thức distance vector và các phương thức hoạt động đơn giản:
- Không thực hiện tìm kiếm các router láng giềng. (No neighbor discovery)
- Update thông tin định tuyến định kỳ. (Periodic updates)
- Dễ xảy ra vòng lặp vô hạn trên các thông tin định tuyến (Vulnerable to loops)
- Sử dụng hop count làm metric
Chính vì những nhược điểm của một giao thức định tuyến distance vector (RIP) nên Cisco đã bổ sung và thêm vào các tính năng từ giao thức định tuyến Link-State để cái thiện và khắc phục các điểm yếu của Distance Vector. Chính vì đã có những cải tiến và bổ sung đó nên EIGRP được xem là một Advanced distance vector hay Hybrid routing protocol.
EIGRP không sử dụng gói tin broadcast để gửi các thông tin cập nhật tới các router láng giềng mà chỉ sử dụng các gói tin multicast hay unicast để gửi các thông tin này. Bên cạnh có thể hỗ trợ việc định tuyến trên IPv4 mà EIGRP cũng hỗ trợ việc định tuyến cho IPv6, ngoài ra nó cũng có thể hỗ trợ cho các giao thức lớp 3 khác như IPX, AppleTalk… Cuối cùng nhưng cũng không kém phần quan trọng là… EIGRP có khả năng 100% loop-free (Không gây ra lỗi lặp vô hạn giữa các con đường) và những thông tin sau đây sẽ giúp bạn thấy được những đặc điểm về EIGRP là đúng.

EIGRP chạy trực tiếp trên nền IP, nếu như bạn nhìn vào hình trên, bạn sẽ thấy cấu trúc của một gói tin EIGRP bao gồm Frame header (Ethernet Frame), IP Header (ở đây sử dụng IPv4), và trong gói tin IP chứa các thông tin về EIGRP. EIGRP có protocol number là 88, một số protocol number quen thuộc mà có thể bạn đã biết như TCP (6) hay UDP (17).

Các router EIGRP sẽ bắt đầu gửi gói tin hello đến các router khác giống như trên OSPF, nếu router nhận lại được gói tin phản hồi từ router khác thì 2 router sẽ thiết lập 1 quan hệ láng giềng với nhau (neighbors). Các EIGRP neighbor (láng giềng) sẽ trao đổi các thông tin định tuyến với nhau và sẽ lưu các thông tin này vào trong bảng topology (topology table). Sau khi đã tính toán các con đường trong bảng topology, con đường tối ưu nhất sẽ được sao chép sang bảng định tuyến (routing table) để hoạt động.
Việc lựa chọn con đường tốt nhất trong EIGRP có một chút khác biệt so với các giao thức định tuyến khác, vì vậy chúng ta sẽ cùng nhau tìm hiểu cách thức hoạt động này của EIGRP:

Giờ chúng ta cùng xét sơ đồ gồm 3 router: KingKong, Ann và Carl. Chúng ta cùng xem xét cách mà EIGRP sẽ tính toán để tìm ra con đường tốt nhất đi từ Router KingKong đến mạng đích thuộc router Carl. EIGRP sử dụng một tập hợp các giá trị như bandwidth, delay, load và reliability để tính toán metric cho các con đường dẫn tới mạng đích. Những giá trị này sẽ được sử dụng với một công thức phức tạp để tính toán ra một metric cho mỗi liên kết. Metric càng thấp thì coi như con đường đó được xem là tốt hơn.

Như hình bên trên, giả sử mỗi liên kết đã được gán một giá trị đại diện cho metric dùng trong EIRGP. Trong thực tế, các giá trị metric này rất lớn và sẽ rất khó để khảo sát, vì vậy thì các giá trị này được gán với giá trị thấp để dễ dàng tìm hiểu cách hoạt động của EIRGP.

Router Carl sẽ quảng bá thông tin tới Router Ann thông tin metric của nó tới mạng đích. Về cơ bản, Router Carl sẽ thông báo với Router Ann rằng: “Metric từ tôi đến đích có giá trị là 5”. Thông tin “5” này được gọi là advertised distance (AD).


Tới đây thì chưa phải là công việc trên Router Ann kết thúc và việc lưu trữ trên bảng topology vẫn chưa hoàn tất. Bây giờ Router Carl đã biết khoảng cách được quảng bá bởi Router Carl có giá trị bằng 5. Và Router Ann cũng biết giá trị metric giữa Router Carl và chính nó vì đây là liên kết trực tiếp giữa 2 router này. Lúc này Router Ann đã biết đước tổng metric từ chính nó đến đích thông qua Router Carl, giá trị này được gọi là feasible distance (FD) và thông tin này được lưu trữ trong bảng topology.

Quá trình này vẫn chưa hoàn tất nếu bộ định tuyến của Router KingKong hoạt động, Router Ann sẽ gửi thông tin Advertised Distance có giá trị bằng 15 (là giá trị của Feasible Distance của Router Ann đến mạng đích) tới Router KingKong. Router KingKong sẽ lưu giá trị này vào bảng topology và đặt nó là giá trị Advertised Distance. Router Ann thông báo cho Router KingKong rằng: “Từ tôi đến đích mất giá trị là 15”.

Router KingKong sẽ tiếp tục hoạt động và tính toán giá trị đường đi từ mình đến đích dựa vào giá trị Advertised Distance vừa được nhận và thông tin kết nối trực tiếp của nó và Router Ann. Sau khi đã tính toán thì Router KingKong sẽ lưu giá trị này là Feasible Distance của mình vào bảng topology. Chúng ta có thể hiểu đơn giản về 2 khái niệm này như sau:
- Advertised Distance: Khoảng cách từ láng giềng của router đang xét đến đích.
- Feasible Distance: Khoảng cách từ router đang xét đến đích.
Giá trị tốt nhất (nhỏ nhất) trong các FD về môt mạng đích sẽ được gọi là “SUCCESSOR” Thông tin Successor sẽ được chép vào bảng định tuyến để chuyển tiếp các gói tin tới mạng đích.
Với EIGRP, các con đường có khả năng dự phòng cho Successor được gọi là Feasible Successor. Vậy những con đường nào có khả năng làm Feasible Successor, chúng ta hãy cùng nhau tìm hiểu:

Trong ví dụ mới trên, sơ đồ gồm các router chạy EIGRP, chúng ta cùng xét Router không có tên phía tay trái:
- Con đường nào là Successor (Best path)?
- Ngoài Successor thì còn có con đường nào làm dự phòng không (Feasible Successor) ?
Hãy điền vào bảng sau để cùng nhau khảo sát:
Advertised Distance | Feasible distance | ||
KingKong | |||
Ann | |||
Carl |
Nếu bạn mới học qua về EIGRP thì bạn nên tự mình điền các thông tin về advertised và feasible
distance vào bảng trên để có thể hiểu thêm về cách mà EIGRP hoạt động.
Router KingKong thông báo tới Router đang xét là metric từ nó đến đích là 10, Router Ann thông báo là metric từ nó đến đích là 5 và Router Carl là 9. Từ các thông tin đó ta điền vào bảng:
Advertised Distance | Feasible distance | ||
KingKong | 10 | ||
Ann | 5 | ||
Carl | 9 |
Dựa vào các thông tin Advertised Distance nhận được và các thông tin của các kết nối trực tiếp, chúng ta tính toán được Feasible Distance tới mạng đích như sau:
Advertised Distance | Feasible distance | ||
KingKong | 10 | 15 | |
Ann | 5 | 10 | |
Carl | 9 | 109 |
Con đường có giá trị Feasible Distance thấp nhất là Successor (Router Ann), vậy là chúng ta đã trả lời được câu hỏi đầu tiên.
Advertised Distance | Feasible distance | ||
KingKong | 10 | 15 | |
Ann | 5 | 10 | Successor |
Carl | 9 | 109 |
Bạn sẽ nhìn thấy được thông tin con đường Successor trong bảng định tuyến.
Để trả lời câu hỏi thứ 2: Ngoài Successor thì còn có con đường nào làm dự phòng không (Feasible Successor)? Chúng ta cần phải xem xét một công thức khác:
Advertised distance của feasible successor < Feasible Distance của Successor.
Như vậy, chúng ta cùng xem xét Router KingKong và Carl để xem Router nào thích hợp để trở thành Feasible Successor.
Giá trị Advertised Distance của Router KingKong là 10 bằng với giá trị Feasible Distance của Router Ann, vậy nên nó không thể trở thành Feasible Successor được. Nhưng giá trị Advertised Distance của Router Carl bằng 9 thấp hơn giá trị Feasible Distance của Router Ann nên nó sẽ trở thành Feasible Successor và sử dụng để làm con đường dự phòng (backup path).
Advertised Distance | Feasible distance | ||
KingKong | 10 | 15 | |
Ann | 5 | 10 | Successor |
Carl | 9 | 109 | Feasible Successor |
Như vậy ta đã có Router Ann là Successor và Router Carl là Feasible Successor. Cả hai thông tin này các bạn đều sẽ thấy trong bảng topology nhưng chỉ có thông tin của Successor là được đưa vào bảng định tuyến. Nếu vì một lý do nào đó mà con đường Successor bị hỏng, nếu có Feasible Successor thì lập tức con đường Feasible Successor sẽ được đưa vào bảng định tuyến và sử dụng ngay, làm tăng khả năng hội tụ của mạng sử dụng EIGRP.
Bây giờ, chúng ta cùng khảo sát và để ý kỹ lại giá trị Feasible Distance tới các Router Carl và KingKong… bạn có thấy điểm đặc biệt nào? Các giá trị cho thấy là giá trị metric của Router Carl là tệ hơn so với Router KingKong. Có phải là các kỹ sư thiết kế ra EIGRP đã có một sơ suất tạo ra một lỗi lớn trong việc tìm ra con đường backup nhưng nó không phải là con đường tối ưu?
EIGRP có một cải tiến trong quá trình hoạt động của mình. Cả RIP và OSPF đều có khả năng load-balancing (cân bằng tải ) trên các con đường nếu như chúng có metric giống nhau. EIGRP cũng có khả năng load-balancing này nhưng có một điểm rất thú vị … load-balancing trên những con đường có metric không bằng nhau, số con đường tối đa cho mỗi đích đến mà EIGRP hỗ trợ là 16. Thậm chí nó có thể tốt hơn nhiều khi nhìn vào việc nó có khả năng chia sẻ lưu lượng truy cập một cách tỷ lệ thuận trên các đường truyền. Nếu như chúng ta có một đường Feasible Successor có giá trị Feasible Distance thấp và chỉ bằng 1/5 so với Successor thì lưu lượng sẽ được chia theo tỉ lệ 5:1 ưu tiên đường Successor.

Advertised Distance | Feasible distance | ||
KingKong | 10 | 15 | |
Ann | 5 | 10 | Successor |
Carl | 9 | 109 | Feasible Successor |
Ví dụ trên cho ta thấy thế nào là Successor và Feasible Successor. Nếu như bạn nhìn vào bảng định tuyến thì chỉ thấy thông tin của Successor. Bây giờ, chúng ta sẽ cùng thay đổi một số thông số để Feasible Successor có thể thấy được trên bảng định tuyến để có thể load-balancing.
Bạn có thể thực hiện việc load-balancing bằng cách sử dụng câu lệnh variance. Câu lệnh variance hoạt động với một hệ số multiplier.
- Successor hiện tại có giá trị Feasible Distance là 10
- Feasible Successor hiện tại có giá trị Feasible Distance là 109
Để thực hiện việc cân bằng tải (load-balance) cho Feasible Successor chúng ta cần làm sao cho giá trị Feasible Distance nhỏ hơn giá trị Feasible Distance của Successor nhân với hệ số multiplier.
- Nếu chúng ta gán giá trị cho variance là 2 thì ta sẽ có:
Feasible Distance của Successor is 10 x 2 (multiplier) = 20.
109 vẫn lớn hơn 20 nên chúng ta vẫn chưa thể load-balance.
- Nếu chúng ta gán giá trị cho variance là 5 thì ta sẽ có:
Feasible Distance của Successor is 10 x 5 (multiplier) = 50.
109 vẫn lớn hơn 50 nên chúng ta vẫn chưa thể load-balance.
- Và bây giờ, chúng ta gán giá trị cho variance là 11 thì ta sẽ có:
Feasible Distance của Successor is 10 x 11 (multiplier) = 110.
109 bây giờ nhỏ hơn 110, bây giờ Feasible Successor sẽ được thêm vào bảng định tuyến và sẽ bắt đầu load-balancing.
Có bạn sẽ đặt câu hỏi rằng chúng ta có sử dụng con đường qua Router KingKong được không?
Chúng ta sẽ không sử dụng con đường qua Router KingKong được nó không phải là Feasible Successor.
Như vậy ta có thể thấy được là EIGRP không phải là một giao thức định tuyến hoàn hảo. Hãy nhớ là EIGRP là một giao thức Distance Vector. EIGRP không biết được cấu trúc mạng hoàn chỉnh như một giao thức Link-State (OSPF). Một giao thức Distance Vector thì chỉ quan tâm đến 2 vấn đề chính là quyết định chọn đường nào (vector) và khoảng cách đó là bao xa (Distance).
Vậy là bạn đã biết Feasible Successor là gì và nó chính là cách mà EIGRP tạo ra con đường dự phòng và 100% loop-free. Để dễ dàng hiểu về vấn đề này, chúng ta cùng tham khảo một ví dụ khác:

Điều quan trọng khi nhắc tới EIGRP là nó thực chất là một giao thức Distance Vector, đối với chúng ta thì có thể dễ dàng nhìn rõ một sơ đồ mạng còn EIGRP thì không thể.
Bây giờ trở lại ví dụ trên, chúng ta cùng xây dựng lại bảng topology của Router Hearts
|
Advertised Distance |
Feasible Distance |
|
Spade |
|
|
|
Clubs |
|
|
|
Diamond |
|
|
|
- Router Spade sẽ gửi thông tin về mạng đích tới router Hearts.
- Router Hearts sẽ gửi thông tin về mạng đích tới router Clubs và Diamond.
- Router Clubs sẽ gửi thông tin về mạng đích tới router Diamond.
- Router Diamond sẽ gửi thông tin về mạng đích tới router Clubs.
- Router Clubs will sẽ gửi thông tin về mạng đích trở lại router Hearts.
- Router Diamond sẽ gửi thông tin về mạng đích trở lại router Hearts.
|
Advertised Distance |
Feasible Distance |
|
Spade |
5 |
|
|
Clubs |
25 |
|
|
Diamond |
19 |
|
|
Ở đây chúng ta đã có các giá trị Advertised Distance về mạng đích được quảng bá bởi các router láng giềng. Bước tiếp theo, chúng ta cần xác định giá trị Feasible Distance.
Làm cách nào để có các giá trị Advertised Distance để có thể điền vào bảng trên? Hãy nhìn vào tất cả các router:
Đối với Router Spade thì thật sự dễ dàng. Như trên hình Router Spade quảng bá cho Router Heart rằng metric đến mạng đích là 5 và Router Heart sẽ lưu thông tin này lại trong bảng topology.
Router Clubs sẽ học con đường tới mạng đích thông qua router Hearts và router Diamond. Router Heart sẽ thông báo rằng nó tớ mạng đích một giá trị metric là 5+4=9 đến router Clubs. Vì vậy, tại sao trong bảng trên chúng ta không đặt “9” vào bảng trên thay vì “25”. Một câu hỏi rất hay!
Hãy nhớ rằng Distance Vector sử dụng split-horizon, nột cơ chế giúp cho router không gửi bất kỷ thông tin nào về con đường mà nó đã học được trở lại tren interface mà nó nhận được thông tin đó… do vậy, Router Clubs sẽ không gửi các thông tin về mạng đích mà nó học được trở lại cho router Hearts. Để cụ thể hơn rằng nếu bạn đã học được một thông tin từ một người khác thì bạn không gửi thông tin đó trở ngược lại người mà bạn đã học.
Vậy làm sao mà ta lại có giá trị là 25, hãy cùng nhau làm tiếp:
Router Spade sẽ quảng bá thông tin rằng khoảng cách từ nó đến mạng đích là 5 đến router Hearts. Router Hearts sẽ quảng bá thông tin là khoảng cách từ nó đến mạng đích là 5 + 4 = 9 cho router Diamond.
Router Diamond sẽ quảng bá khoảng cách từ nó đến mạng đích sẽ là 9 + 9 = 18 đến router Clubs. Sau đó router Clubs sẽ gửi thông tin thông báo tới router Hearts rằng khoảng cách từ nó đến mạng đích sẽ là 18 + 7 = 25. Split-horizon sẽ không áp dụng ở đây.
Với việc tính toán tương tự ta có thể tính ra giá trị là 19 trong thông tin quảng bá của router Diamond cho router Clubs.
- Router Spade quảng bá thông tin khoảng cách đến mạng đích là 5 tới router Hearts.
- Router Hearts quảng bá thông tin khoảng cách đến mạng đích là 5+4 = 9 tới router Clubs.
- Router Clubs quảng bá thông tin khoảng cách đến mạng đích là 5+4+3 = 12 tới router Diamond.
- Router Diamond quảng bá thông tin khoảng cách đến mạng đích là 5+4+3+7 = 19 tới router Hearts.
|
Advertised Distance |
Feasible Distance |
|
Spade |
5 |
9 |
|
Clubs |
25 |
28 |
|
Diamond |
19 |
28 |
|
Router Hearts sẽ dựa vào các thông tin đã được quảng bá bởi các router khác và các thông tin trên các giao diện kết nối trực tiếp với nó để tính ra khoảng cách từ nó về các mạng đích trên mỗi giao diện:
|
Advertised Distance |
Feasible Distance |
|
Spade |
5 |
9 |
Successor |
Clubs |
25 |
28 |
|
Diamond |
19 |
28 |
|
Router Spade có giá trị Feasible Distance thấp nhất nên nó sẽ trở thành Feasible. Tiếp theo chúng ta cùng nhau tìm xem con đường nào là Feasible Successor để trở thành con đường dự phòng.
Advertised distance của feasible successor < Feasible Distance của Successor.
Như bảng tính toán trên, ta thấy giá trị Advertised Distance của router Clubs (25) và router Diamond (19) cao hơn giá trị Feasible Distance của Successor (router Spade – 9). Vì vậy, chúng ta không có Feasible Successor ở đây. Điều này liệu có ý nghĩa gì ở đây hay không? Nếu như ta thấy nếu 2 router này cùng trở thành Feasible Successor tạo ra các con đường dự phòng thì chúng sẽ gây ra vòng lặp cho các con đường.
…
Trên đây là tất cả những thông tin của phần giới thiệu về EIGRP. Bạn có thật sự đã nắm bắt được nhà một người mới bắt đầu học hay có thể là lướt lại các kiến thức đã học được từ chương trình CCNA. Hãy chắc chắn rằng bạn hiểu tất cả các khái niệm quan trọng về EIGRP bởi vì trong các chương tiếp theo chúng ta sẽ tìm hiểu sâu hơn về các phần quan trọng và cót lõi.
Lược dịch “How to master CCNP – Route”
NGUYỄN VĂN HUY DŨNG
Don’t compare yourself with anyone in this world…if you do so, you are insulting yourself.
Bill Gates
When something is important enough, you do it even if the odds are not in your favor.