AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1042419
Accepted
red0ct
red0ct
Asked: 2020-11-14 05:22:08 +0800 CST2020-11-14 05:22:08 +0800 CST 2020-11-14 05:22:08 +0800 CST

降低 Linux 中的网络流量优先级

  • 772

我想降低特定网络流量的优先级,tc特别是tc-u32在我的 Linux 服务器中使用。换句话说,所有其他流量必须比具有指定 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

在这种情况下,我对 tc 仍有一些不清楚的地方:

  1. 如何使这条规则正常工作?
  2. 我是否需要一些其他规则来告诉 Linux 诸如“所有其他流量以 1 优先级”之类的东西,或者这是默认完成的?
  3. 这种命名背后的基本逻辑是什么 - 1:,2:等等?是什么0xff意思?我应该明确指定classid字段吗?
linux networking traffic-shaping tc linux-networking
  • 1 1 个回答
  • 570 Views

1 个回答

  • Voted
  1. Best Answer
    red0ct
    2020-11-24T03:48:14+08:002020-11-24T03:48:14+08:00

    这可以按照我在下面描述的方式完成。

    pfifo_fast首先,我们应该将接口(通常)的根规则更改为prio:

    tc q a dev eno1 root handle 1: prio
    

    此命令默认创建eno1带有类的 qdisc( - 最高优先级,- 中,- 最低优先级)。通常所有常规流量都去往,具有最高优先级的流量(例如通过ToS/DSCP)去往。 我们可以通过以下方式检查结果:31:11:21:31:21:1

    tc -d -s class show dev eno1
    

    然后我们可以添加过滤规则以将IP 协议 = 1的所有流量引导到 3rd(较低优先级)类:

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

    parent 1:- 此过滤器附加到 qdisc。根据过滤器结果 qdisc 决定此流量应定向到哪个类。
    prio 1- 此过滤器的优先级(优先使用较低优先级的过滤器 - 特别是在这种情况下并不重要,因为只有一个过滤器)
    u32- 流量分类器
    match ip protocol 1 0xff- 当 IP-proto 1 的数据包到达时触发过滤器。0xff- 是 IP 协议匹配的位掩码。
    flowid 1:3- 要使用的类。

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

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

相关问题

  • 更改 PHP 的默认配置设置?

  • 有什么软件可以模拟局域网?

  • 保护新的 Ubuntu 服务器 [关闭]

  • 带宽利用工具?[关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve