Loading...

Traffic Shaping & QoS trên FortiGate

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

Công ty khách hàng dùng chung một đường Internet 100Mbps cho cả văn phòng lẫn hệ thống VoIP (điện thoại nội bộ qua IP). Mỗi khi có vài nhân viên tải file lớn hoặc xem video, cuộc gọi VoIP của người khác bị giật, rớt tiếng — dù tổng băng thông vẫn còn dư.

Anh Nam định chặn hẳn việc tải file lớn trong giờ hành chính, nhưng chị Lan gợi ý cách khác: "Không cần chặn — mình chỉ cần đảm bảo VoIP luôn có đủ băng thông ưu tiên, còn traffic tải file/video thì giới hạn lại chứ không cần cấm hẳn. Đây chính là việc của Traffic Shaping."

Bài này giới thiệu Traffic Shaping trên FortiGate — cách giới hạn băng thông theo Shared/Per-IP Shaper, và cách ưu tiên traffic quan trọng bằng Traffic Shaping Policy kết hợp DSCP/ToS.


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

2.1 Ba loại Shaper phổ biến

3 loại Traffic Shaper phổ biến Shared Shaper Tổng băng thông chia đều cho TẤT CẢ traffic khớp Policy đó VD: giới hạn tổng 50Mbps cho cả phòng ban Per-IP Shaper Mỗi IP nguồn có hạn mức RIÊNG, độc lập với IP khác VD: mỗi máy tối đa 5Mbps, không ai lấn ai Application-based Giới hạn riêng theo từng ứng dụng nhận diện bởi App Control VD: Zoom tối đa 10Mbps, YouTube tối đa 5Mbps

Shared Shaper — giới hạn tổng băng thông chia đều cho toàn bộ traffic khớp Policy áp dụng shaper đó, không phân biệt từng máy nguồn riêng lẻ:

config firewall shaper traffic-shaper
    edit "gioi-han-tong-50M"
        set maximum-bandwidth 50000
        set per-policy disable
    next
end

Per-IP Shaper — mỗi địa chỉ IP nguồn có hạn mức riêng biệt, độc lập với các IP khác — một máy tải nặng không ảnh hưởng tới hạn mức của máy khác:

config firewall shaper per-ip-shaper
    edit "moi-may-toi-da-5M"
        set max-bandwidth 5000
        set max-concurrent-session 500
    next
end

⚠️ Lưu ý: Đơn vị maximum-bandwidth/max-bandwidth trên FortiOS tính bằng Kbps, không phải Mbps — 50000 nghĩa là 50 Mbps. Đây là lỗi phổ biến khi mới cấu hình, dễ nhầm đơn vị dẫn tới giới hạn sai lệch cả nghìn lần so với dự định.

2.2 Traffic Shaping Policy — gắn Shaper vào điều kiện traffic cụ thể

Traffic Shaping Policy (khác với Firewall Policy) là nơi thực sự áp Shaper vào một tập điều kiện traffic cụ thể — theo nguồn, đích, dịch vụ, hoặc cả Application đã nhận diện qua Application Control:

config firewall shaping-policy
    edit 1
        set name "gioi-han-video-streaming"
        set srcintf "internal"
        set dstintf "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set service "ALL"
        set application-list "app-video-streaming"
        set traffic-shaper "gioi-han-tong-50M"
        set traffic-shaper-reverse "gioi-han-tong-50M"
    next
end

traffic-shaper áp dụng cho chiều outbound (đi ra), traffic-shaper-reverse áp dụng cho chiều ngược lại (traffic trả về) — cần cấu hình cả hai nếu muốn giới hạn băng thông hai chiều đầy đủ.

⚠️ Lưu ý: Traffic Shaping Policy được xử lý độc lập với Firewall Policy Lookup đã học trước đó — traffic vẫn phải khớp Firewall Policy để được accept trước, sau đó Shaping Policy mới áp thêm giới hạn băng thông lên traffic đã được cho phép đó. Thứ tự các entry trong Shaping Policy cũng xử lý từ trên xuống, match đầu tiên thắng, tương tự nguyên tắc Policy Lookup.

