发信人: zenz.hu(真)
整理人: sungang(2003-04-02 19:59:00), 站内信件
|
★原文转载自openbsd版zenz.hu的《PF和ALTQ结合使用新语法》★ 在《谈谈OpenBSD近期的改进》中提到,在Current中,PF已经可以和ALTQ结合起来使用了,今天查看Misc邮件列表,发现Theo发了一个极为有价值的帖子,描述了PF如何与ALTQ结合起来。我们一起来阅读并分析这个例子吧。
altq on dc0 cbq bandwidth 5Mb queue { std, http, mail, ssh }
#首先看第一行,这里定义了,在dc0网卡设备上限制总带宽为5M,分配给std,http,mail以及ssh服务使用。
queue std bandwidth 10% cbq(default)
#默认的,std服务占用这5M带宽中的10%,就是0.5M了。
queue http bandwidth 60% priority 2 cbq(borrow red) \
{ employees, developers }
#http服务占用60%的带宽,优先级别是2,而这3M带宽,又需要根据developers和employees来分配。
queue developers bandwidth 75% cbq(borrow)
#developers占用3M带宽的75%。
queue employees bandwidth 15%
#employees占用3M带宽的15%
queue mail bandwidth 10% priority 0 cbq(borrow ecn)
#邮件服务占用5M带宽中的10%,优先级别是0。
queue ssh bandwidth 20% cbq(borrow) { ssh_interactive, ssh_bulk }
#ssh占用5M带宽中的20%,然后根据ssh_interactive和ssh_bulk分配。
queue ssh_interactive priority 7
#ssh_interactive的优先度是7
queue ssh_bulk priority 0
#ssh_bulk的优先度是0
...
block return out on dc0 inet all queue std
#所有通过dc0网卡IPV4的返回信息都禁止掉,这一类的访问只能占用总体10%的带宽。
pass out on dc0 inet proto tcp from $developerhosts to any port 80 \
keep state queue developers
#凡是通过dc0网卡,从$developerhosts范围内发起的到任何地址的http访问,都允许并且占用上面所分配的developers的带宽。(IPV4/tcp)
pass out on dc0 inet proto tcp from $employeehosts to any port 80 \
keep state queue employees
#同理,凡是通过dc0网卡从$employeehosts范围发起的到任何地址的http访问,都被许允,但是只占用employees的带宽(IPV4/tcp)
pass out on dc0 inet proto tcp from any to any port 22 \
keep state queue(ssh_bulk, ssh_interactive)
#通过dc0网卡,从任意地址到任意地址的针对ssh端口(22)的访问都被允许,使用定义的,ssh_bulk和ssh_interactive的带宽(IPV4/tcp)。这里比较有趣,用这个方法来划分真实SSH的交互操作,或者rsync,rsh,sftp等一类非交互操作的带宽。
pass out on dc0 inet proto tcp from any to any port 25 \
keep state queue mail
#SMTP发送邮件可用带宽(啊,我已经懒得复述了)。
怎么样?可以强烈的感受到PF越来越强吗?来吧,赶快升级到最新的Current,来感受这全新的功能吧。
想了解更多的信息,装好新版本后man 5 pf.conf就可以了。
----
来我的坛子看看吧!
我的QQ:256229 |
|