免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1195 | 回复: 0
打印 上一主题 下一主题

试译ros官网“带宽控制”资料片段 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-22 16:25 |只看该作者 |倒序浏览
试译ros官网“带宽控制”资料片段
资料片段的原文地址:
[color="#96465d"]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
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/28738/showart_1141187.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP