• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

02-应用负载

目录

08-改写策略

本章节下载 08-改写策略  (337.45 KB)

08-改写策略

改写策略

特性简介

将匹配规则和改写动作关联起来就构成了改写策略。当用户流量与匹配规则匹配成功后,执行相应的改写动作。

改写策略需要在虚服务器页面引用后才能生效,虚服务器通过引用改写策略,可对匹配虚服务器的报文进行改写。

匹配规则

管理员可以在一个改写策略中指定多条匹配规则,转发报文时会按照配置顺序进行匹配。

·     当匹配方式为匹配任意一条规则时,与某条匹配规则匹配成功就执行改写动作,否则继续匹配下一条匹配规则,若所有匹配规则均未匹配成功,则不执行改写动作。

·     当匹配方式为匹配所有规则时,仅当所有规则都匹配成功时,才会执行改写动作,否则不执行改写动作。

设备支持多种类型的匹配规则,具体请参见表-1

表-1 匹配规则简介

类型

描述

IP

管理员可配置匹配用户源IP地址的IP地址范围或子网。若用户流量的源IP地址属于指定的地址范围或子网,则认为成功匹配该规则

入接口

管理员可指定流量的入接口。若用户流量从指定接口进入设备,则认为成功匹配该规则

Body

管理员可配置匹配HTTP报文实体的正则表达式。若HTTP报文的实体偏移量后的部分能够匹配指定的正则表达式,则认为成功匹配该规则

Cookie

管理员可配置匹配的HTTP Cookie名称和Cookie值的正则表达式。若HTTP报文中携带有指定名称的Cookie,且Cookie值匹配了指定的正则表达式,则认为成功匹配该规则

Header

管理员可配置匹配的HTTP首部名称和首部值的正则表达式。若HTTP报文中携带有指定名称的首部,且首部值匹配了指定的正则表达式,则认为成功匹配该规则

URI

管理员可配置匹配URI的正则表达式。若HTTP报文中携带的URI匹配了指定的正则表达式,则认为成功匹配该规则

Method

管理员可指定匹配的HTTP方法,可指定RFC预定义的HTTP方法GETCONNECTDELETEHEADOPTIONSPOSTPUTTRACE,也可输入自定义HTTP方法。若HTTP报文中携带的方法匹配了指定方法,则认为成功匹配该规则

Version

管理员可指定匹配的HTTP版本。若HTTP报文中携带的版本号匹配了指定版本号,则认为成功匹配该规则

 

改写动作

对于规则匹配成功的报文,设备会为其执行指定的改写动作。设备支持多种改写动作,具体请参见表-2

表-2 改写动作简介

类型

描述

URI重写

规则匹配成功后,将HTTP请求报文首部中包含指定内容的URI重写为新的URI

Header插入

规则匹配成功后,在指定方向的HTTP报文中插入指定名称和内容的首部

Header删除

规则匹配成功后,如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部从报文中删除

Header重写

规则匹配成功后,如果指定方向的HTTP报文中携带有指定名称的首部,系统会将该首部中的指定内容改写为新的内容

报文体重写

规则匹配成功后,将HTTP应答报文体的指定内容改写为新的内容

SSL URI重定向

规则匹配成功后,如果HTTP应答报文Location首部携带指定的URIHTTP端口号,系统会将Location首部的URIHTTP重写为HTTPS,并将原HTTP端口号重写为新的SSL端口号

 

vSystem相关说明

非缺省vSystem对于本特性的支持情况,请以页面的实际显示为准。

配置指南

配置步骤

1.     单击“应用负载 > 应用优化 > 改写策略”

2.     在“改写策略”页面单击<新建>按钮,新建改写策略。

表-3 改写策略配置

参数

说明

名称

改写策略的名称,不区分大小写

描述

改写策略的描述

类型

改写策略的类型,目前仅支持HTTP类型的改写策略

由于虚服务器只能引用与自身类型相同的改写策略,因此,配置的改写策略类型需要与虚服务器的类型一致

匹配方式

匹配规则的匹配方式,包括:

·     匹配任意一条规则:只需匹配任意一条规则就算匹配成功

·     匹配所有规则:需要匹配所有规则才算匹配成功

