讲师中心 微信公众号
AI工具推荐 视频效率加速

nftables 规则处理数据包优先级(QoS)策略

梦辰同学_8002

梦辰同学_8002

发布时间:2026-08-31 06:43:15

|

199人浏览过

|

来源于php中文网

原创

nftables 不执行 QoS 调度,仅负责流量分类与标记(如 meta mark 或 DSCP),为 tc 提供调度依据;tc 才真正实现带宽限制、优先级排队等 QoS 功能。

nftables 规则处理数据包优先级(qos)策略

nftables 本身不直接执行 QoS(服务质量)调度,但它承担关键的“分类与标记”角色——这是整个 Linux QoS 策略的第一步和前提。真正的带宽限制、优先级排队、延迟控制由 tc(traffic control)完成;nftables 的任务是把不同业务流量精准识别出来,并打上标记(如 meta mark 或 ip dscp),供 tc 后续按类调度。

用 nftables 标记流量,为 tc 提供分类依据

标记方式有两种主流路径,选其一即可:

  • 内核标记(netfilter mark):轻量、仅本机有效,适合配合 tc 的 fw classifier 使用。
    例:给 SSH 流量打标记 0x100
    nft add rule inet filter output tcp dport 22 meta mark set 0x100
  • DSCP 字段标记(网络层标记):写入 IP 头部的 TOS 字段,可被下游路由器识别,适合跨设备 QoS。
    例:将 VoIP 流量设为 EF(Expedited Forwarding)
    nft add rule inet filter prerouting udp dport {5060, 5061} ip dscp set 0xb8

注意:DSCP 标记需在 prerouting(转发前)或 output(本机发出)链操作,确保标记在包离开前生效;而 netfilter mark 可在任意链设置,但需确保后续 tc 规则在同一方向(如出向标记,就配出向 tc)。

按业务类型分层标记,避免混用

不要只靠端口判断,结合协议、连接状态、源/目标网段更可靠:

  • VoIP 信令(SIP)+ 媒体流(RTP)分开标记:
    udp dport 5060-5061 → DSCP EF;
    udp dport 10000-20000 ct state established → DSCP AF41
  • 关键管理流量(SSH、HTTPS 管理接口)设高优先级:
    tcp dport {22, 443} ip saddr 10.10.0.0/16 → mark 0x200
  • 限速类流量(如下载、P2P)主动降权:
    tcp dport {80, 443} ip daddr 192.168.100.0/24 → mark 0x001

标记值建议用十六进制且预留空间(如 0x100、0x200),方便后期扩展;避免用 0 或 1 这类易冲突的值。

与 tc 协同工作的典型流程

标记只是起点,必须搭配 tc 才能生效。典型配合步骤如下:

  • 先用 nftables 分类并打标(如上)
  • 用 tc 创建 HTB 队列根规则:
    tc qdisc add dev eth0 root handle 1: htb default 30
  • 用 tc 添加 class 并绑定标记:
    tc class add dev eth0 parent 1: classid 1:10 htb rate 20mbit ceil 100mbit prio 1
    tc filter add dev eth0 parent 1: protocol ip u32 match ip mark 0x100 flowid 1:10
  • 对低优先级类限制带宽或引入延迟:
    tc class add dev eth0 parent 1: classid 1:30 htb rate 5mbit ceil 5mbit

关键点:tc 的 u32 或 fw classifier 会读取 nftables 设置的 meta mark 或 IP 层字段,从而把包送入对应 class。没有这一步,标记就只是“贴标签”,不会影响调度。

验证标记是否生效

别跳过验证环节,常见检查方法:

  • 实时查看 nftables 计数器:
    nft -a list chain inet filter output(加 -a 显示 handle,便于定位)
  • 抓包确认 DSCP 值:
    tcpdump -i eth0 -nn -v 'ip[1] & 0xfc != 0'(显示非默认 DSCP 的包)
  • 查 tc 分类统计:
    tc -s class show dev eth0,观察各 class 的 packets/bps 是否增长

若标记没触发,优先检查链挂载位置(如 DSCP 必须在 prerouting/output)、方向一致性(in/out 对应 tc 的 ingress/egress)、以及 tc filter 是否正确引用了 mark 或 dscp 字段。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

20

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

0

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

0

2026.10.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

120

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

60

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

60

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

40

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

60

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

20

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn