发信人: 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  | 
 
 
 |