Loading...

Routing Động BGP Cơ Bản Trên FortiGate

1. Liên hệ thực tế

Anh Nam đang triển khai FortiGate cho một khách hàng có 2 đường truyền Internet từ 2 ISP khác nhau, mỗi đường đều được ISP cấp một dải IP public riêng và yêu cầu định tuyến động thay vì static route. Anh Nam hỏi chị Lan: "Em dùng OSPF được không, cấu hình quen tay rồi?"

Chị Lan giải thích: "OSPF là Interior Gateway Protocol (IGP), dùng để trao đổi route bên trong một tổ chức — giữa các router/firewall của cùng một Autonomous System (AS). Còn khi FortiGate cần trao đổi bảng định tuyến trực tiếp với router của ISP — tức là giữa hai AS khác nhau — thì phải dùng BGP (Border Gateway Protocol), vì đây là giao thức duy nhất được thiết kế cho việc peering giữa các AS độc lập. Ngoài ra, trong các mô hình SD-WAN hub-spoke quy mô lớn, BGP cũng thường được chọn thay OSPF vì khả năng scale tốt hơn và kiểm soát route qua AS-Path, Community linh hoạt hơn nhiều."


2. Kiến thức cốt lõi

2.1 BGP là gì và khi nào dùng BGP thay vì OSPF

BGP là một path-vector routing protocol, khác về bản chất so với OSPF (link-state) hay RIP (distance-vector). BGP không tính toán "đường đi ngắn nhất" theo cost như OSPF, mà chọn route dựa trên một chuỗi thuộc tính (attribute) như AS-Path, Local Preference, MED... Vì thiết kế để hoạt động ở quy mô Internet (hàng trăm nghìn route), BGP hội tụ chậm hơn OSPF nhưng ổn định và có khả năng kiểm soát chính sách định tuyến (routing policy) mạnh hơn nhiều.

Tiêu chíOSPFBGP
Loại giao thức Link-state (IGP) Path-vector (EGP)
Phạm vi Trong 1 AS Giữa các AS khác nhau (hoặc iBGP trong 1 AS)
Cơ chế chọn đường Cost (bandwidth) AS-Path, Local-Pref, MED, Weight...
Tốc độ hội tụ Nhanh Chậm hơn nhưng ổn định hơn ở quy mô lớn
Use case điển hình FortiGate Trao đổi route nội bộ với Core Switch/Router Peering với ISP; ADVPN/SD-WAN hub-spoke quy mô lớn

2.2 eBGP vs iBGP

  • eBGP (External BGP): peering giữa 2 router thuộc 2 AS khác nhau — ví dụ FortiGate (AS 65001) với router ISP (AS 65010). Đây là trường hợp phổ biến nhất khi FortiGate peer trực tiếp với ISP.
  • iBGP (Internal BGP): peering giữa các router cùng một AS — thường gặp trong mô hình ADVPN, nơi hub và các spoke FortiGate dùng chung 1 AS Number, và hub đóng vai trò Route Reflector để tránh phải full-mesh.

eBGP vs iBGP Trên FortiGate — Peering Giữa Các AS Và Trong Cùng AS eBGP — Giữa 2 AS Khác Nhau FortiGate AS 65001 203.0.113.2 Router ISP AS 65010 203.0.113.1 eBGP AS khác nhau → dùng eBGP iBGP — Trong Cùng Một AS (ADVPN Hub-Spoke) Hub FortiGate AS 65001 — Route Reflector Spoke 1 AS 65001 Spoke 2 AS 65001 iBGP (route-reflector-client) Cùng AS → dùng iBGP, Hub làm Route Reflector Đường nét liền (xanh dương) = eBGP giữa 2 AS khác nhau, thường dùng khi peer với ISP Đường nét đứt (xanh lá) = iBGP trong cùng 1 AS, Hub làm Route Reflector để tránh full-mesh

2.3 Cấu hình BGP cơ bản trên FortiGate (CLI)

Ví dụ: FortiGate AS 65001 peer eBGP với router ISP có AS 65010, IP neighbor 203.0.113.1.

config router bgp
    set as 65001
    set router-id 10.0.1.1
    config neighbor
        edit "203.0.113.1"
            set remote-as 65010
        next
    end
    config network
        edit 1
            set prefix 203.0.113.0 255.255.255.0
        next
    end
end

Kiểm tra trạng thái peering và bảng route BGP:

get router info bgp summary
get router info bgp network
diagnose ip router bgp all

2.4 Route Map — kiểm soát route vào/ra

Route Map cho phép lọc và điều chỉnh thuộc tính route trước khi advertise ra ngoài hoặc nhận vào, ví dụ gắn Local Preference cho route ưu tiên, hoặc chặn quảng bá một dải mạng nội bộ nhạy cảm ra ISP — ví dụ dải quản trị nội bộ 10.99.0.0/16 tuyệt đối không được lộ ra Internet:

config router prefix-list
    edit "PREFIX-LIST-SENSITIVE"
        config rule
            edit 1
                set prefix 10.99.0.0 255.255.0.0
            next
        end
    next
end

config router route-map
    edit "BLOCK-SENSITIVE-OUT"
        config rule
            edit 1
                set match-ip-address "PREFIX-LIST-SENSITIVE"
                set action deny
            next
            edit 2
                set action permit
            next
        end
    next
end

config router bgp
    config neighbor
        edit "203.0.113.1"
            set route-map-out "BLOCK-SENSITIVE-OUT"
        next
    end
end

