首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在QoS上设置MikroTik RouterOS?

如何在QoS上设置MikroTik RouterOS?
EN

Server Fault用户
提问于 2018-04-23 08:45:05
回答 1查看 9.7K关注 0票数 0

我知道这是一个常见的问题,但我已经花了两天的时间来学习这个问题,仍然找不到明确的解释.

最近,我买了一个Miktotik hEX (RouterOS 6,第4级),作为100 30MBit下行/30 30MBit上行光纤连接的主要路由器(速度测试显示,实际上是110/33,因为我的提供商增加了10%的利润率)。我想优先处理流量,主要是为了避免VoIP调用的问题(通过Twilio)。

在使用自定义Linux (但不能处理超过20 20Mbit )的FireQOS之前,我使用以下配置成功地对通信量进行了优先排序:

代码语言:javascript
运行
复制
DEVICE=ppp0

INPUT_SPEED=20mbit
OUTPUT_SPEED=10mbit
LINKTYPE="local pppoe-llc"

interface $DEVICE world-in input rate $INPUT_SPEED
  class voip commit 120kbit       # https://www.twilio.com/docs/api/client/regions
    match src 54.171.127.192/26   # Twilio: ie1
    match src 52.215.127.0/24     # Twilio: ie1
    match src 35.156.191.128/25   # Twilio: de1
    match src 185.187.132.64/26   # Twilio: ie1-tnx
    match udp port 5060           # SIP
    match udp dports 10000:10100  # RTP
    match sports 3478,5349        # STUN
  class interactive commit 20%
    match udp port 53             # DNS
    match tcp port 22             # SSH
    match icmp                    # ping
    match tcp sports 5222,5228    # gtalk
  class synacks      
    match tcp syn    
    match tcp ack    
  class web commit 5%
    match tcp sports 80,443 
  class mail
    match tcp sports 25,465,587
  class default

interface $DEVICE world-out output rate $OUTPUT_SPEED
  class voip commit 120kbit
    match dst 54.171.127.192/26   # Twilio: ie1
    match dst 52.215.127.0/24     # Twilio: ie1
    match dst 35.156.191.128/25   # Twilio: de1
    match dst 185.187.132.64/26   # Twilio: ie1-tnx
    match udp port 5060           # SIP
    match udp sports 10000:10100  # RTP
    match dports 3478,5349        # STUN
  class interactive commit 20%
    match udp port 53             # DNS
    match tcp port 22             # SSH
    match icmp                    # ping
    match tcp dports 5222,5228    # gtalk
  class synacks commit 2%      
    match tcp syn    
    match tcp ack    
  class web commit 5%
    match tcp dports 80,443 
  class mail
    match tcp dports 25,465,587
  class default

同时,我尝试在RouterOS中设置相应的数据包标记:

我认为我需要在Mikrotik上设置队列树,并为可用的上下速度创建一个主队列,并将其除以一些优先级。

目前,我不知道从哪里开始,因为我看不到为传入和传出流量创建两个不同队列的方法(因为我有一个不对称的带宽)。

我看到每个接口都有预定义(父)队列,但问题是我使用VLAN来提供对three完全独立的子网的广域网访问。我使用的唯一物理端口是ether2-master

我猜为父ether2-master创建队列将无法工作,因为数据包不会在该级别上标记(对吗?),因为所有的ether2-master数据包都是VLAN标记的。

我希望拥有与FireQOS相同的FireQOS,但真正重要的是VoIP部分。

那么,我应该如何配置队列树呢?

EN

回答 1

Server Fault用户

发布于 2018-07-05 20:39:09

我肯定会在路由决定之前标记数据包,所以您应该在预路由上设置路由标记规则,而不是前向链。

然后,在全局队列下为voip流量添加队列,并设置保证速度。

代码语言:javascript
运行
复制
/queue tree add name="voip_in" parent=global packet-mark=VOIP_IN queue=pcq-download-default priority=1 limit-at=120k max-limit=100M
/queue tree add name="voip_out" parent=global packet-mark=VOIP_OUT queue=pcq-upload-default priority=1 limit-at=120k max-limit=30M

您也应该分别标记传入和传出通信量(interactive_in、interactive_out、synacks_in、synacks_out等)。然后,您可以创建适当的队列。您不能指定已分配的带宽,您必须设置位/S值。

代码语言:javascript
运行
复制
 /queue tree add name="interactive_in" parent=global packet-mark=interactive_in queue=pcq-download-default priority=2 limit-at=20M max-limit=20M
 /queue tree add name="interactive_out" parent=global packet-mark=interactive_out queue=pcq-upload-default priority=2 limit-at=6M max-limit=6M
 /queue tree add name="synacks_in" parent=global packet-mark=synacks_in queue=pcq-download-default priority=3 limit-at=2M max-limit=2M
 /queue tree add name="synacks_out" parent=global packet-mark=synacks_out queue=pcq-upload-default priority=3 limit-at=600k max-limit=600k
 /queue tree add name="web_in" parent=global packet-mark=web_in queue=pcq-download-default priority=4 limit-at=5M max-limit=5M
 /queue tree add name="web_out" parent=global packet-mark=web_out queue=pcq-upload-default priority=4 limit-at=1500k max-limit=1500k
 /queue tree add name="mail_in" parent=global packet-mark=mail_in queue=pcq-download-default priority=5
 /queue tree add name="mail_out" parent=global packet-mark=mail_out queue=pcq-upload-default priority=5
 /queue tree add name="default" parent=global packet-mark=no-mark queue=default priority=6

请注意,优先级值并不意味着任何数据包优先级。它只是设置队列的顺序。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/908972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档