找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7515|回复: 6

[其它] 请教对指定ip限速

[复制链接]
发表于 2016-4-28 23:06:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
我知道这个语句可以修改限速的ip
/queue simple set 2 target=192.168.100.133

现在,我通过防火墙filter 把一些ip生成到address list
list-ip.png

假设Packet1501清单最多10个ip,
请教,如何写个语句,把Packet1501后面的ip修改到 /queue simple 前面10条记录?
routeros
发表于 2016-4-29 15:31:29 | 显示全部楼层
本帖最后由 cspm333 于 2016-4-29 15:37 编辑

:foreach i in=[/ip firewall address-list find list=Packet1501]\
   do={
          :local Ad [/ip firewall address-list get $i address]
          :if ([:len [/queue simple find target="$Ad/32"]]=0) \
              do={/queue simple add dst=pppoe-out1 max-limit=5M/20M name="limit $Ad" target="$Ad/32" place-before=0}
          }
routeros
回复

使用道具 举报

 楼主| 发表于 2016-4-29 22:35:31 | 显示全部楼层

谢谢 cspm333 ,
现在我使用的是这样的,    /system script
:foreach i in=[/ip firewall address-list find list=Limit80] do={
      :local Ad [/ip firewall address-list get $i address];
      /queue simple set [/queue simple find name=$Ad] max-limit=1M/60M\
      }
# list里面的ip地址, 限速改为1M/60M

先在 fir fil 里设置 连接80的 进list

最后   /tool traffic-monitor
add interface=PPPOE name=Limit80link on-event=Limit80 threshold=6000000
意思是 传出大于6M, 就执行一次 上面的脚本。
routeros
回复

使用道具 举报

发表于 2016-4-30 10:37:48 | 显示全部楼层
本帖最后由 cspm333 于 2016-4-30 10:39 编辑
xuxi3201 發表於 2016-4-29 22:35
謝謝 cspm333 ,
現在我使用的是這樣的,    /system script
:foreach i in=[/ip firewall address-lis ...

其實最正解應該是依官方,用PCQ做:
/ip firewall mangle
add action=mark-packet chain=prerouting  new-packet-mark=Limit80_upload     src-address-list=Limit80
add action=mark-packet chain=postrouting new-packet-mark=Limit80_download dst-address-list=Limit80

/queue type
add kind=pcq name=PCQ_upload     pcq-classifier=src-address pcq-rate=1M
add kind=pcq name=PCQ_download pcq-classifier=dst-address pcq-rate=60M

/queue tree
add name=PCQ_Limit80_upload     packet-mark=Limit80_upload     parent=PPPOE queue=PCQ_upload
add name=PCQ_Limit80_download packet-mark=Limit80_download parent=PPPOE queue=PCQ_download

設置完只要是在list=Limit80記錄的任一個ip ,都會被限制在1M/60M




补充内容 (2016-5-1 12:06):
Sorry!
/queue tree的download設定有誤 ,若是下載parent應為LAN ,而非PPPOE
routeros
回复

使用道具 举报

 楼主| 发表于 2016-4-30 20:58:50 | 显示全部楼层
add action=mark-packet chain=prerouting  new-packet-mark=Limit80_upload     src-address-list=Limit80
add action=mark-packet chain=postrouting new-packet-mark=Limit80_download dst-address-list=Limit80

为什么不是 chain=forward  ?
chain=forward 什么情况下使用?
routeros
回复

使用道具 举报

发表于 2016-4-30 21:22:46 | 显示全部楼层
本帖最后由 cspm333 于 2016-4-30 21:43 编辑
xuxi3201 發表於 2016-4-30 20:58
add action=mark-packet chain=prerouting  new-packet-mark=Limit80_upload     src-address-list=Limit80 ...


                               
登录/注册后可看大图


prerouting:從wan進入,nat前
postrouting:出nat,wan出口前
forward:路由判斷(在路由器內)

所以重點於標記封包在路由判斷內,還是路由判斷外.
但不管是對路由判斷內,還是外 的封包做qos限速都會有相同效果.

也就是:
下載封包到您的PC那瞬間做限速(forward) ,還是從nat進入時就限速(prerouting);
上載封包在離開您PC後就做限速(forward) ,還是離開nat時才限速(postrouting).

ps:混著使用,也是您的自由.
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-25 12:04 , Processed in 0.100957 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表