2.3 Ưu tiên traffic quan trọng — QoS bằng DSCP/ToS và Priority

Ngoài giới hạn (limit), FortiGate còn hỗ trợ ưu tiên (prioritize) traffic quan trọng như VoIP — đúng nhu cầu tình huống mở đầu bài:

config firewall shaper traffic-shaper
    edit "uu-tien-voip"
        set maximum-bandwidth 20000
        set guaranteed-bandwidth 10000
        set priority high
    next
end

config firewall shaping-policy
    edit 2
        set name "uu-tien-voip-noi-bo"
        set srcintf "internal"
        set dstintf "wan1"
        set service "SIP" "RTP"
        set traffic-shaper "uu-tien-voip"
        set traffic-shaper-reverse "uu-tien-voip"
    next
end
  • guaranteed-bandwidth — băng thông tối thiểu đảm bảo cho traffic này, ngay cả khi đường truyền đang quá tải bởi traffic khác.
  • priority — mức ưu tiên xử lý (high/medium/low) khi có tranh chấp tài nguyên giữa nhiều loại traffic cùng lúc.

FortiGate cũng đọc/ghi được giá trị DSCP (Differentiated Services Code Point) trong header IP — cho phép đánh dấu traffic ưu tiên từ nguồn (ví dụ điện thoại IP tự gắn DSCP) và FortiGate tôn trọng mức ưu tiên đó khi định tuyến qua mạng, hoặc tự đánh dấu DSCP cho traffic ra khỏi FortiGate để thiết bị mạng phía sau (switch, router) tiếp tục ưu tiên đúng cách.

config firewall shaping-policy
    edit 2
        ...
        set diffserv-forward enable
        set diffservcode-forward 101110
    next
end

2.4 Traffic Shaping Profile — áp dụng theo SD-WAN

Với các triển khai SD-WAN nhiều đường truyền (sẽ học kỹ hơn ở nhóm bài SD-WAN sau này), Traffic Shaping Profilecho phép định nghĩa các lớp traffic (class) với mức ưu tiên khác nhau, dùng chung cho toàn bộ các quy tắc SD-WAN thay vì cấu hình riêng lẻ từng Shaping Policy — nội dung này sẽ được trình bày sâu hơn khi tới nhóm SD-WAN.

2.5 Bảng tổng hợp

Thành phầnVai trò
Shared Shaper Giới hạn tổng băng thông cho toàn bộ traffic khớp Policy
Per-IP Shaper Giới hạn riêng từng địa chỉ IP nguồn, độc lập nhau
Shaping Policy Nơi gắn Shaper vào điều kiện traffic cụ thể (nguồn/đích/app)
guaranteed-bandwidth Băng thông tối thiểu đảm bảo, kể cả khi đường truyền quá tải
DSCP/ToS Đánh dấu mức ưu tiên ở tầng IP header, phối hợp với thiết bị mạng khác

3. Hỏi & Đáp

Traffic Shaping có làm giảm tổng thông lượng Internet của công ty không?

Không giảm tổng thông lượng khả dụng — Traffic Shaping chỉ phân bổ lại cách sử dụng băng thông sẵn có giữa các loại traffic khác nhau, đảm bảo traffic quan trọng (như VoIP) luôn có đủ phần dành riêng, trong khi traffic ít ưu tiên hơn (như tải file) bị giới hạn lại khi cần thiết.

Per-IP Shaper và Shared Shaper, nên dùng loại nào cho mạng nhiều máy trạm?

Tùy mục tiêu — nếu muốn đảm bảo công bằng giữa các máy (không ai chiếm hết băng thông của người khác), dùng Per-IP Shaper. Nếu chỉ cần giới hạn tổng mức tiêu thụ của cả nhóm mà không quan tâm phân bổ nội bộ ra sao, dùng Shared Shaper.

