在Linux中,降低网络流量优先级

分享于 

2分钟阅读

互联网

  繁體

问题:

所有其他流量的优先级必须高于有指定IP-proto的流量。

我尝试应用此tc过滤器规则以便让传出ICMP流量降低优先级:


tc f a dev eno1 parent 1: prio 2 u32 match ip protocol 1 0xff



但它返回这个错误:


RTNETLINK answers: Invalid argument


We have an error talking to the kernel



  • 如何使此规则正常工作?

答案1:

首先,我们应该使用root one更改接口(通常pfifo_fast )的规程:


tc q a dev eno1 root handle 1: prio



此命令在qdisc上创建eno1,默认为3类,通常所有的常规流量都转到1:2,优先级最高的流量(例如,通过ToS/DSCP)转到1:1,通过以下方式检查结果:


tc -d -s class show dev eno1



然后,我们可以添加过滤器规则,将IP协议$1的所有流量定向到第三个(低优先级)类:


tc f a dev eno1 parent 1: prio 1 u32 match ip protocol 1 0xff flowid 1:3



parent 1:此筛选器已附加到,u32-流量分类器match ip protocol 1 0xff -当IP协议1的数据包到达时触发过滤器,0xff -是IP协议匹配的位掩码,flowid 1:3 -要使用的类。

你可以启动一些ICMP流量,并通过以下方式查看Sent的结果:


watch -d -n1 'tc -d -s class show dev eno1'





相关文章