18.12.10. 支持的协议
以下小节列出了网络过滤子系统支持的协议的一些详情。规则节点中以嵌套节点提供这种类型的流量规则。根据流量类型规则过滤,属性不同。上例显示了在 ip 流量过滤节点中有效的单一属性
srcipaddr
。以下小节显示了有效属性以及它们期望的数据类型。可用的 datatypes 如下:
- UINT8 : 8 位整数;范围 0-255
- UINT16: 16 位整数;范围 0-65535
- MAC_ADDR: MAC 地址采用点十进制格式,如 00:11:22:33:44:55
- MAC_MASK: MAC 地址格式的 MAC 地址掩码,如 FF:FF:FF:FC:00:00
- ip_ADDR: 采用点十进制格式的 IP 地址,如 10.1.2.3
- ip_MASK:以点十进制格式(255.255.248.0)或 CIDR 掩码(0-32)的 IP 地址掩码。
- IPV6_ADDR: IPv6 地址采用数字格式,如 FFFF::1
- IPV6_MASK:数字格式的 IPv6 掩码(FFFF:FF:FC00::)或 CIDR mask(0-128)
- STRING: 字符串
- BOOLEAN: 'true', 'yes', '1' 或 'false', 'no', '0'
- IPSETFLAGS:由最多 6 种 'src' 或 'dst' 元素描述的 ipset 的源和目的地标记,从数据包标头的源或目标部分选择功能;example: src,src,dst。此处提供的"selectors"的数量取决于引用的 ipset 类型
除类型为
IP_MASK
或 IPV6_MASK
的属性外的每个属性都可使用 match 属性而不是值 来 划分。多个多组属性可以分组在一起。以下 XML 片段显示了使用抽象属性的示例。
[...] <rule action='drop' direction='in'> <protocol match='no' attribute1='value1' attribute2='value2'/> <protocol attribute3='value3'/> </rule> [...]
规则的行为评估规则,并在给定的协议属性的边界内查看规则。因此,如果单个属性的值与规则中的值不匹配,则整个规则将在评估过程中跳过。因此,只有在上面的例子中,如果协议属性
attribute1
与 value1
不匹配,且协议属性 attribute2
不匹配 value2
,且协议属性 attribute3
与 value3
匹配,则传入的流量才会被丢弃。
18.12.10.1. mac(Ethernet)
协议 ID:mac
此类型的规则应当转至 root 链。
属性名称 | datatype | 定义 |
---|---|---|
srcmacaddr | MAC_ADDR | 发件人的 MAC 地址 |
srcmacmask | MAC_MASK | 掩码应用到发送方的 MAC 地址 |
dstmacaddr | MAC_ADDR | 目标的 MAC 地址 |
dstmacmask | MAC_MASK | 掩码应用到目的地的 MAC 地址 |
protocolid | UINT16(0x600-0xffff), STRING | 第 3 层协议 ID。有效字符串包括 [arp, rarp, ipv4, ipv6] |
注释 | 字符串 | 文本字符串最多 256 个字符 |
过滤器可以编写如下:
[...] <mac match='no' srcmacaddr='$MAC'/> [...]