🔥 Nếu bạn từng cấu hình OSPF và thấy dòng log báo “Neighbor Down” hoặc trạng thái OSPF cứ mãi dừng ở Init hay ExStart, thì đó chính là lúc bạn cần hiểu rõ về liên kết láng giềng OSPF (OSPF neighbor adjacency). Đây là “xương sống” của giao thức định tuyến OSPF – nếu hai router không bắt tay (handshake) thành công thông qua gói tin Hello, thì mọi chuyện dừng lại: không có trao đổi LSDB, không có SPF, và chắc chắn không có định tuyến.
🔑 Cơ chế hình thành láng giềng OSPF
👉 Nói nôm na: gói Hello đóng vai trò giống như “cái bắt tay” giữa hai router. Nếu thông số không khớp, bắt tay thất bại.
📦 Các thông tin chính trong gói Hello
⚠️ Một lỗi phổ biến trong lab OSPF
Ngay cả khi Hello/Dead, Area ID, và Auth đều khớp, OSPF vẫn có thể kẹt ở trạng thái Exchange hoặc Loading.
Nguyên nhân: Mismatch MTU trên interface. Khi DBD (Database Description) packet không gửi vừa MTU, quá trình đồng bộ LSDB sẽ fail.
Ví dụ:
Giải pháp: chỉnh MTU đồng nhất hoặc dùng lệnh ip ospf mtu-ignore trên interface.
🎯 Câu hỏi ôn tập
Ba tham số phải khớp giữa các láng giềng OSPF để hình thành adjacency:
✅ Hello/Dead Timer
✅ Area ID
✅ Authentication Data
👉 Nếu chỉ một trong ba sai, hai router sẽ không bao giờ trở thành láng giềng OSPF hoàn chỉnh.
💡 Mẹo thực chiến: khi gặp sự cố láng giềng OSPF không hình thành, hãy kiểm tra thứ tự sau:
🔑 Cơ chế hình thành láng giềng OSPF
- Mỗi router OSPF sẽ gửi gói Hello định kỳ ra địa chỉ multicast 224.0.0.5 trên các interface có bật OSPF.
- Khi một router nhận được gói Hello, nó kiểm tra xem thông tin trong gói có phù hợp với mình không. Nếu phù hợp, nó sẽ phản hồi, đưa ID của router kia vào danh sách láng giềng (Neighbor list).
- Chỉ khi nào một router nhìn thấy chính nó trong gói Hello của láng giềng, thì trạng thái mới nâng lên thành 2-Way (liên lạc hai chiều).
👉 Nói nôm na: gói Hello đóng vai trò giống như “cái bắt tay” giữa hai router. Nếu thông số không khớp, bắt tay thất bại.
📦 Các thông tin chính trong gói Hello
- Router ID (RID) – định danh duy nhất 32-bit cho mỗi router. Thường lấy từ loopback hoặc IP cao nhất. Khuyến nghị cấu hình thủ công bằng lệnh router-id.
- Hello & Dead Timer – mặc định 10s và 40s trên mạng multi-access. Hai router phải có giá trị giống nhau mới làm láng giềng.
- Danh sách láng giềng – để kiểm tra giao tiếp hai chiều.
- Area ID – bắt buộc phải trùng nhau trên cùng segment.
- Router Priority – dùng để bầu chọn DR/BDR.
- Địa chỉ IP của DR/BDR – thông tin cho các mạng multi-access.
- Authentication Data – nếu bật xác thực (plain text hoặc MD5), tất cả router trong area phải có cùng khóa.
- Stub Area Flag – nếu area được định nghĩa là stub, các router phải đồng thuận.
⚠️ Một lỗi phổ biến trong lab OSPF
Ngay cả khi Hello/Dead, Area ID, và Auth đều khớp, OSPF vẫn có thể kẹt ở trạng thái Exchange hoặc Loading.
Nguyên nhân: Mismatch MTU trên interface. Khi DBD (Database Description) packet không gửi vừa MTU, quá trình đồng bộ LSDB sẽ fail.
Ví dụ:
- R1 có MTU = 1500
- R2 có MTU = 1400
👉 Log sẽ báo: “OSPF-4-MTU_MISMATCH: Neighbor X has smaller MTU”
Giải pháp: chỉnh MTU đồng nhất hoặc dùng lệnh ip ospf mtu-ignore trên interface.
🎯 Câu hỏi ôn tập
Ba tham số phải khớp giữa các láng giềng OSPF để hình thành adjacency:
✅ Hello/Dead Timer
✅ Area ID
✅ Authentication Data
👉 Nếu chỉ một trong ba sai, hai router sẽ không bao giờ trở thành láng giềng OSPF hoàn chỉnh.
💡 Mẹo thực chiến: khi gặp sự cố láng giềng OSPF không hình thành, hãy kiểm tra thứ tự sau:
- IP subnet có khớp không?
- Area ID có giống nhau không?
- Hello/Dead timer có đồng bộ không?
- Có bật xác thực OSPF không, và key có trùng không?
- Cuối cùng, kiểm tra MTU mismatch nếu adjacency bị kẹt.