|  | 
 
| 
资料片段的原文地址: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
 | 
 |