匹配规则

流量的匹配规则,将报文按照一定规则进行匹配,以便为不同的报文执行不同的动作。管理员在可以在一个改写策略中指定多条匹配规则

·     类型:匹配规则的类型

·     字段:匹配的报文字段或偏移量

·     关键字:匹配内容,不同类型的匹配规则的匹配内容不同,请参见表-1

·     大小写:匹配正则表达式时,是否区分大小写

URI重写

HTTP请求报文首部中包含指定内容的URI重写为新的URI

·     匹配内容:要被改写的URI的正则表达式

·     改写内容:改写后的URI,支持以下改写变量:

○        %is:客户端侧的源IP地址

○        %ps:客户端侧的源端口号

○        %id:客户端侧的目的IP地址

○        %pd:客户端侧的目的端口号

○        %sps:服务器侧的源端口

○        %spd:服务器侧的目的端口

○        %sis:服务器侧的源IP地址

○        %sid:服务器侧的目的IP地址

○        %1-9:要被重写的URL中正则表达式取出的变量值,最多支持9

○        %{x509v}:证书的版本

○        %{x509snum}:证书的序列号

○        %{x509sigalgo}:证书的签名算法

○        %{x509issuer}:证书的签发者

○        %{x509before}:证书的有效时间(在此时间之前无效)

○        %{x509after}:证书的有效时间(在此时间之后无效)

○        %{x509sub}:证书的主题

○        %{x509spktype}:证书的主题的公钥类型

○        %{x509spk}:证书的主题的公钥

○        %{x509spkRSA}:证书的主题的RSA公钥的长度(仅当公钥为RSA类型才有该字段)

○        %{x509hash}:客户端证书的MD5散列(指纹)

○        %{dncn}:颁发给

○        %{dne}:电子邮件

○        %{dno}:公司/机构

○        %{dnou}:部门

○        %{dnc}:国家

○        %{dns}:州/省份

○        %{dnl}:城市

·     编码方式:对改写变量的编码方式,包括:

○        原文:即不对改写变量进行编码

○        URI编码:只会对改写变量中的特殊字符进行编码,需要编码的特殊字符为:;/?:@&=+$|{},\^[]`<>#%"、空格

○        Base64编码:对整个改写变量进行编码

·     大小写:匹配正则表达式时,是否区分大小写

Header插入

在指定方向的HTTP报文中插入指定名称和内容的首部

·     方向:HTTP报文的方向,包括:

○        双向:表示请求和应答方向的HTTP报文

○        请求:表示请求方向的HTTP报文

○        应答:表示应答方向的HTTP报文

·     Header名称:要插入HTTP报文中的首部名称,包括标准和自定义的首部,不区分大小写。不允许输入()<>@,;:\"/[]?={}SP(空格符)、HT(水平制表符),以及ASCII码中小于等于31、大于等于127的字符

·     Header值:要插入HTTP报文中的首部内容。支持以下改写变量:

○        %is:客户端侧的源IP地址

○        %ps:客户端侧的源端口号

○        %id:客户端侧的目的IP地址

○        %pd:客户端侧的目的端口号

○        %sps:服务器侧的源端口

○        %spd:服务器侧的目的端口

○        %sis:服务器侧的源IP地址

○        %sid:服务器侧的目的IP地址

○        %{x509v}:证书的版本

○        %{x509snum}:证书的序列号

○        %{x509sigalgo}:证书的签名算法

○        %{x509issuer}:证书的签发者

○        %{x509before}:证书的有效时间(在此时间之前无效)

○        %{x509after}:证书的有效时间(在此时间之后无效)

○        %{x509sub}:证书的主题

○        %{x509spktype}:证书的主题的公钥类型

○        %{x509spk}:证书的主题的公钥

○        %{x509spkRSA}:证书的主题的RSA公钥的长度(仅当公钥为RSA类型才有该字段)

○        %{x509hash}:客户端证书的MD5散列(指纹)

○        %{dncn}:颁发给

○        %{dne}:电子邮件

○        %{dno}:公司/机构

○        %{dnou}:部门

○        %{dnc}:国家

○        %{dns}:州/省份

○        %{dnl}:城市

·     编码方式:对改写变量的编码方式,包括:

○        原文:即不对改写变量进行编码

○        URI编码:只会对改写变量中的特殊字符进行编码,需要编码的特殊字符为:;/?:@&=+$|{},\^[]`<>#%"、空格

