|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
资料片段的原文地址:http://www.mikrotik.com/docs/ros/2.9/root/queue
下面是靠金山词霸帮助,试译的片断,其中的例子代表性很强。理解不足请大家指正。
。。。。。
。。。。。。。
应用例子:
效仿(模拟?)一个上传64kbps,下载128kbps线路的例子:
假想,我们希望给网络192.168.0.0/24,模拟一条上传64kbps,下载128kbps的出口线路。
网络192.168.0.0/24的服务由ros的本地接口穿过,基本网络设置如下图:
解决这个问题,我们将使用simple queues(简单队列?)
ROS里的ip地址列表:
[admin@MikroTik] ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.0.254/24 192.168.0.0 192.168.0.255 Local
1 10.5.8.104/24 10.5.8.0 10.5.8.255 Public
[admin@MikroTik] ip address>
和路由列表:
[admin@MikroTik] ip route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf
# DST-ADDRESS G GATEWAY DISTANCE INTERFACE
0 ADC 10.5.8.0/24 Public
1 ADC 192.168.0.0/24 Local
2 A S 0.0.0.0/0 r 10.5.8.1 Public
[admin@MikroTik] ip route>
添加一个 simple queue规则,那个将被限制下载128kbps,上传64kbps的客户网络是192.168.0.0/24,服务通过本地接口
[admin@MikroTik] queue simple> add name=Limit-Local interface=Local \
\... target-address=192.168.0.0/24 max-limit=65536/131072
[admin@MikroTik] queue simple> print
Flags: X - disabled, I - invalid, D - dynamic
0 name="Limit-Local" target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
interface=Local parent=none priority=8 queue=default/default
limit-at=0/0 max-limit=65536/131072 total-queue=default
[admin@MikroTik] queue simple>
max-limit参数设定下载的最大带宽。
从用户的观点看,值65536/131072,意味着他们将得到的最大数是131072bps下载,65536bps上传。target-addresses参数定义目标网络(或用逗号隔开的多个网络)。
现在看流量负荷:
[admin@MikroTik] interface> monitor-traffic Local
received-packets-per-second: 7
received-bits-per-second: 68kbps
sent-packets-per-second: 13
sent-bits-per-second: 135kbps
[admin@MikroTik] interface>
大概,你想将服务器排除在限制之外,如果这样,添加一个没有任何限制的队列给它(max-limit=0/0 表示没有限制),并把它移到列表的最前端。
[admin@MikroTik] queue simple> add name=Server target-addresses=192.168.0.1/32 \
\... interface=Local
[admin@MikroTik] queue simple> print
Flags: X - disabled, I - invalid, D - dynamic
0 name="Limit-Local" target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
interface=Local parent=none priority=8 queue=default/default
limit-at=0/0 max-limit=65536/131072 total-queue=default
1 name="Server" target-addresses=192.168.0.1/32 dst-address=0.0.0.0/0
interface=Local parent=none priority=8 queue=default/default
limit-at=0/0 max-limit=0/0 total-queue=default
[admin@MikroTik] queue simple> mo 1 0
[admin@MikroTik] queue simple> print
Flags: X - disabled, I - invalid, D - dynamic
0 name="Server" target-addresses=192.168.0.1/32 dst-address=0.0.0.0/0
interface=Local parent=none priority=8 queue=default/default
limit-at=0/0 max-limit=0/0 total-queue=default
1 name="Limit-Local" target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
interface=Local parent=none priority=8 queue=default/default
limit-at=0/0 max-limit=65536/131072 total-queue=default
[admin@MikroTik] queue simple>
使用Masquerading的queue tree(队列树?)例子:
前一个例子,我们为本地网络模拟一个下载128kbps和上传64kbps的流量。
在这个例子,我们将保证给本地网络设备256kbps下载(128kbps给服务器,64kbps给工作站,64kbps给笔记本)128kbps上传(分别给64/32/32)。
如果那里有空闲的带宽,就把它共享给每一个用户。在这个例子,如果我们关闭笔记本,服务器和工作站会共享它的64kbps下载和32kbps上传带宽。
使用masquerading,你用new-connection-mark标记外出连接,动作(action)是mark-connection,当这个完成时,你能用new-packet-mark标记所有数据包中那些属于这个连接的数据包,动作是mark-packet。
1.首先,标记服务器的下载和上传数据流。地一条规则我们将标记外出连接,第二条标记所有的数据包中,那些属于这个连接。
[admin@MikroTik] ip firewall mangle> add src-address=192.168.0.1/32 \
\... action=mark-connection new-connection-mark=server-con chain=prerouting
[admin@MikroTik] ip firewall mangle> add connection-mark=server-con \
\... action=mark-packet new-packet-mark=server chain=prerouting
[admin@MikroTik] ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting src-address=192.168.0.1 action=mark-connection
new-connection-mark=server-con
1 chain=prerouting connection-mark=server-con action=mark-packet
new-packet-mark=server
[admin@MikroTik] ip firewall mangle>
2.笔记本和工作站也一样:
[admin@MikroTik] ip firewall mangle> add src-address=192.168.0.2 \
\... action=mark-connection new-connection-mark=lap_works-con chain=prerouting
[admin@MikroTik] ip firewall mangle> add src-address=192.168.0.3 \
\... action=mark-connection new-connection-mark=lap_works-con chain=prerouting
[admin@MikroTik] ip firewall mangle> add connection-mark=lap_works-con \
\... action=mark-packet new-packet-mark=lap_work chain=prerouting
[admin@MikroTik] ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting src-address=192.168.0.1 action=mark-connection
new-connection-mark=server-con
1 chain=prerouting connection-mark=server-con action=mark-packet
new-packet-mark=server
2 chain=prerouting src-address=192.168.0.2 action=mark-connection
new-connection-mark=lap_works-con
3 chain=prerouting src-address=192.168.0.3 action=mark-connection
new-connection-mark=lap_works-con
4 chain=prerouting connection-mark=lap_works-con action=mark-packet
new-packet-mark=lap_work
[admin@MikroTik] ip firewall mangle>
你可以看到,我们给笔记本和工作站的数据流同样的标记。
3.在 /queue tree里添加规则,限制服务器的下载荷上传。
[admin@MikroTik] queue tree> add name=Server-Download parent=Local \
\... limit-at=131072 packet-mark=server max-limit=262144
[admin@MikroTik] queue tree> add name=Server-Upload parent=Public \
\... limit-at=65536 packet-mark=server max-limit=131072
[admin@MikroTik] queue tree> print
Flags: X - disabled, I - invalid
0 name="Server-Download" parent=Local packet-mark=server limit-at=131072
queue=default priority=8 max-limit=262144 burst-limit=0
burst-threshold=0 burst-time=0s
1 name="Server-Upload" parent=Public packet-mark=server limit-at=65536
queue=default priority=8 max-limit=131072 burst-limit=0
burst-threshold=0 burst-time=0s
[admin@MikroTik] queue tree>
类似地分配流量给笔记本和工作站:
[admin@MikroTik] queue tree> add name=Laptop-Wkst-Down parent=Local \
\... packet-mark=lap_work limit-at=65535 max-limit=262144
[admin@MikroTik] queue tree> add name=Laptop-Wkst-Up parent=Public \
\... packet-mark=lap_work limit-at=32768 max-limit=131072
[admin@MikroTik] queue tree> print
Flags: X - disabled, I - invalid
0 name="Server-Download" parent=Local packet-mark=server limit-at=131072
queue=default priority=8 max-limit=262144 burst-limit=0
burst-threshold=0 burst-time=0s
1 name="Server-Upload" parent=Public packet-mark=server limit-at=65536
queue=default priority=8 max-limit=131072 burst-limit=0
burst-threshold=0 burst-time=0s
2 name="Laptop-Wkst-Down" parent=Local packet-mark=lap_work limit-at=65535
queue=default priority=8 max-limit=262144 burst-limit=0
burst-threshold=0 burst-time=0s
3 name="Laptop-Wkst-Up" parent=Public packet-mark=lap_work limit-at=32768
queue=default priority=8 max-limit=131072 burst-limit=0
burst-threshold=0 burst-time=0s
[admin@MikroTik] queue tree>
用户平分带宽例子(pcq?):
这个例子示范了如何将10mbps下载2mbps上传,均分给网络192.168.0.0/24中的活动的用户。
如果主机A下载2Mbps,主机B就只能获得8mbps,反之亦然。
有这样一种情况,他们都想获得最大带宽(10mbps),他们将各自获得5mbps,上传也一样。这个设置同样是用于更多用户的情形。
首先,所有来自本地网络192.168.0.0/24的流,标记 一个用户标记。
/ip firewall mangle add chain=forward src-address=192.168.0.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
现在我们将添加两个新的PCQ类型。第一个命名pcq-download,将依据目的地址聚合所有流。我们将给本地接口使用这个queue type。它将为那些目的地址是网络192.168.0.0/24的下载,创建一个动态队列。
第二个命名为pcq-upload,将依据源地址聚合所有流。我们将给公网接口使用,所以它将为来自本地网络192.168.0.0/24到internet的上传,创建以一个动态队列。
/queue type add name=pcq-download kind=pcq pcq-classifier=dst-address
/queue type add name=pcq-upload kind=pcq pcq-classifier=src-address
最后,给下载流创建一个queue tree。
/queue tree add name=Download parent=Local max-limit=10240000
/queue tree add parent=Download queue=pcq-download packet-mark=users
给上传流的:
/queue tree add name=Upload parent=Public max-limit=2048000
/queue tree add parent=Upload queue=pcq-upload packet-mark=users
注意:如果你的ISP不能提供一个固定的流量,你可以在上传QUEUE规则和下载QUEUE规则中,直接在接口上使用QUEUE。
/queue tree add parent=Local queue=pcq-download packet-mark=users
/queue tree add parent=Public queue=pcq-upload packet-mark=users |
|