☰
Realtek ACL配置——UDF深度解析与配置总结
2026/11/2 6:24:04 网站建设 项目流程

一、 UDF 核心机制

UDF 允许用户从报文的任意位置提取连续的2 个字节(16 bit)作为 ACL 匹配字段。它由三个关键参数控制:
1.Offset Type(基准点类型):定义从哪里开始算偏移。如 IPv4 (从IPv4头起)、IPv6、TCP、UDP、L4 等。
2.Offset Value(偏移值):极其重要!工具中的单位是“2字节”(Word),而非1字节。实际字节偏移量 = 填入的值 × 2。例如 Offset: 50 意味着实际偏移100 字节;Offset: 2 意味着实际偏移4 字节。
3.Offset Valid(有效性标志):用于防止报文长度不足(畸形包)导致越界提取出垃圾数据而产生“假命中”。

二、 结合示例 3.3.5 详细解释

example 3.3.5 展示了配置 DSCP 重标记和任意偏移设置:

  • UDF 槽位定义:Index: 8,Type: IPv4,Offset: 50。
  • 实际取数位置为:IPv4 头起点 + (50 × 2) 字节 =第 100 字节(取第 100 和 101 字节)。
  • ACL 模板引用:在上方的 Template 中选择 OFFSET8(对应 UDF 索引 8),Data 填入 8899,Mask 为 FFFF。
  • 含义:提取出的数据必须严格等于 0x8899。
  • 为什么要加 OFFSET[0:15] 且设为 0100?
  • 此字段是 UDF 的 Offset Valid(有效性标志,0x0100对应OFFSET8)。它确保提取动作合法完成,防止短包因长度不够导致提取出乱码从而误匹配。

三、 结合 ComboIndex 详细解析

ComboIndex “44” 配置

这条规则是结合 UDF 实现精准定位的典型:

核心原理(内层标签定位):

  • Field 7:报文最外层的 TPID 直接写在了 Ethernet 帧头的 Ether Type 字段中,所以直接匹配。
  • Field 10:该字段使用了底层 EntryAclUdfList 中 Index: 0, Type: L3, Offset: 2 的配置。
    • Type: L3的基准点通常为 MAC 头结束(即外层标签起始处)。
    • Offset: 2表示偏移 2 × 2 = 4 字节。
    • 外层标签固定占用 4 字节(2字节TPID + 2字节TCI),偏移 4 字节后正好落在内层标签的 TPID 字段上。从而实现了 0x8100 的精确匹配。
  • Field 11:0001/0001 确保提取有效,即报文长度足够。

四、 总结与易错点(重点笔记)

1.混淆的单位:OFFSET 值是 “字(Word)” 而非“字节”。一定要乘以 2才是实际字节数。这也是为什么匹配目的端口要填 1(跳过2字节),匹配内层标签要填 2(跳过外层4字节)。
2.槽位号 vs 偏移量:OFFSET8 中的 8 不是偏移量,而是底层 UDF 的Index(槽位编号)。若底层的 Index 填 8,ACL 中必须引用 OFFSET8;底层没配置的 Index,ACL 中引用也是无效的。
3.内/外标签区分:

  • SPID(外层)直接看Ether Type字段。
  • TPID(内层)必须通过UDF穿越外层标签(偏移4字节)才能提取。
    4.安全前提:在所有涉及 UDF 精确匹配的规则中,务必设置 Offset Valid(如 OFFSET[0:15] 设为 0001/0001),这是防止畸形短包误入规则的最佳实践。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询