○        Base64编码:对整个改写变量进行编码

Header删除

删除指定方向的HTTP报文中指定名称的首部

·     方向:HTTP报文的方向,包括:

○        双向:表示请求和应答方向的HTTP报文

○        请求:表示请求方向的HTTP报文

○        应答:表示应答方向的HTTP报文

·     Header名称:待删除的HTTP报文首部的名称,包括标准和自定义的首部,需要与报文中的首部完全匹配,才能执行删除动作,不区分大小写。不允许输入()<>@,;:\"/[]?={}SP(空格符)、HT(水平制表符),以及ASCII码中小于等于31、大于等于127的字符

Header重写

将指定方向的HTTP报文首部中的指定内容改写为新的内容

·     方向:HTTP报文的方向,包括:

○        双向:表示请求和应答方向的HTTP报文

○        请求:表示请求方向的HTTP报文

○        应答:表示应答方向的HTTP报文

·     Header名称:HTTP报文首部的名称,包括标准和自定义的首部,需要与报文中的首部完全匹配,才能执行重写动作。不区分大小写。不包括()<>@,;:\"/[]?={}SP(空格符)、HT(水平制表符),以及ASCII码中小于等于31、大于等于127的字符

·     Header值:要被改写的HTTP报文首部内容的正则表达式

·     替换成的资源串:改写后的内容。支持以下改写变量:

○        %is:客户端侧的源IP地址

○        %ps:客户端侧的源端口号

○        %id:客户端侧的目的IP地址

○        %pd:客户端侧的目的端口号

○        %sps:服务器侧的源端口

○        %spd:服务器侧的目的端口

○        %sis:服务器侧的源IP地址

○        %sid:服务器侧的目的IP地址

○        %1-9Header值中正则表达式取出的变量值,最多支持9

○        %{x509v}:证书的版本

○        %{x509snum}:证书的序列号

○        %{x509sigalgo}:证书的签名算法

○        %{x509issuer}:证书的签发者

○        %{x509before}:证书的有效时间(在此时间之前无效)

○        %{x509after}:证书的有效时间(在此时间之后无效)

○        %{x509sub}:证书的主题

○        %{x509spktype}:证书的主题的公钥类型

○        %{x509spk}:证书的主题的公钥

○        %{x509spkRSA}:证书的主题的RSA公钥的长度(仅当公钥为RSA类型才有该字段)

○        %{x509hash}:客户端证书的MD5散列(指纹)

○        %{dncn}:颁发给

○        %{dne}:电子邮件

○        %{dno}:公司/机构

○        %{dnou}:部门

○        %{dnc}:国家

○        %{dns}:州/省份

○        %{dnl}:城市

·     编码方式:对改写变量的编码方式,包括:

○        原文:即不对改写变量进行编码

○        URI编码:只会对改写变量中的特殊字符进行编码,需要编码的特殊字符为:;/?:@&=+$|{},\^[]`<>#%"、空格

○        Base64编码:对整个改写变量进行编码

应答报文体重写

HTTP应答报文体的指定内容改写为新的内容

·     重写前内容:要被替换的HTTP报文体的正则表达式

·     重写后内容:替换后的HTTP报文体的内容。可以使用以下特定含义的字符串:

○        %is:源IP地址或源IPv6地址

○        %ps:源端口号

○        %id:目的IP地址或目的IPv6地址

○        %pd:目的端口号

○        %%:字符%

○        %[1-9],替换成%[1-9]中对应()中的内容

SSL URI重定向

如果HTTP应答报文Location首部携带指定的URIHTTP端口号,系统会将Location首部的URIHTTP重写为HTTPS,并将原HTTP端口号重写为新的SSL端口号

·     URILocation首部URI的正则表达式

·     HTTP端口:原HTTP端口号

·     SSL端口:重写后的SSL端口号

·     大小写:匹配正则表达式时,是否区分大小写

 

3.     单击<确定>按钮,新建的改写策略会在“改写策略”页面显示。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们