🧭 一、什麼是 Traffic Shaping?
Traffic Shaping(流量整形,也稱為封包整形/packet shaping)是一種網路流量控制技術,藉由對特定封包集合(流/flow)施加延遲或控制,使其符合預定的頻寬、優先順序或延遲要求。
在 OPNsense 中,Traffic Shaper 提供「管道 (Pipes)」「佇列 (Queues)」「規則 (Rules)」三個構件來實現,並可設定來源/目的 IP、介面、方向 (進/出)、通訊埠等條件。
⚙️ 二、構成元件與原理
- Pipes (管道):定義可使用的頻寬上限(例如 Upload 2 Mbps、Download 20 Mbps)及其他限制。
- Queues (佇列):將流量從管道中區分成不同的類別,佇列可設權重 (weight),當總頻寬有限時,佇列中權重較高的流量可分得較多頻寬。
- Rules (規則):指定哪些流量 (如某 IP、某埠、某方向) 要被套用哪一條管道或佇列,進行流量整形。
運作流程:
使用者/裝置封包依來源、目的、介面、埠號等條件匹配到一條「Shaper Rule」,該規則將封包導向某條 Pipe,再透過該 Pipe 下的 Queue 依權重分配頻寬。若該流量達到管道上限,則多餘封包會被排隊或延遲。
🧩 三、主要應用場景
- 限制總頻寬:將整個出口頻寬透過 Pipe 限制,如 Upload 2 Mbps、Download 20 Mbps,防止某個使用者耗盡頻寬。
- 優先某些應用:針對重要應用(如 VoIP/SIP)建立專屬 Pipe + Queue,給予其較高權重,確保低延遲、穩定連線。
- 區分不同子網或使用者群組:例如 GuestNet 流量只允許 Download 2 Mbps、Upload 1 Mbps,而內部 LAN 無限制。
- 解決 Bufferbloat/降低延遲:對大量流量應用整形可減少封包延遲與佇列膨脹。 OPNsense 文檔
🧰 四、如何在 OPNsense 中設定
Step 1:建立 Pipes
前往:Firewall → Traffic Shaper → Pipes
新增下載/上傳管道,設定頻寬、描述等。
Step 2:建立 Queues(如需權重)
前往:Firewall → Traffic Shaper → Queues
選擇所屬 Pipe,設定權重 (weight)、遮罩 (mask)(如以來源或目的 IP 平分頻寬)等。
Step 3:建立 Rules
前往:Firewall → Traffic Shaper → Rules
新增規則,指定介面、方向 (如 WAN)、來源/目的、目標 Pipe/Queue、描述。
例如:對 VoIP SIP 伺服器流量設定 Queue_VoIP。
Step 4:套用並檢查狀態
設定好後按「Apply」,可至:Firewall → Traffic Shaper → Status 查看當前 Pipe/Queue 流量使用狀況。
🔒 五、設定時需注意事項與最佳實務
- 設定頻寬時建議略低於實際上行/下行可用頻寬,以避免飽和。
- 若僅需簡單限制所有用戶頻寬,可直接建立一條 Pipe 覆蓋整個 LAN 或 Guest 網路。
- Mask 設定可用來「公平分配」頻寬,如 mask=dst-ip 表示每個目的 IP 可平均取得頻寬。
- 注意多介面、Guest 網段或 VLAN 等情境,需分別建立 Pipe/Rule。
- 流量整形並非安全策略,仍需搭配防火牆規則。
- 設定完成後持續監控 Status 頁與 Queues 使用情況,避免設定誤導造成某些服務被無意限制。
✅ 六、總結
Traffic Shaping 是 OPNsense 中一個強大且靈活的功能,透過「管道+佇列+規則」機制,可以實現頻寬限制、公平分配、應用優先級等多樣化需求。正確設定後,不僅能確保關鍵應用的穩定性,也能預防單一使用者或子網耗盡整體頻寬。在實務部署中,建議先釐清頻寬需求與流量特性,再依流程細緻建立設定。