配置标签规则
标记规则包括一个或多个term
语句,用于标识在 中的term
条件匹配时要执行的 HTTP 扩充操作。必须在 的term
子句中then
至少配置一个tag
标记,并且可以配置多个标记。
术语按其配置顺序进行评估。如果数据包与 中语句中的所有from
条件匹配,则将应用在 term
的语句中term
then
指定的操作。from
如果语句未标识任何条件,则所有流量都匹配。数据包与术语匹配后,不会评估其他术语。如果没有匹配的术语,则不会扩充 HTTP 标头。
要配置标签规则:
- 配置可在标签规则中使用的标签属性列表。
[edit services hcm] user@host# set tag-attribute tag-attr-name
自适应服务当前支持的标记属性为
apn
、 、 、imsi
ggsnipv4
imei
ipv4addr
ggsnipv6
ipv6addr
和 。msisdn
要配置多个标记属性,请将它们包含在方括号 ([ ]) 中。从 Junos 20.2R1 开始,MX240、MX480 和 MX960 上的下一代服务支持 用于 HTTP 标头扩充的 IPv4 和 IPv6 标记。此版本中的下一代服务不支持其他标记。例如:
[edit services hcm] user@host# set tag-attribute [msisdn apn]
- 配置标记规则的名称。
[edit services hcm] user@host# set tag-rule rule-name
例如:
[edit services hcm] user@host# set tag-rule rule1
- 为标记规则配置术语。
[edit services hcm set tag-rule rule-name] user@host# set term term-number
注意:参数
term
必须具有数值。例如:
[edit services hcm set tag-rule rule1] user@host# set term 1
- (可选)指定 HTTP 请求目标 IP 地址必须匹配的前缀。
[edit services hcm tag-rule rule-name term term-number from] user@host# set destination-address prefix
例如:
[edit services hcm tag-rule rule1 term 1 from] user@host# set destination-address 192.0.2.0/24
您还可以指定要匹配的地址类型:
[edit services hcm tag-rule rule-name term term-number from] user@host# set destination-address (any-ipv4 | any-ipv6 | any-unicast)
您可以通过多次包含
destination-address
语句来指定多个前缀或地址类型。 - (可选)指定 HTTP 请求目标 IP 地址必须匹配的 IP 地址范围。
[edit services hcm tag-rule rule-name term term-number from] user@host# set destination-address-range low address high address
例如:
[edit services hcm tag-rule rule1 term 1 from] user@host# set destination-address-range low 10.10.10.1 high 10.10.10.255
您可以通过多次包含
destination-address-range
语句来指定多个地址范围。 - (可选)指定 HTTP 请求目标 IP 地址必须匹配的目标前缀列表。前缀列表必须已在层次结构级别定义
[edit policy-options prefix-list]
。[edit services hcm tag-rule rule-name term term-number from] user@host# set destination-prefix-list prefix-name
例如:
[edit services hcm tag-rule rule1 term 1 from] user@host# set destination-prefix-list customer1
您可以通过多次包含
destination-prefix-list
语句来指定多个前缀列表。 - (可选)指定要从与语句匹配
except
HTTP 请求目标 IP 地址中排除的任何地址。要排除地址,还必须在层次结构级别配置[edit services hcm tag-rule rule-name term term-number from]
在 、destination-address-range
或destination-prefix-list
语句中destination-address
匹配的地址。例如:
[edit services hcm tag-rule rule1 term 1 from] user@host# set destination-address-range low 10.10.10.1 high 10.10.10.255 user@host# set destination-address 10.10.10.9/32 except
这将匹配目标范围中除 10.10.10.9 之外的所有地址。
您可以在层次结构级别的以下语句
[edit services hcm tag-rule rule-name term term-number from]
中使用except
:destination-address { any-ipv4 except; any-ipv6 except; any-unicast except; prefix except; } destination-address-range { high address low address except; } destination-prefix-list { prefix-name except; }
- (可选)指定 HTTP 请求目标端口号必须匹配的端口范围。
[edit services hcm tag-rule rule-name term term-number from] user@host# set destination-port-range high port-number low port-number
您可以通过多次包含
destination-port-range
语句来指定多个端口范围。注意:如果未指定要匹配的任何端口或端口范围,则所有端口都将匹配。
- (可选)指定必须匹配的 HTTP 请求目标端口号。
[edit services hcm tag-rule rule-name term term-number from] user@host# set destination-ports value
您可以通过多次包含
destination-ports
语句来指定多个端口。 - (可选)指定您希望通过在语句中不包含任何匹配条件来将标记规则语句中
then
from
指定的所有 HTTP 标头扩充操作应用于所有 HTTP 请求。您必须在每个term
标签规则中包含一条from
语句。[edit services hcm tag-rule rule-name term term-number ] user@host# set from
例如:
[edit services hcm tag-rule rule2 term 1] user@host# set from [edit services hcm tag-rule rule2 term 1] user@host# set then count
- 配置标签的名称。
[edit services hcm tag-rule rule-name term term-number then] user@host# set tag tag-name
例如:
[edit services hcm tag-rule rule1 term 1 then] user@host# set tag msisdn-tag
- 配置标签应用于 HTTP 标头的标记标头。
[edit services hcm tag-rule rule-name term term-number then tag tag-name] user@host# set tag-header header
例如:
[edit services hcm tag-rule rule1 term 1 then tag msisdn-tag] user@host# set tag-header X_MSISDN
您最多可以配置 16 个唯一标记标头。
这些header值不能为
accept
、 、accept-encoding
accept-charset
accept-language
authorization
expect
host
if-match
if-modified-since
if-none-match
if-range
if-unmodified-since
max-forwards
proxy-authorization
referer
user-agent
x-moz
这些标头值是保留的;您无法配置它们。 - 指定标签应用于 HTTP 标头的标签属性。若要一次指定多个属性,请将这些属性包含在方括号 ([]) 中。
[edit services hcm tag-rule rule-name term term-number then tag tag-name] user@host# set tag-attribute [tag-attr-name]
注意:标签属性必须列在步骤 1 中配置的标签属性中。
例如:
[edit services hcm tag-rule rule1 term 1 then tag msisdn-tag] user@host# set tag-attribute msisdn
- 指定标签在 HTTP 标头中使用的分隔符。
[edit services hcm tag-rule rule-name term term-number then tag tag-name] user@host# set tag-separator separator
例如:
[edit services hcm tag-rule rule1 term 1 then tag msisdn-tag] user@host# set tag-separator /
- (可选)指定用于在 HTTP 标头中插入标记的哈希方法和前缀键。
[edit services hcm tag-rule rule-name term term-number then tag tag-name encrypt] user@host# set hash algorithm prefix hash-prefix
目前仅
md5
支持哈希方法。例如:
[edit services hcm tag-rule rule1 term 1 then tag msisdn-tag encrypt] user@host# set hash md5 prefix gatewaykey1
- (可选)为标记规则的 HTTP 标头扩充启用统计信息收集。
[edit services hcm tag-rule rule-name term term-number then user@host# set count
- (可选)配置标记如何将 IPv4 或 IPv6 用户地址的字节替换为 HTTP 标头中的其他值。
[edit services hcm tag-rule rule-name term term-number then tag tag-name] user@host# set (ipv4-mask ipv4-mask | ipv6-mask ipv6-mask) (ipv4-or-value ipv4-or-value | ipv6-or-value ipv6-or-value)
要标识要替换的字节,请在或的
ipv4-mask
相应字节中输入 IPv4 或 ffipv6-mask
IPv6,在其他字节中输入255零。要为该字节指定新值,请在 或
ipv4-or-value
ipv6-or-value
的相应字节中输入值,并在其他字节中输入零。例如,以下内容将 IPv4 用户地址的第一个字节替换为值 168:
[edit services hcm tag-rule tag1 term term1 then tag subscip4] user@host# set ipv4-mask 255.0.0.0 ipv4-or-value 168.0.0.0
- 如果要为
then
术语中的语句配置更多标签,请重复步骤 11 到步骤 17。 - 如果要为标签规则配置其他
term
语句,请重复步骤 3 到步骤 18。