文章最后是 xiasha11 发的涉及QUEUE TREE的脚本,讨论一下脚本中不当之处.
1.别用DSCP了.
没必要先修改DSCP再mark-packet,可以直接mark-connection再mark-packet.修改DSCP每个包都要重新计算IP头校验和,所以很耗资源.
提醒一下:别以为用的人少,会的人少的技术就是高技术.只所以用的人少,会的人少,那是因为那技术不成熟,不高效,有缺陷.
2.每条change dscp命令的本身都有问题.
例如根据第一条命令,一个包要同时满足dscp为0且是icmp包者会修改dscp为1,那假如收到一个dscp为8的icmp包则不会修改DSCP,最终根据后续脚本,这个包的处理优先级为最末.
3.queue tree的问题.
这里需要说明有关queue tree的一些知识,你就知道脚本中的问题了:
第一,在任何情况下,parent queque的优先级设置都是没意义的,只有最底层queue(如脚本中的queue3,queue5,queue6,queue8)的优先级才有意义.
不信吗? 例如下面的脚本,你把母queque的优先级任意设置,绝对和你以前的网络性能没有任何区别.这个你可问mikrotik.
第二,如果母queque没有速率限制,子queque也没有速率限制,则此时分级是没有意义的.不过为了维护方便可以分两级,但分三级没有意义维护也不方便.
4.最后一个小问题:备注不要全部用中文,导出脚本看得累,可以中英同时用,维护也方便.
以下脚本并不是高效的,并且有使用不当之处,只用来分析,请误使用.不过收集的各种应用程序的端口还是有借鉴价值的.
/ip firewall mangle
add action=change-dscp chain=prerouting comment=ICMP disabled=no dscp=0
new-dscp=1 protocol=icmp
add action=change-dscp chain=prerouting comment=
"Game C3CEBBC3D6EFCFC9" disabled=no dscp=0 dst-port=28993
new-dscp=1 protocol=tcp
add action=change-dscp chain=prerouting comment="C3CEBBC3CEF7D3CE"
disabled=no dscp=0 dst-port=4088,4188,4588,10116,10156,21388,22788
new-dscp=1 protocol=tcp
add action=change-dscp chain=prerouting comment="C4A7CADECAC0BDE7"
disabled=no dscp=0 dst-port=1119,3724,8085 new-dscp=1 protocol=tcp
add action=change-dscp chain=prerouting comment="D6EFCFC9 CDEAC3C0CA
C0BDE7B9FABCCAB0E6 C8C8CEE8C5C9B6D4" disabled=no dscp=0
dst-port=29000 new-dscp=1 protocol=tcp
add [...]
浙公网安备 33010602011771号