Có cần Application Control để Traffic Shaping hoạt động theo ứng dụng cụ thể không?

Có — muốn Shaping Policy áp dụng riêng theo ứng dụng (như giới hạn Zoom nhưng không giới hạn Teams), cần khai báo application-list trong Shaping Policy, dựa trên Application Signature Database đã học ở bài Application Control — đòi hỏi Deep Inspection để nhận diện chính xác ứng dụng trong traffic HTTPS.

guaranteed-bandwidth có đảm bảo tuyệt đối 100% trong mọi tình huống không?

Về nguyên tắc được ưu tiên đảm bảo, nhưng vẫn phụ thuộc tổng dung lượng đường truyền vật lý thực tế — nếu tổng các guaranteed-bandwidth của tất cả Shaper cộng lại vượt quá băng thông vật lý sẵn có, FortiGate không thể tạo ra băng thông từ hư không; cần tính toán hợp lý tổng các giá trị đảm bảo so với công suất đường truyền thực tế.


4. Quiz

Câu 1: Đơn vị đo trong tham số maximum-bandwidth/max-bandwidth của Traffic Shaper trên FortiOS là gì?

  • A. Mbps
  • B. Kbps
  • C. Bytes/giây
  • D. Gbps

Câu 2: Per-IP Shaper khác Shared Shaper ở điểm nào?

  • A. Per-IP Shaper giới hạn riêng từng IP nguồn, Shared Shaper chia đều tổng băng thông cho tất cả traffic khớp Policy
  • B. Không có sự khác biệt nào
  • C. Shared Shaper chỉ dùng được cho IPv6
  • D. Per-IP Shaper không hỗ trợ giới hạn số phiên đồng thời

Câu 3: Tham số nào trong Traffic Shaper đảm bảo băng thông tối thiểu cho traffic quan trọng, kể cả khi đường truyền quá tải?

  • A. maximum-bandwidth
  • B. guaranteed-bandwidth
  • C. per-policy
  • D. max-concurrent-session

Câu 4: Traffic Shaping Policy được xử lý ở giai đoạn nào so với Firewall Policy?

  • A. Trước Firewall Policy, quyết định traffic có được accept hay không
  • B. Sau khi traffic đã được Firewall Policy accept, áp thêm giới hạn băng thông
  • C. Thay thế hoàn toàn Firewall Policy
  • D. Không liên quan gì tới Firewall Policy

Câu 5: Để Shaping Policy áp dụng riêng theo một ứng dụng cụ thể (như Zoom), cần kết hợp với tính năng nào?

  • A. DHCP Relay
  • B. Application Control (application-list)
  • C. OSPF
  • D. VDOM

👉 Đáp án

Câu 1: B Đơn vị đo trong maximum-bandwidth/max-bandwidth là Kbps — giá trị 50000 tương đương 50 Mbps, đây là điểm dễ nhầm lẫn khi mới cấu hình.

Câu 2: A Per-IP Shaper giới hạn riêng biệt cho từng địa chỉ IP nguồn, độc lập với các IP khác; Shared Shaper chia đều tổng băng thông cho toàn bộ traffic khớp Policy mà không phân biệt từng máy.

Câu 3: B guaranteed-bandwidth đảm bảo mức băng thông tối thiểu cho traffic áp dụng Shaper đó, ngay cả khi đường truyền đang quá tải bởi các loại traffic khác.

Câu 4: B Traffic vẫn phải khớp Firewall Policy để được accept trước; Shaping Policy sau đó mới áp thêm giới hạn/ưu tiên băng thông lên traffic đã được cho phép đó — hai cơ chế xử lý độc lập nhau.

Câu 5: B Cần khai báo application-list (Application Control) trong Shaping Policy để nhận diện chính xác ứng dụng cụ thể, làm điều kiện áp dụng Shaper riêng cho ứng dụ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ọcBài kế tiếp ➡️
DNS Filter & File Filter trên FortiGate Mục lục khóa học FortiGate Explicit Proxy & Transparent Proxy trên FortiGate