网络队列、流量整形与冗余技术详解
1. 队列与规则集
1.1 ICMP 队列
ICMP 队列被预留了顶层带宽的 2%,这确保了那些我们希望放行,但不符合其他队列分配标准的 ICMP 流量能有最低限度的带宽。
1.2 规则集
为实现流量分配,使用以下规则:
set skip on { lo, $int_if } pass log quick on $ext_if proto tcp to port ssh queue (ssh_bulk, ssh_interactive) pass in quick on $ext_if proto tcp to port ftp queue ftp pass in quick on $ext_if proto tcp to port www queue http pass out on $ext_if proto udp queue udp pass out on $ext_if proto icmp queue icmp pass out on $ext_if proto tcp from $localnet to port $client_out这些规则将 SSH、FTP、WWW、UDP 和 ICMP 流量分配到各自的队列。最后一条通用规则将本地网络的其他所有流量归入默认的主队列。
2. 基本 HFSC 流量整形器
2.1 HFSC 算法概述
HFSC 队列算法(在 pf.conf 术语中为 hfsc)提供了灵活的带宽分配