Rule 1 với set action deny chặn hẳn dải 10.99.0.0/16 không được advertise ra neighbor ISP; rule 2 để trống điều kiện match với action permit đóng vai trò "permit all còn lại" — vì Route Map trên FortiOS mặc định deny mọi thứ không khớp rule nào, nên luôn cần rule permit tường minh ở cuối nếu không muốn chặn nhầm toàn bộ các route hợp lệ khác.

Trước tiên, khai báo Prefix List liệt kê dải mạng nội bộ cần ưu tiên — ví dụ hai subnet văn phòng chính 10.11.0.0/16192.168.102.0/24:

config router prefix-list
    edit "PREFIX-LIST-INTERNAL"
        config rule
            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
    next
end

Sau đó tạo Route Map tham chiếu tới Prefix List vừa khai báo, gắn Local Preference 200 (cao hơn giá trị mặc định 100) cho các route khớp — nghĩa là route tới 2 dải mạng này sẽ được các router iBGP khác trong cùng AS ưu tiên chọn hơn các đường thay thế:

config router route-map
    edit "SET-LOCAL-PREF"
        config rule
            edit 1
                set match-ip-address "PREFIX-LIST-INTERNAL"
                set set-local-preference 200
            next
        end
    next
end

Cuối cùng, gắn Route Map này vào neighbor cần áp dụng (chiều in — áp dụng cho route nhận vào từ neighbor đó):

config router bgp
    config neighbor
        edit "203.0.113.1"
            set route-map-in "SET-LOCAL-PREF"
        next
    end
end

Về cách xem/khai báo Prefix List, Access List, AS-Path List trên GUI, anh có thể tham khảo trang Network > BGP > Routing Objects trên FortiGate.

2.5 BGP trong SD-WAN & ADVPN — vì sao chọn BGP thay vì OSPF

Trong mô hình ADVPN hub-spoke quy mô lớn (xem thêm bài ADVPN Auto-Discovery Shortcut), BGP thường được ưu tiên hơn OSPF vì:

  • Route Reflector: hub chỉ cần cấu hình set route-reflector-client enable cho từng spoke, tránh phải chạy full-mesh iBGP giữa hàng trăm spoke.
  • Kiểm soát next-hop khi shortcut tunnel hình thành: khi ADVPN tạo shortcut trực tiếp giữa 2 spoke, BGP cho phép route next-hop được cập nhật linh hoạt hơn OSPF trong việc phản ánh đường đi tối ưu mới.
  • AS-Path filtering: dễ dàng chặn loop hoặc ưu tiên đường đi theo AS-Path length, thứ mà OSPF không có khái niệm tương đương.

3. Hỏi & Đáp

FortiGate có bắt buộc phải dùng AS Number thật do IANA cấp không?

Không, nếu chỉ dùng BGP nội bộ (iBGP trong ADVPN/SD-WAN, không peer ra Internet), có thể dùng AS Number private trong dải 64512–65534 (theo RFC 6996). Chỉ khi peer trực tiếp với ISP và cần quảng bá route ra Internet công khai mới cần AS Number được IANA/APNIC cấp chính thức.

Có thể chạy đồng thời cả OSPF và BGP trên cùng một FortiGate không?

Có. Rất phổ biến: FortiGate chạy OSPF để trao đổi route với Core Switch nội bộ, đồng thời chạy eBGP để peer với ISP. Khi đó cần cấu hình redistribute giữa hai giao thức (ví dụ redistribute connected, redistribute static trong OSPF hoặc BGP) để route học được từ bên này được quảng bá sang bên kia, đồng thời cẩn trọng tránh routing loop.


4. Quiz

Câu 1: BGP thuộc loại giao thức định tuyến nào?

  • A. Distance-vector
  • B. Link-state
  • C. Path-vector
  • D. Hybrid

Câu 2: eBGP khác iBGP ở điểm nào?

  • A. eBGP nhanh hơn iBGP
  • B. eBGP peer giữa 2 AS khác nhau, iBGP peer trong cùng 1 AS
  • C. iBGP chỉ dùng cho IPv6
  • D. Không có khác biệt

Câu 3: Lệnh nào dùng để kiểm tra tóm tắt trạng thái các BGP neighbor trên FortiGate?

  • A. diagnose sys session list
  • B. get router info bgp summary
  • C. get router info ospf status
  • D. diagnose vpn tunnel list

Câu 4: Vì sao ADVPN hub-spoke quy mô lớn thường chọn BGP thay vì OSPF?

  • A. BGP dễ cấu hình hơn OSPF
  • B. BGP hỗ trợ Route Reflector, tránh full-mesh và kiểm soát route linh hoạt hơn qua AS-Path
  • C. OSPF không hỗ trợ VPN
  • D. BGP tiêu tốn ít CPU hơn OSPF

👉 Đáp án

Câu 1: C BGP là path-vector protocol, chọn đường dựa trên chuỗi thuộc tính (attribute) chứ không chỉ dựa trên cost đơn thuần như link-state.

Câu 2: B eBGP dùng để peering giữa các AS độc lập (ví dụ với ISP); iBGP dùng khi các router cùng chung một AS Number, thường thấy trong mô hình hub-spoke nội bộ.

Câu 3: B get router info bgp summary hiển thị tóm tắt trạng thái từng neighbor (Up/Down, số route nhận được...), tương tự cách get router info ospf status dùng cho OSPF.

Câu 4: B Route Reflector giúp hub không phải full-mesh iBGP với từng spoke, còn AS-Path cho phép kiểm soát và lọc route linh hoạt hơn nhiều so với cơ chế cost đơn giản của OSPF.

📚 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ọcBài kế tiếp ➡️
Routing động OSPF cơ bản trên FortiGate Mục lục khóa học FortiGate SD-WAN: khái niệm, Performance SLA, rule-based