Danh mục sản phẩm
Routing động OSPF cơ bản trên FortiGate
1. Liên hệ thực tế
Doanh nghiệp có 3 FortiGate đặt tại trụ sở chính và 2 chi nhánh, kết nối với nhau qua VPN site-to-site. Trước đây anh Nam khai báo static route thủ công cho từng subnet ở mỗi đầu — mỗi lần chi nhánh thêm VLAN mới, anh phải vào sửa route ở cả 3 thiết bị, dễ sót và dễ sai.
Chị Lan gợi ý: "Với quy mô 3 thiết bị trở lên và mạng thường xuyên thay đổi, đã đến lúc dùng OSPF thay vì static route thủ công — các router tự động học route của nhau, chi nhánh thêm VLAN mới thì route tự lan truyền, không cần anh vào sửa tay từng thiết bị."
Anh Nam băn khoăn: "OSPF nghe phức tạp, em sợ cấu hình sai lại rối hơn static route."
Chị Lan: "Ở quy mô nhỏ như công ty mình, OSPF cơ bản không phức tạp như anh nghĩ — chỉ cần nắm đúng khái niệm Area, Router ID, và cách bầu DR/BDR là đủ chạy ổn định."
Bài này giới thiệu OSPF cơ bản trên FortiGate: khái niệm Area, Router ID, cấu hình network/interface, và cơ chế bầu chọn DR/BDR — đủ nền tảng để triển khai một mạng OSPF đơn giản nhiều chi nhánh.
2. Kiến thức cốt lõi
2.1 OSPF là gì, vì sao chọn OSPF thay vì static route
OSPF (Open Shortest Path First) là giao thức định tuyến động dạng link-state, phổ biến rộng rãi trong mạng doanh nghiệp và ISP nhờ khả năng mở rộng tốt và hội tụ (convergence) nhanh so với các giao thức distance-vector cũ hơn. Thay vì khai báo static route thủ công cho từng subnet, các router chạy OSPF tự động trao đổi thông tin topology và tính toán đường đi ngắn nhất.
OSPF phù hợp khi: mạng có từ 3 router trở lên cần trao đổi route với nhau, topology thay đổi thường xuyên (thêm subnet, thêm chi nhánh), hoặc cần dự phòng tự động khi một đường liên kết chết mà không cần cấu hình lại thủ công.
2.2 Router ID — định danh duy nhất cho mỗi router
Mỗi FortiGate tham gia OSPF cần một Router ID duy nhất trong toàn hệ thống — thường chọn theo định dạng địa chỉ IPv4 (dù không nhất thiết phải là IP thật đang dùng trên interface nào).
config router ospf
set router-id 10.11.101.1
end
⚠️ Lưu ý: Nếu không khai báo tường minh
router-id, FortiGate tự chọn theo địa chỉ của interface loopback (nếu có) hoặc địa chỉ IP cao nhất trong số các interface đang "up" — cách tự chọn này có thể thay đổi theo thời gian nếu interface lên xuống, gây khó khăn khi troubleshoot. Nên luôn khai báorouter-idtường minh, và ưu tiên đặt trên Loopback Interface (đã học ở bài Interface types) để đảm bảo ổn định không phụ thuộc cổng vật lý.
2.3 Area — đơn vị phân vùng của OSPF
OSPF chia mạng thành các Area, mỗi Area có một số định danh dạng IPv4 (ví dụ 0.0.0.0). Area 0 (backbone area) luôn là area trung tâm bắt buộc — mọi area khác đều phải kết nối trực tiếp vào Area 0 thông qua một router đóng vai trò ABR (Area Border Router).
config router ospf
set router-id 10.11.101.1
config area
edit 0.0.0.0
next
end
config network
edit 1
set prefix 10.11.0.0 255.255.0.0
next
edit 2
set prefix 192.168.102.0 255.255.255.0
next
end
end
Khối config network khai báo dải mạng nào thuộc area nào — bất kỳ interface nào có địa chỉ IP nằm trong dải prefix khai báo sẽ tự động tham gia OSPF trên area tương ứng.
⚠️ Lưu ý: Với mạng nhỏ chỉ có một Area duy nhất, khai báo
0.0.0.0(Area 0) cho toàn bộ là đủ — không cần chia nhiều Area. Việc chia nhiều Area chỉ thực sự cần thiết khi mạng đủ lớn, muốn giới hạn phạm vi lan truyền thông tin định tuyến (giảm tải tính toán SPF) giữa các vùng.
2.4 Cấu hình OSPF Interface — điều chỉnh hành vi từng cổng
Ngoài khai báo network chung, có thể tinh chỉnh thông số riêng cho từng interface qua khối ospf-interface:
config router ospf
config ospf-interface
edit "to-branch-a"
set interface "port1"
set priority 250
set hello-interval 10
set dead-interval 40
next
end
end
hello-interval— chu kỳ gửi gói Hello để duy trì quan hệ láng giềng (neighbor), mặc định 10 giây trên mạng broadcast.dead-interval— thời gian không nhận được Hello từ láng giềng trước khi coi láng giềng đó đã chết, mặc định 40 giây (gấp 4 lần hello-interval).priority— ảnh hưởng tới việc bầu chọn DR/BDR, xem mục tiếp theo.
⚠️ Lưu ý:
hello-intervalvàdead-intervalphải khớp nhau giữa các router láng giềng trên cùng một segment mạng — nếu hai đầu đặt giá trị khác nhau, quan hệ láng giềng OSPF sẽ không bao giờ hình thành được (stuck ở trạng thái down hoặc init), dù cấu hình Area và network đều đúng.
2.5 Bầu chọn DR/BDR trên mạng broadcast
Trên các mạng dạng broadcast (như Ethernet, nơi nhiều router cùng chia sẻ một segment), OSPF bầu ra một Designated Router (DR) và Backup Designated Router (BDR) để giảm số lượng quan hệ láng giềng cần đồng bộ đầy đủ — thay vì mọi router đều phải trao đổi đầy đủ với nhau (full-mesh), tất cả chỉ cần đồng bộ qua DR/BDR.
Router có priority cao nhất (khoảng giá trị 0–255) trên segment sẽ trở thành DR; router có priority cao thứ nhì trở thành BDR. Nếu priority bằng nhau, Router ID cao hơn sẽ thắng. Đặt priority 0 khiến router đó không bao giờ được bầu làm DR/BDR — hữu ích khi muốn cố định vai trò DR/BDR cho các thiết bị mạnh hơn, tránh để router yếu (như chi nhánh nhỏ) vô tình trở thành DR.
⚠️ Lưu ý: Việc bầu DR/BDR chỉ áp dụng cho mạng dạng broadcast hoặc non-broadcast; trên mạng point-to-point (thường gặp khi kết nối qua VPN tunnel giữa 2 thiết bị), khái niệm DR/BDR không tồn tại — tham số
prioritytrên loại mạng này không có tác dụng.
2.6 Kiểm tra trạng thái OSPF
get router info ospf status get router info ospf neighbor get router info ospf interface
get router info ospf neighbor cho biết quan hệ láng giềng đã hình thành đầy đủ hay chưa (trạng thái Full là đã đồng bộ hoàn tất) — đây là lệnh đầu tiên nên chạy khi nghi ngờ OSPF không hoạt động đúng, trước khi đào sâu vào log debug chi tiết hơn.
3. Hỏi & Đáp
Nếu quên khai báo Router ID, FortiGate có báo lỗi không?
Không báo lỗi — FortiGate sẽ tự chọn Router ID theo địa chỉ IP cao nhất trong số các interface đang hoạt động (ưu tiên Loopback nếu có). Tuy nhiên cách tự chọn này có thể thay đổi nếu interface lên xuống theo thời gian, nên luôn khuyến khích khai báo tường minh để tránh nhầm lẫn khi debug.
Vì sao mọi Area đều phải kết nối trực tiếp vào Area 0, không được nối vòng qua Area khác?
Đây là quy tắc thiết kế cốt lõi đảm bảo tính đúng đắn của việc tính toán inter-area routing trong kiến trúc phân cấp hai tầng của OSPF. Giữa các area, OSPF không chạy thuật toán SPF đầy đủ như trong nội bộ một area — thay vào đó, ABR quảng bá thông tin route dưới dạng summary (LSA loại 3), mang tính chất gần giống distance-vector. Nếu cho phép hai area không phải Area 0 kết nối trực tiếp với nhau, thông tin route liên-area có thể được tính toán sai lệch hoặc không nhất quán. Bắt buộc mọi area phải đi qua Area 0 làm trung gian giúp đảm bảo đường đi giữa các area luôn được tính đúng và nhất quán trên toàn hệ thống.
hello-interval và dead-interval có bắt buộc chỉnh sửa không, hay để mặc định là đủ?
Với đa số triển khai thông thường, giá trị mặc định (10 giây/40 giây trên mạng broadcast) là đủ dùng. Chỉ cần chỉnh khi có yêu cầu đặc thù — ví dụ muốn phát hiện mất kết nối nhanh hơn (giảm cả hai giá trị), miễn đảm bảo khớp nhau ở cả hai đầu láng giềng.
Priority 0 và không tham gia OSPF trên interface đó có giống nhau không?
Không giống — priority 0 vẫn cho phép interface tham gia đầy đủ vào OSPF (trao đổi route, hình thành quan hệ láng giềng bình thường), chỉ riêng việc router đó không bao giờ được bầu làm DR/BDR trên segment đó. Muốn interface hoàn toàn không tham gia OSPF (không gửi Hello, không quảng bá), cần dùng passive-interface thay vì chỉnh priority.
4. Quiz
Câu 1: Area nào trong OSPF luôn đóng vai trò trung tâm, bắt buộc mọi Area khác phải kết nối trực tiếp vào?
- A. Area 1
- B. Area cuối cùng được tạo
- C. Area 0 (0.0.0.0)
- D. Không có Area nào bắt buộc
Câu 2: Nếu không khai báo tường minh router-id, FortiGate sẽ tự chọn theo tiêu chí nào?
- A. Luôn là 0.0.0.0
- B. Địa chỉ IP cao nhất trong số các interface đang hoạt động, ưu tiên Loopback nếu có
- C. Ngẫu nhiên mỗi lần khởi động
- D. Không thể hoạt động nếu thiếu router-id
Câu 3: Trên mạng dạng nào thì khái niệm DR/BDR trong OSPF không tồn tại và tham số priority không có tác dụng?
- A. Broadcast
- B. Non-broadcast
- C. Point-to-point
- D. Tất cả các loại mạng đều bầu DR/BDR
Câu 4: hello-interval và dead-interval giữa hai router láng giềng OSPF cần thỏa điều kiện gì để hình thành quan hệ láng giềng?
- A. Không cần khớp nhau, OSPF tự động điều chỉnh
- B. Phải khớp nhau giữa hai đầu, nếu không quan hệ láng giềng sẽ không hình thành được
- C. Chỉ cần dead-interval khớp, hello-interval không quan trọng
- D. Chỉ áp dụng cho Area 0
Câu 5: Đặt priority 0 cho một interface OSPF có ý nghĩa gì?
- A. Interface đó không tham gia OSPF
- B. Interface đó không bao giờ được bầu làm DR/BDR nhưng vẫn tham gia OSPF bình thường
- C. Interface đó tự động trở thành DR
- D. Không có tác dụng gì trong FortiOS 7.0 trở lên
👉 Đáp án
Câu 1: C Area 0 (0.0.0.0) là backbone area, luôn đóng vai trò trung tâm bắt buộc mọi area khác phải kết nối trực tiếp vào, để đảm bảo tính đúng đắn của việc tính toán inter-area routing trong kiến trúc phân cấp của OSPF.
Câu 2: B Nếu không khai báo tường minh, FortiGate tự chọn Router ID theo địa chỉ IP cao nhất trong số các interface đang "up", ưu tiên Loopback Interface nếu có sẵn.
Câu 3: C Trên mạng point-to-point (thường gặp qua VPN tunnel giữa 2 thiết bị), OSPF không bầu DR/BDR, nên tham số priority không có tác dụng trên loại mạng này.
Câu 4: B hello-interval và dead-interval phải khớp nhau giữa các router láng giềng trên cùng segment; nếu khác nhau, quan hệ láng giềng OSPF sẽ không bao giờ hình thành được dù các cấu hình khác đều đúng.
Câu 5: B priority 0 khiến interface đó không bao giờ được bầu làm DR/BDR, nhưng vẫn tham gia OSPF đầy đủ — trao đổi route và hình thành quan hệ láng giềng bình thường.
📚 Bài viết thuộc khóa học FortiGate của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| IPv6 cơ bản trên FortiGate: Interface, Policy, Routing | Mục lục khóa học FortiGate |
|
