OSPF Troubleshooting: Mismatched Timers – Khi Hello Timer và Dead Timer Không Khớp
Một trong những nguyên nhân phổ biến khiến OSPF không thể hình thành neighbor adjacency là sự không đồng nhất về Timer giữa hai router. Khác với EIGRP, OSPF yêu cầu các giá trị Hello Timer và Dead Timer phải giống nhau giữa các neighbor. Nếu các giá trị này khác nhau, router sẽ từ chối thiết lập quan hệ láng giềng mặc dù Layer 1, Layer 2 và IP Connectivity đều hoạt động bình thường.
OSPF Timer Mặc Định
Đối với các môi trường Ethernet thông thường (Broadcast hoặc Point-to-Point): Hello Timer = 10 giây; Dead Timer = 40 giây.
Đối với các môi trường Non-Broadcast hoặc Point-to-Multipoint:
Hello Timer = 30 giây; Dead Timer = 120 giây.
Dead Timer thường có giá trị gấp 4 lần Hello Timer. Nếu trong khoảng thời gian Dead Timer không nhận được gói Hello từ neighbor, OSPF sẽ xem neighbor đó đã mất kết nối và xóa adjacency. Kiểm Tra Timer Trên Interface
Các bạn hãy sử dụng lệnh:
show ip ospf interface gigabitEthernet 1/0
Kết quả được hiển thị như sau:
Timer intervals configured,
Hello 10,
Dead 40,
Wait 40,
Retransmit 5
Trong ví dụ trên, interface Gi1/0 đang sử dụng giá trị mặc định:
Hello = 10; Dead = 40
Đây là một trong những thông tin đầu tiên cần kiểm tra khi troubleshooting OSPF Neighbor.
Dấu Hiệu Nhận Biết Timer Không Khớp
Giả sử Router R1 cấu hình:
Hello = 10
Dead = 40
Trong khi Router R2 cấu hình:
Hello = 11
Dead = 44
Mặc dù hai router vẫn nhận được gói Hello của nhau, OSPF sẽ từ chối thiết lập adjacency vì các tham số không giống nhau.
Lúc này trạng thái neighbor thường sẽ không vượt qua được giai đoạn Init hoặc sẽ không xuất hiện trong bảng neighbor.
Công Cụ Hữu Ích: debug ip ospf hello
Khi nghi ngờ có vấn đề về Timer, lệnh debug là công cụ rất hiệu quả:
debug ip ospf hello
Kết quả:
OSPF-1 HELLO Gi1/0:
Mismatched hello parameters from 10.1.12.2
Dead R 44 C 40,
Hello R 11 C 10
Ý nghĩa:
R = Remote Router
C = Current(Local) Router
Router nhận thấy:
Remote:
Hello = 11
Dead = 44
Local:
Hello = 10
Dead = 40
Do các giá trị khác nhau nên adjacency bị từ chối.
Cách Khắc Phục
Chúng ta cần đảm bảo cả hai đầu sử dụng cùng giá trị Timer.
Ví dụ:
interface GigabitEthernet1/0
ip ospf hello-interval 10
ip ospf dead-interval 40
Hoặc khôi phục về mặc định:
no ip ospf hello-interval
no ip ospf dead-interval
Sau khi đồng bộ Timer, OSPF sẽ tiến hành trao đổi Database Description (DBD), LSAs và hình thành Full Adjacency bình thường.
Góc Nhìn Thực Chiến CCNP/CCIE
Khi OSPF không hình thành neighbor, nhiều kỹ sư thường tập trung kiểm tra:
Một kinh nghiệm thực tế là khi so sánh cấu hình OSPF giữa hai router, hãy áp dụng phương pháp "spot-the-difference": đặt kết quả show ip ospf interface của hai đầu cạnh nhau và so sánh từng tham số. Chỉ một khác biệt nhỏ ở Hello hoặc Dead Timer cũng đủ khiến OSPF từ chối hình thành adjacency mặc dù mọi thứ khác đều chính xác. Chúc các bạn thành công!
Một trong những nguyên nhân phổ biến khiến OSPF không thể hình thành neighbor adjacency là sự không đồng nhất về Timer giữa hai router. Khác với EIGRP, OSPF yêu cầu các giá trị Hello Timer và Dead Timer phải giống nhau giữa các neighbor. Nếu các giá trị này khác nhau, router sẽ từ chối thiết lập quan hệ láng giềng mặc dù Layer 1, Layer 2 và IP Connectivity đều hoạt động bình thường.
OSPF Timer Mặc Định
Đối với các môi trường Ethernet thông thường (Broadcast hoặc Point-to-Point): Hello Timer = 10 giây; Dead Timer = 40 giây.
Đối với các môi trường Non-Broadcast hoặc Point-to-Multipoint:
Hello Timer = 30 giây; Dead Timer = 120 giây.
Dead Timer thường có giá trị gấp 4 lần Hello Timer. Nếu trong khoảng thời gian Dead Timer không nhận được gói Hello từ neighbor, OSPF sẽ xem neighbor đó đã mất kết nối và xóa adjacency. Kiểm Tra Timer Trên Interface
Các bạn hãy sử dụng lệnh:
show ip ospf interface gigabitEthernet 1/0
Kết quả được hiển thị như sau:
Timer intervals configured,
Hello 10,
Dead 40,
Wait 40,
Retransmit 5
Trong ví dụ trên, interface Gi1/0 đang sử dụng giá trị mặc định:
Hello = 10; Dead = 40
Đây là một trong những thông tin đầu tiên cần kiểm tra khi troubleshooting OSPF Neighbor.
Dấu Hiệu Nhận Biết Timer Không Khớp
Giả sử Router R1 cấu hình:
Hello = 10
Dead = 40
Trong khi Router R2 cấu hình:
Hello = 11
Dead = 44
Mặc dù hai router vẫn nhận được gói Hello của nhau, OSPF sẽ từ chối thiết lập adjacency vì các tham số không giống nhau.
Lúc này trạng thái neighbor thường sẽ không vượt qua được giai đoạn Init hoặc sẽ không xuất hiện trong bảng neighbor.
Công Cụ Hữu Ích: debug ip ospf hello
Khi nghi ngờ có vấn đề về Timer, lệnh debug là công cụ rất hiệu quả:
debug ip ospf hello
Kết quả:
OSPF-1 HELLO Gi1/0:
Mismatched hello parameters from 10.1.12.2
Dead R 44 C 40,
Hello R 11 C 10
Ý nghĩa:
R = Remote Router
C = Current(Local) Router
Router nhận thấy:
Remote:
Hello = 11
Dead = 44
Local:
Hello = 10
Dead = 40
Do các giá trị khác nhau nên adjacency bị từ chối.
Cách Khắc Phục
Chúng ta cần đảm bảo cả hai đầu sử dụng cùng giá trị Timer.
Ví dụ:
interface GigabitEthernet1/0
ip ospf hello-interval 10
ip ospf dead-interval 40
Hoặc khôi phục về mặc định:
no ip ospf hello-interval
no ip ospf dead-interval
Sau khi đồng bộ Timer, OSPF sẽ tiến hành trao đổi Database Description (DBD), LSAs và hình thành Full Adjacency bình thường.
Góc Nhìn Thực Chiến CCNP/CCIE
Khi OSPF không hình thành neighbor, nhiều kỹ sư thường tập trung kiểm tra:
- Area ID
- Authentication
- MTU
- Network Type
- Passive Interface
Một kinh nghiệm thực tế là khi so sánh cấu hình OSPF giữa hai router, hãy áp dụng phương pháp "spot-the-difference": đặt kết quả show ip ospf interface của hai đầu cạnh nhau và so sánh từng tham số. Chỉ một khác biệt nhỏ ở Hello hoặc Dead Timer cũng đủ khiến OSPF từ chối hình thành adjacency mặc dù mọi thứ khác đều chính xác. Chúc các bạn thành công!