-
-
-
高级策略表达式:IP 和 MAC 地址、吞吐量、VLAN ID
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
高级策略表达式:IP 和 MAC 地址、吞吐量、VLAN ID
可以使用高级策略表达式前缀返回 IPv4 和 IPv6 地址、MAC 地址、IP 子网、有用的客户端和服务器数据,例如接口端口(Rx、Tx 和 RxTx)的吞吐速率以及接收数据包的 VLAN 的 ID。然后,您可以使用各种运算符来评估这些表达式前缀返回的数据。
IP 地址和 IP 子网的表达式
您可以使用高级策略表达式评估 Internet 协议版本 4 (IPv4) 或 Internet 协议版本 6 (IPv6) 格式的地址和子网。IPv6 地址和子网的表达式前缀在前缀中包括 IPv6。IPv4 地址和子网的表达式前缀在前缀中包含 IP。下面是标识请求是否源自特定 IPv4 子网的表达式示例。
client.ip.src.in_subnet(147.1.0.0/16)
<!--NeedCopy-->
下面是两个重写策略示例,它们检查从中接收数据包的子网并对主机头执行重写操作。配置了这两个策略后,执行的重写操作取决于请求中的子网。这两个策略评估 IPv4 地址格式的 IP 地址。
- add rewrite action URL1-rewrite-action replace "http.req.header("Host")" ""www.mycompany1.com""
- add rewrite policy URL1-rewrite-policy "http.req.header("Host").contains("www.test1.com") && client.ip.src.in_subnet(147.1.0.0/16)" URL1-rewrite-action
- add rewrite action URL2-rewrite-action replace "http.req.header("Host")" ""www.mycompany2.com""
- add rewrite policy URL2-rewrite-policy "http.req.header("Host").contains("www.test2.com") && client.ip.src.in_subnet(10.202.0.0/16)" URL2-rewrite-action
<!--NeedCopy-->
注意
上述示例是您在 Citrix ADC 命令行界面 (CLI) 中键入的命令,因此,每个引号的前面必须有反斜杠 (\)。 有关详细信息,请参阅在策略中配置高级策略表达式。“
IPV4 地址和 IP 子网的前缀
下表描述了返回 IPv4 地址和子网以及 IPv4 地址段的前缀。您可以使用这些前缀特定于 IPv4 地址的数字运算符和运算符。有关数字运算的更多信息,请参阅 “表达式前缀的基本操作” 和 “数字的复合运算”。“
表 1. 评估 IP 和 MAC 地址的前缀
前缀 | 说明 |
---|---|
CLIENT.IP.SRC | 以 IP 地址或数字形式返回当前数据包的源 IP。 |
CLIENT.IP.DST | 以 IP 地址或数字形式返回当前数据包的目标 IP。 |
SERVER.IP.SRC | 以 IP 地址或数字形式返回当前数据包的源 IP。 |
SERVER.IP.DST | 以 IP 地址或数字形式返回当前数据包的目标 IP。 |
IPV4 地址的操作
IPV4 操作的前缀 表描述了可以与返回 IPv4 地址的前缀一起使用的运算符。
关于 IPv6 表达式
IPv6 地址格式比较旧的 IPv4 格式具有更大的灵活性。IPv6 地址采用十六进制格式 (RFC 2373)。在以下示例中,示例 1 是 IPv6 地址,示例 2 是包含 IPv6 地址的 URL,示例 3 包含 IPv6 地址和端口号。
示例 1:
9901:0ab1:22a2:88a3:3333:4a4b:5555:6666
<!--NeedCopy-->
示例 2:
http://[9901:0ab1:22a2:88a3:3333:4a4b:5555:6666]/
<!--NeedCopy-->
示例 3:
https://[9901:0ab1:22a2:88a3:3333:4a4b:5555:6666]:8080/
<!--NeedCopy-->
在示例 3 中,括号将 IP 地址与端口号 (8080) 分开。
请注意,您只能使用 ‘+’ 运算符将 IPv6 表达式与其他表达式相结合。输出是从各个表达式返回的字符串值的连接。您不能将任何其他算术运算符与 IPv6 表达式结合使用。下面的语法是一个示例:
client.ipv6.src + server.ip.dst
<!--NeedCopy-->
例如,如果客户端源 IPv6 地址为ABCD:1234::ABCD
,服务器目标 IPv4 地址为10.100.10.100
,则返回前面的表达式"ABCD:1234::ABCD10.100.10.100"
。
请注意,Citrix ADC 设备收到 IPv6 数据包时,它会从未使用的 IPv4 地址范围分配临时 IPv4 地址,并将数据包的源地址更改为此临时地址。在响应时,传出数据包的源地址将替换为原始 IPv6 地址。
注意
除了生成布尔结果的表达式之外,您可以将 IPv6 表达式与任何其他表达式组合在一起。
IPv6 地址的表达式前缀
下表中的表达式前缀返回的 IPv6 地址可视为文本数据。例如,前缀 client.ipv6.dst 返回目标 IPv6 地址作为可以评估为文本的字符串。
下表描述了返回 IPv6 地址的表达式前缀。
表 3. IPv6 表达式前缀返回文本
前缀 | 说明 |
---|---|
CLIENT.IPV6 | 使用当前数据包在中的 IPv6 地址上运行。 |
CLIENT.IPV6.DST | 返回 IP 标头的目标字段中的 IPv6 地址。 |
CLIENT.IPV6.SRC | 返回 IP 标头的源字段中的 IPv6 地址。以下是示例: client.ipv6.src.in_subnet(2007::2008/64) client.ipv6.src.get1.le(2008)
|
SERVER.IPV6 | 使用当前数据包在中的 IPv6 地址上运行。 |
SERVER.IPV6.DST | 返回 IP 标头的目标字段中的 IPv6 地址。 |
SERVER.IPV6.SRC | 返回 IP 标头的源字段中的 IPv6 地址。以下是示例: server.ipv6.src.in_subnet(2007::2008/64) server.ipv6.src.get1.le(2008)
|
IPv6 前缀的操作
下表描述了可用于返回 IPv6 地址的前缀的运算符:
表 4. 评估 IPv6 地址的操作
IPv6 操作 | 说明 |
---|---|
<ipv6>.EQ(<IPv6_address> |
如果 IP 地址值与<IPv6_address> 参数相同,则返回布尔值 TRUE。下面是一个示例: client.ipv6.dst.eq(ABCD:1234::ABCD)
|
<ipv6>.GET1. . .GET8 |
以数字形式返回 IPv6 地址的段落。以下示例表达式从 ipv6 地址 1000:1001:CD10:0000:0000:89AB:4567:CDEF: client.ipv6.dst.get5 extracts 0000 中的第五组位检索段。client.ipv6.dst.get6 extracts 89AB. client.ipv6.dst.get7 extracts 4567. 您可以对这些段执行数字操作。请注意,您无法在检索整个 IPv6 地址时执行数字操作。这是因为返回整个 IPv6 地址(如 CLIENT.IPV6.SRC)的表达式以文本格式返回该地址。 |
<ipv6>.IN_SUBNET(<subnet>) |
如果 IPv6 地址值位于<subnet> 参数指定的子网中,则返回布尔值 TRUE。下面是一个示例: client.ipv6.dst.eq(1000:1001:CD10:0000:0000:89AB:4567:CDEF/60)
|
<ipv6>.IS_IPV4 |
如果这是 IPv4 客户端,则返回布尔值 TRUE,如果不是,则返回布尔值 FALSE。 |
<ipv6>.SUBNET(<n>) |
应用指定为参数的子网掩码后返回 IPv6 地址。子网掩码可以采用介于 0 到 128 之间的值。例如: CLIENT.IPV6.SRC.SUBNET(24)
|
MAC 地址的表达式
MAC 地址由以冒号分隔的十六进制值组成,格式为 ##:##:##:##:##:##, 其中每个“#”表示 0 到 9 的数字或 A 到 F 的字母。默认语法表达式前缀和运算符可用于评估源和目标 MAC 地址。
MAC 地址的前缀
下表描述了返回 MAC 地址的前缀。
表 5. 评估 MAC 地址的前缀
前缀 | 说明 |
---|---|
client.ether.dstmac |
返回以太网标头的目标字段中的 MAC 地址。 |
client.ether.srcmac |
返回以太网标头的源字段中的 MAC 地址。 |
MAC 地址的操作
下表描述了可用于返回 MAC 地址的前缀的运算符。
表 6. MAC 地址上的操作
前缀 | 说明 |
---|---|
<mac address>.EQ(<address>) |
如果 MAC 地址值与 <address> 参数相同,则返回布尔值 TRUE。 |
<mac address>.GET1. . .GET4 |
返回从 GET 操作中指定的 MAC 地址段中提取的数值。例如,如果 MAC 地址是 12:34:56:78:9a:bc,则以下内容返回 34:client.ether.dstmac.get2
|
数字客户端和服务器数据的表达式
下表介绍了用于处理数字客户端和服务器数据(包括吞吐量、端口号和 VLAN ID)的前缀。
表 7. 用于评估数字客户端和服务器数据的前缀
前缀 | 说明 |
---|---|
client.interface.rxthroughput | 返回一个整数,表示前七秒内的原始接收流量吞吐量(以千字节/秒 (KBPS) 为单位)。 |
client.interface.txthroughput | 返回一个整数,表示前七秒内的原始传输流量吞吐量(KBPS)。 |
client.interface.rxtxthroughput | 返回一个整数,表示前七秒内的原始接收和传输流量吞吐量(KBPS)。 |
server.interface.rxthroughput | 返回一个整数,表示前七秒内的原始接收流量吞吐量(KBPS)。 |
server.interface.txthroughput | 返回一个整数,表示前七秒内的原始传输流量吞吐量(KBPS)。 |
server.interface.rxtxthroughput | 返回一个整数,表示前七秒内的原始接收和传输流量吞吐量(KBPS)。 |
server.vlan.id | 返回当前数据包进入 Citrix ADC 的 VLAN 数字 ID。 |
客户端 .vlan.id | 返回当前数据包进入 Citrix ADC 的 VLAN 的数字 ID。 |
共享
共享
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.