- Một số khái niệm trong EIGRP
Các router láng giềng sau khi đã vượt qua các phép kiểm tra trong danh sách dưới đây sẽ được xem như là láng giềng. Ở thời điểm đó, các router có thể trao đổi tuyến và sẽ được hiển thị trong kết quả của lệnh show ip eigrp neighbor.
- Phải vượt qua tiến trình xác thực.
- Phải có cùng chỉ số AS.
- Phải tin rằng địa chỉ nguồn IP của gói tin Hello nhận được là địa chỉ chính (primary) của cổng kết nối trực tiếp trên router đó.
- Giá trị hệ số K phải giống nhau.
Cơ chế này làm cho xuất hiện một vài khả năng cần quan tâm. Ví dụ, nếu router bị cấu hình sai với các giá trị mặt nạ mạng con khác nhau, phép kiểm tra vẫn thành công. Nếu một router được cấu hình với địa chỉ 10.1.2.1/24 và router kia cấu hình 10.1.2.2/23, cả hai vẫn có thể hình thành quan hệ láng giềng, nếu tất cả các phép kiểm tra khác đều đạt. Mặc dù EIGRP vẫn hỗ trợ cơ chế địa chỉ phụ (secondary) và các mạng con, EIGRP vẫn gán địa chỉ nguồn của tất cả các thông điệp của nó bằng địa chỉ chính và địa chỉ IP của router láng giềng phải nằm trong cùng địa chỉ mạng của mạng con.
Mục cuối cùng trong danh sách các mục cần kiểm tra là các giá trị K. Các giá trị K là các hằng số định nghĩa hệ số nhân được dùng bởi EIGRP khi tính toán chi phí. Việc cài đặt có thể được thay đổi bằng lệnh metric weights tos k1 k2 k3 k4 k5. Ở chế độ mặc định, lệnh này gán giá trị 0 1 0 1 0 0, nghĩa là chỉ có băng thông và độ trễ được dùng để tính metric. Ví dụ trong chương này sẽ đổi giá trị thiết lập về 0 0 0 1 0 0, trong đó loại bỏ thông số băng thông ra khỏi việc tính toán và giúp cho khái niệm chi phí trở nên rõ ràng hơn một chút.
Bên cạnh việc đơn giản kiểm tra xem thông số đúng có được dùng hay không, các thông điệp Hello cũng được phục vụ như một cơ chế duy trì (keepalive). Các router láng giềng tiếp tục gửi gói tin Hello theo kiểu multicast dựa trên thông số hello-interval của từng cổng. Nếu một router không nghe được từng láng giềng sau một khoảng thời gian, còn được gọi là thời gian đợi của EIGRP (holdtime) cho láng giềng đó, tất cả các tuyến thông qua router láng giềng được xem là không hoạt động.
Ví dụ dưới đây mô tả một router hiển thị vài thông tin cơ bản liên quan đến hoạt động của EIGRP. Ví dụ bắt đầu bằng bốn router R1, R2, S1 và S2 trong đó chỉ có các cổng LAN chung đã hoạt động tốt để kiểm tra quá trình gửi gói Hello. Cuối của ví dụ, kết nối PVC từ R2 đến R5 sẽ được bật lên, nhưng EIGRP sẽ không hoạt động do giá trị K bị lệch.
Hình 9.1: Mô hình mạng chạy EIGRP
Đầu tiên, lệnh debug sẽ được bật trên R1.
R1# debug eigrp packet hello
EIGRP Packets debugging is on
(HELLO)
Jan 11 13:27:19.714: EIGRP: Received HELLO on FastEthernet0/0 nbr 172.31.11.201
Jan 11 13:27:19.714: AS 1, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ
un/rely 0/0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!
Cổng LAN của S2 sẽ được bật lên nhưng không hiển thị. Dưới đây là một vài thông điệp sẽ xuất hiện do có lệnh interface brought up, không hiển thị lệnh eigrp log-neighbor-changes.
Jan 11 13:27:19.995: EIGRP: New peer 172.31.11.202
Jan 11 13:27:19.995: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 172.31.11.202
(FastEthernet0/0) is up: new adjacency
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!
Kế tiếp, chỉ có vài router trở thành quan hệ láng giềng. Các router này là các router đã vượt qua quá trình kiểm tra tất cả các thông số. Giá trị bộ định thời được hiển thị, tất cả các thông số thời gian này đều được gán về giá trị tối đa và trừ dần về 0. Thông số thời gian sẽ được tái thiết lập khi router nhận được bất cứ thông điệp nào từ láng giềng của nó. Cột H bên trái chỉ ra thứ tự trong đó các router trở thành láng giềng.
R1# show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
2 172.31.11.2 Fa0/0 4 00:03:10 1 4500 0 233
1 172.31.11.202 Fa0/0 11 00:04:43 1 4500 0 81
0 172.31.11.201 Fa0/0 14 00:05:11 1927 5000 0 84
Dưới đây, mạch PVC giữa R2 và R5 được bật lên nhưng giá trị K của R5 không giống của R2. Cả hai thông điệp đều là các thông điệp log nhưng không có lệnh debug nào được thực hiện trên cả hai router.
Kế tiếp là thông điệp trên R5.
03:55:51: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 172.31.25.2 (Serial0) is down: K-value mismatch
Kế tiếp là thông điệp trên R2
Jan 11 13:21:45.643: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 172.31.25.5 (Serial0/0.5) is down: Interface Goodbye received
Chú ý rằng khi PVC giữa R2 và R5 được bật lên, thông điệp hiện ra trên R5 là khá rõ ràng nhưng thông điệp trên R2 thì không hiển thị bất cứ thông tin nào về giá trị K. Một vài phiên bản sau của IOS Cisco đã chỉ sai các thông điệp gán sai giá trị K như là một loại thông điệp mới có tên là Goodbye. Các thông điệp Goodbye cho các router khác thông báo cho nhau rằng nó đang hủy quan hệ một cách êm thắm. Bạn hãy nhớ rằng các thông điệp này chỉ đơn giản là kết quả của giá trị K-value không khớp nhau.
Một điều thú vị là các thông số Hello và Holdtime không cần thiết phải giống nhau cho các router quan hệ láng giềng EIGRP hình thành. Thật ra một router không dùng các thông số thời gian của chính nó khi giám sát một quan hệ láng giềng. Thay vào đó, một router dùng các thông số thời gian của láng giềng, như được trao đổi trong thông điệp Hello. Ví dụ, trong hình 9-1, R2 đã được cấu hình với các thông số Hello và Holdtime được gán bằng 2 và 6. R1 được gán các thông số tương ứng là 5 và 15. Khi R1 giám sát kết nối của nó đến R2, R1 sẽ thiết lập lại khoảng thời gian holdtime bằng 6 giây khi nhận được một thông điệp EIGRP. Với khoảng thời gian Hello bằng 2 giây, R1 liệt kê khoảng thời gian Holdtime của R2 như là một giá trị thay đổi giữa 6 và 4, với giả thiết là không có gói Hello nào bị mất.
Bạn hãy chú ý lệnh show ip eigrp neighbor trên R1 gần cuối của ví dụ. Trong tình trạng hoạt động bình thường, giá trị này thay đổi giữa 6 giây và 4 giây. Các giá trị khác mặc định bằng 5 giây và 15. Vì vậy giá trị Holdtime của R1 trong kết quả lệnh trên thay đổi giữa 15 và 10 giây cho các router láng giềng, giả sử rằng không có gói Hello nào bị mất.