IT家园's Archiver

13125 发表于 2011-6-3 14:08

HTB流量控制(转)

我使用MikroTik RouterOS通过PPPoE连接到互联网(基于ADSL拨号),为了了内网的用户得到优质的网络环境,通过对流量上下行流量进行优先控制,保证特定的网络用户得到优质的网络带宽。
局域网采用以太网有线和WiFi无线接入方式,通过一个bridge将有线口与无线连接起来。
[attach]27184[/attach]


注意:
•        ADSL是一个PPPoE客户端接口.运行在ether1的网卡上,ether1连接到一个ADSL-modem
•        内网IP地址192.168.10.1/24,内网通过以太网和WiFi无线接入方式
•        通过NAT/Masquerad隐藏内网用户。
•        ADSL连接速度:3Mbps
客户主机
主机        IP        优先级        备注
服务器        192.168.10.6         优先级 4         公司服务器
VIP        192.168.10.7         优先级 2         重要上网人员,优先级最高
工作站         192.168.10.0/24         等级低8,但除icmp协议         员工工作电脑
服务端口
协议        端口协议        优先级        目标
ICMP         icmp         最高 1        所有主机
如何获得优先的互联网带宽和流量控制,通过下面的步骤来实施:
•        由于ADSL有较小的缓冲空间,并当带宽满载下载速度会变慢。所以RouterOS配置上传或者下载不能超过90%;
•        当VIP想与外面通信,将得到最优先带宽;
•        ICMP协议优先通过,得到较小的延迟;
•        需要考虑CIR(约定带宽)即Limit-at,MIR(最大带宽)即Max-limit,每个流量控制需要考虑他们的CIR与MIR值
RouterOS的基本配置
下面我可以看到通过ether2-wan拨号的ADSL外网拨号接口,桥接ether1-lan与wlan1的bridge1的接口
[admin@MikroTik] /interface> print
Flags: D - dynamic, X - disabled, R - running, S - slave
#     NAME                                      TYPE             MTU   L2MTU
0  R  ADSL                                      pppoe-out        1480
1  R  bridge1                                   bridge           1500  65535
2  R  ether1-lan                                ether            1500  1526
3  R  ether2-wan                                ether            1500  1524
4     ether3                                    ether            1500  1524
5  R  wlan1                                     ether            1500  1524
[admin@MikroTik] /interface>
定义HTB流量控制
HTB里,我们需要考虑到父级、子级等关系,首先定义父级(parents),即上下行的总带宽,即定义整个HTB的总带宽
经过带宽测试后,计算出ADSL带宽为2850/420kbps,我们需要在queue tree添加带宽限制,使用90%的实际带宽分配给下载和上传,这里我们定义总的上下行带宽,parent定义接口,bridge1对应内网的下行数据(这里我们将),ADSL则对应发出的上行数据
/queue tree add name=Download parent=bridge1 max-limit=2600k
/queue tree add name=Upload parent=ADSL max-limit=360k
ICMP协议
对ICMP协议进行标记和流量控制,ICMP协议我们需要首先满足,让所有用户得到较低ICMP延迟。进入mangle标记连接和数据包
/ip firewall mangle add protocol=icmp action=mark-connection new-connection-mark=icmp-con chain=forward
/ip firewall mangle add connection-mark=icmp-con action=mark-packet new-packet-mark=icmp chain=forward
我们进入Queue tree,我们考虑到ICMP协议主要是网络监测,对带宽需求不大,CIR定义为100kbps,最大MIR带宽为500kbps,保证正常的ICMP通信就可以了
/queue tree add name=icmp-down parent=Download packet-mark=icmp limit-at=100k max-limit=500k priority=1
/queue tree add name=icmp-up parent=Upload packet-mark=icmp limit-at=100k max-limit=500k priority=1
VIP优先级高于其他主机
192.168.10.7为VIP需要得到更多的带宽,但需要考虑到CIR保证使用到最低带宽,这里我们为VIP分配最低下行800kbps,上行200kbps带宽,当然MIR最大可以获取到2600kbps
标记VIP的连接传输与数据:
/ip firewall mangle add src-address=192.168.10.7/32 action=mark-connection new-connection-mark=vip-con chain=forward
/ip firewall mangle add connection-mark=vip-con action=mark-packet new-packet-mark=vip chain=forward
接下来进入Queue tree对VIP配置带宽规则:
/queue tree add name=vip-down parent=Download limit-at=1024 packet-mark=vip max-limit=5000k priority=2
/queue tree add name=vip-up parent=Upload limit-at=512 packet-mark=vip max-limit=100k priority=2
服务器规则
我们将192.168.10.6的服务器标记,并定义他们的HTB带宽规则
/ip firewall mangle add src-address=192.168.10.6/32 action=mark-connection new-connection-mark=server-con chain=forward
/ip firewall mangle add connection-mark=server-con action=mark-packet new-packet-mark=server chain=forward
进入Queue tree对服务器带宽规则:
/queue tree add name=server-down parent=Download limit-at=1024 packet-mark=server max-limit=2600k priority=4
/queue tree add name=server-up parent=Upload limit-at=512 packet-mark=server max-limit=300k priority=4
工作主机最低级别
剩下工作主机需要标记所有的传输,所有传输来至192.168.10.0/24,因此我们使用src-address获取,通过标记连接(users-con),然后从连接中提取数据包(users)。
/ip firewall mangle add chain=forward src-address=192.168.10.0/24 action=mark-connection new-connection-mark=users-con
/ip firewall mangle add connection-mark=users-con action=mark-packet new-packet-mark=users chain=forward passthrough=no
这时我们需要添加2条新的PCQ规则,第一条为ADSL-down,定义组的dst-address分类,即ADSL的下载,将pcq-rate设置为0,这样将建立每个主机的动态带宽。第二条为ADSL-up,即ADSL的上行,定义组为src-address分类,pcq-rate=100kbps,限制每台主机的上行带宽(因为ADSL上行相对较小)。
/queue type add name=ADSL-down kind=pcq pcq-classifier=dst-address
/queue type add name=ADSL-up kind=pcq pcq-rate=100k pcq-classifier=src-address
在queue tree定义
/queue tree add parent=Download queue=users-down packet-mark=users
/queue tree add parent=Upload queue=users-up packet-mark=users

汤杯勺zldh 发表于 2012-4-10 17:18

[img]http://www.pgpop.com/image/face1.gif[/img]顶起来,支持楼主 顶~~~~~~~~~~~~~~~





















[img]http://qb.lqualyn.com/images/sigline.gif[/img]
[url=http://news.163.com/11/0713/14/78RMVL8E00014AEE.html]美白祛斑[/url]

dfgtemp 发表于 2012-4-13 16:48

不错,学习了。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.