• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

06-三层技术-IP业务配置指导

目录

22-HTTP proxy配置

本章节下载 22-HTTP proxy配置  (811.90 KB)

22-HTTP proxy配置

  录

1 HTTP proxy概述

1.1 HTTP proxy简介

1.1.1 HTTP proxy的工作原理

1.1.2 外链代理

1.1.3 HTTP proxy配置方式

1.2 HTTP proxy的License要求

2 通过HTTP proxy服务视图配置代理

2.1 HTTP proxy配置限制和指导

2.2 HTTP proxy配置任务简介

2.3 配置Web服务器组

2.4 配置HTTP proxy服务的基本功能

2.5 配置SSL证书相关文件

2.5.1 功能简介

2.5.2 配置限制和指导

2.5.3 配置准备

2.5.4 配置不区分域名使用的SSL证书相关文件

2.5.5 配置区分域名使用的SSL证书相关文件

2.6 配置外链代理功能

2.6.1 功能简介

2.6.2 配置准备

2.6.3 配置媒体资源外链代理功能

2.6.4 配置指定外链代理功能

2.6.5 配置无限跳转功能

2.7 配置HTTP proxy服务扩展功能

2.7.1 配置与服务器建立连接的源IP地址池

2.7.2 配置Web资源缓存功能

2.7.3 配置关键字监控替换功能

2.7.4 配置Referer防盗链功能

2.7.5 配置防SQL、XSS注入功能

2.8 配置代理信息记录功能

2.9 开启HTTP proxy功能

2.10 HTTP proxy服务视图配置代理的显示和维护

2.11 通过HTTP proxy服务视图配置代理举例(独立运行模式)

2.11.1 HTTP proxy服务指定Web服务器组代理HTTP协议配置举例

2.11.2 HTTP proxy通过DNS解析代理HTTP协议配置举例

2.11.3 HTTP proxy服务指定Web服务器组代理HTTPS协议配置举例

2.11.4 HTTP proxy通过DNS解析代理HTTPS协议配置举例

3 通过HTTP proxy server视图配置代理

3.1 通过HTTP proxy server视图配置代理配置限制和指导

3.2 通过HTTP proxy server视图配置代理配置任务简介

3.3 创建HTTP proxy server视图

3.4 在HTTP proxy server视图下配置代理的相关参数

3.5 配置SSL证书相关文件

3.6 配置外链代理功能

3.6.1 功能简介

3.6.2 配置限制和指导

3.6.3 配置准备

3.6.4 配置无限跳转功能

3.6.5 配置指定外链代理功能

3.7 在HTTP proxy server视图下配置代理的扩展功能

3.7.1 配置与服务器建立连接的源IP地址池

3.7.2 配置Web资源缓存功能

3.7.3 配置关键字监控替换功能

3.7.4 配置HTTP proxy server视图下的Referer防盗链功能

3.7.5 配置防SQL、XSS注入功能

3.7.6 删除HTTP/HTTPS响应头中的Set-Cookie消息选项

3.7.7 开启QueryString还原功能

3.7.8 配置HTTP/HTTPS响应头改造以及请求头还原功能

3.7.9 配置允许替换的重定向URL域名

3.8 引用HTTP proxy server视图

3.9 开启HTTP proxy服务的泛域名加密功能

3.10 配置代理信息记录功能

3.11 开启HTTP proxy功能

3.12 通过HTTP proxy server视图配置代理的显示和维护

3.13 通过HTTP proxy server视图配置代理举例

3.13.1 HTTP proxy服务代理HTTP协议配置举例

3.13.2 HTTP proxy服务代理HTTPS协议配置举例

3.14 通过HTTP proxy server视图配置代理举例(独立运行模式)

3.14.1 HTTP proxy服务代理HTTP协议配置举例

3.14.2 HTTP proxy服务代理HTTPS协议配置举例

4 HTTP proxy常见故障处理

4.1 HTTP proxy功能启动失败

 


1 HTTP proxy概述

1.1  HTTP proxy简介

在IPv4网络向IPv6网络过渡的过程中,IPv6用户无法访问仍使用IPv4协议栈的Web服务器。HTTP proxy(HTTP代理)功能通过代理IPv6用户的HTTP/HTTPS请求报文,实现IPv6用户访问IPv4网络Web服务器的目的。

HTTP proxy功能具有以下优点:

·     降低了IPv6网络化的难度,可避免对现有IPv4业务造成影响,实现了向纯IPv6网络的平滑过渡。

·     解决了跨协议栈无法访问Web页面的问题,具有良好的兼容性,提高了网络的可扩展性。

·     支持负载分担功能,提升了网络的运行效率和稳定性,增强了用户体验。

1.1.1  HTTP proxy的工作原理

HTTP proxy存在两种不同的工作机制,两种机制的应用场景存在差别:

·     根据指定的Web服务器IPv4地址进行代理:设备通过指定的IPv4地址向Web服务器发送HTTP/HTTPS请求报文,同一个服务器组内的Web服务器负载分担。

·     根据DNS服务器解析出Web服务器的IPv4地址进行代理:设备通过DNS服务器解析Web服务器的IPv4地址向Web服务器发送请求报文。设备需要对多个承载不同服务的Web服务器进行代理时可应用此工作机制。

1. HTTP proxy根据指定的Web服务器IPv4地址进行代理的工作原理

图1-1 HTTP proxy工作原理示意图

 

(1)     IPv6网络用户主机(IPv6 Host)通过DNS服务器,获取到需访问域名对应的IPv6地址为设备(Device)配置HTTP proxy的IPv6地址。并发送IPv6的HTTP/HTTPS请求报文到达设备。

(2)     设备收到IPv6的HTTP/HTTPS请求报文后,设备判断URL中的域名是否在HTTP proxy服务允许代理的范围内。缺省情况下,设备可以代理所有Web服务器,若将Web服务器的域名加入HTTP proxy的域名黑名单,则不能代理使用该域名的Web服务器。若指定了HTTP proxy的域名白名单,则无法代理使用白名单域名之外的Web服务器。若不允许代理,则向用户返回错误页面;若允许代理,则继续进行下述过程。

(3)     设备根据指定的Web服务器IPv4地址重新封装HTTP/HTTPS请求报文,发送给Web服务器(IPv4 Server)。

(4)     Web服务器将HTTP/HTTPS应答报文发送到设备。

(5)     设备将HTTP/HTTPS应答报文重新封装后发送给主机。

2. HTTP proxy根据DNS服务器解析出Web服务器的IPv4地址进行代理的工作原理

图1-2 HTTP proxy工作原理示意图

 

(1)     IPv6网络用户主机(IPv6 Host)通过DNS服务器,获取到需访问域名对应的IPv6地址为设备(Device)配置HTTP proxy的IPv6地址。并发送IPv6的HTTP/HTTPS请求报文到达设备。

(2)     设备收到IPv6的HTTP/HTTPS请求报文后,设备判断URL中的域名是否在HTTP proxy服务允许代理的范围内。缺省情况下,设备可以代理所有Web服务器,若将Web服务器的域名加入HTTP proxy的域名黑名单,则不能代理使用该域名的Web服务器。若指定了HTTP proxy的域名白名单,则无法代理使用白名单域名之外的Web服务器。若不允许代理,则向用户返回错误页面;若允许代理,则继续进行下述过程:

a.     设备将要代理的域名通过DNS服务器解析出可达的IPv4地址,作为与Web服务器通信的依据。

b.     设备根据DNS服务器解析出的IPv4地址重新封装HTTP/HTTPS请求报文,发送给Web服务器(IPv4 Server)。

(3)     Web服务器将HTTP/HTTPS应答报文发送到设备。

(4)     设备将HTTP/HTTPS应答报文重新封装后发送给主机。

1.1.2  外链代理

说明

外链,即在本网站中导入的其他网站的链接,在本文中,所有“外链”描述均代指IPv6用户访问的IPv4服务器Web页面上存在的非本网站资源(超级链接)。

 

缺省情况下,当IPv6网络用户需要访问IPv4服务器Web页面上的外链时,会出现无法访问的问题。此时需要配置外链代理相关功能,实现用户访问外链资源的需求。

HTTP proxy外链代理工作原理如图1-3所示,其工作过程为:

(1)     IPv6用户请求Web服务器的HTML页面资源。用户通过DNS服务器,获取到访问的目的域名对应的IPv6地址为设备(Device)配置HTTP proxy的IPv6地址。并发送IPv6的HTTP/HTTPS请求报文到达设备。

(2)     设备重新封装HTTP/HTTPS请求报文,发送给Web服务器(IPv4 Server)。

(3)     Web服务器将包含Web页面(HTML)的数据封装在HTTP/HTTPS应答中返回给设备。

(4)     设备收到Web服务器返回的HTTP/HTTPS应答报文后,为其中的外链添加已配置的域名信息,并重新封装应答报文发送给IPv6用户。设备添加的域名信息可以是HTTP proxy的白名单域名,也可以是HTTP proxy的泛域名,设备使用泛域名为外链添加域名信息时,需要同时开启无限跳转功能,开启无限跳转功能后,所有外链的代理皆使用此功能。

(5)     IPv6网络用户访问Web页面上的外链时,DNS服务器解析出添加的域名信息对应的IPv6地址为HTTP proxy的IPv6地址。用户发送访问外部链接的HTTP/HTTPS请求报文到达设备。

(6)     设备收到IPv6网络用户访问外链的HTTP/HTTPS请求报文,剥离报文的URL中添加的域名信息。

(7)     设备通过配置的DNS服务器解析出HTTP/HTTPS请求报文的IPv4地址。

(8)     设备根据解析出的IPv4地址,将HTTP/HTTPS请求报文重新封装后,发送给需要访问的外链服务器。

(9)     外部的Web服务器将媒体资源或HTML页面文件封装在HTTP/HTTPS应答中返回给设备。

(10)     若设备收到的HTTP/HTTPS应答报文中携带的仅为媒体资源(图片、文本等),则直接将报文重新封装后发送给IPv6主机,否则为HTTP/HTTPS应答报文中携带的外链URL添加已配置的域名信息,并重新封装应答报文发送给IPv6用户。

图1-3 外链代理工作原理示意图

 

1.1.3  HTTP proxy配置方式

HTTP proxy服务的相关参数,可以在如下两个视图下配置,用来控制HTTP proxy服务的代理功能:

·     HTTP proxy服务视图:使用该视图下的配置时,设备可以代理当前HTTP proxy进程下的所有Web资源。一台设备/一个成员设备/单板中只能创建一个HTTP proxy服务视图,即只能有一套代理配置。

·     HTTP proxy server视图:使用该视图下的配置时,设备仅对特定的Web服务器资源进行代理。相比HTTP proxy服务视图,HTTP proxy server视图代理的粒度更小,但是设备可以创建多个HTTP proxy server视图,并且多个视图下的配置可以同时生效。这方便了管理员针对不同Web服务器资源的代理进行差异化配置,以满足多样的Web资源代理需求,具有更高的灵活性。使用HTTP proxy server视图下的配置进行代理时,仅支持“根据DNS服务器解析出Web服务器的IPv4地址进行代理”的方式。

图1-4 不同配置代理方式示意图

 

HTTP proxy server视图下的配置,在该视图被HTTP proxy服务视图引用后,才能生效。在HTTP proxy server视图被引用前,设备使用HTTP proxy服务视图下的配置进行代理;引用了HTTP proxy server视图后,设备使用HTTP proxy server视图下的配置,以及复用一部分HTTP proxy服务视图下的配置进行代理。

一些影响代理的关键功能,在HTTP proxy server视图和HTTP proxy服务视图下都可以配置,但是不能在两个视图下同时配置。引用了HTTP proxy server视图时,这些功能只能在HTTP proxy server视图下配置。HTTP proxy服务相关功能的配置视图的具体情况,如表1-1所示。

表1-1 HTTP proxy服务相关功能可以配置的视图

HTTP proxy服务相关功能

能否在HTTP proxy服务视图下配置

能否在HTTP proxy server视图下配置

能否在HTTP proxy server视图和HTTP proxy服务视图下同时配置

配置Web服务器组

Y

N

N

配置HTTP proxy服务代理的协议类型和侦听的端口号

Y

Y

N

配置HTTP proxy服务的IPv6地址

Y

Y

N

配置DNS服务器的IPv4地址

Y

N(复用HTTP proxy 服务视图下的配置)

N

配置HTTP proxy服务代理的黑名单域名

Y

N

N

配置HTTP proxy服务代理的白名单域名

Y

Y

N

配置SSL证书相关文件

Y

N(复用HTTP proxy 服务视图下的配置)

N

配置媒体资源外链代理功能

Y

N

N

配置指定外链代理功能

Y

N

N

配置HTTP proxy服务代理的泛域名

Y

N(复用HTTP proxy 服务视图下的配置)

N

配置无限跳转功能

Y

Y

N

配置HTTP proxy不代理的外链域名

Y

Y

Y

开启HTTP proxy服务的外链URL信息提示功能

Y

Y

N

配置HTTP proxy服务的外链重定向功能

Y

Y

N

配置server视图下的指定外链代理功能

N

Y

N

配置与服务器建立连接的源IP地址池

Y

N(复用HTTP proxy 服务视图下的配置)

N

配置Web资源缓存功能

Y

Y

N

配置关键字监控替换功能

Y

N(复用HTTP proxy 服务视图下的配置)

N

配置Referer防盗链功能

Y

N

N

配置HTTP proxy server视图下的Referer防盗链功能

N

Y

N

配置防SQL、XSS注入功能

Y

N(复用HTTP proxy 服务视图下的配置)

N

删除HTTP/HTTPS响应头中的Set-Cookie消息选项

N

Y

N

开启QueryString还原功能

N

Y

N

配置HTTP/HTTPS响应头改造以及请求头还原功能

N

Y

N

配置允许替换的重定向URL域名

N

Y

N

开启HTTP proxy服务的泛域名加密功能

Y

N(复用HTTP proxy 服务视图下的配置,通过HTTP proxy server视图配置代理的专用功能)

N

配置代理信息记录功能

Y

N(复用HTTP proxy 服务视图下的配置)

N

开启HTTP proxy功能

Y

N(复用HTTP proxy 服务视图下的配置)

N

 

1.2  HTTP proxy的License要求

HTTP proxy需要安装License才能使用。未安装License时,重启设备会自动删除HTTP proxy的相关配置。有关License的详细介绍,请参见“基础配置指导”中的“License管理”。


2 通过HTTP proxy服务视图配置代理

2.1  HTTP proxy配置限制和指导

在使用HTTP proxy服务提供代理功能时,请确保HTTP proxy服务的上下行流量属于同一个slot(即设备与IPv6用户通信的接口和设备与Web服务器通信的接口属于同一个slot),否则HTTP proxy服务无法代理所需的Web资源。

设备需要通过DNS服务器解析域名时,必须执行dns proxy enable命令来开启DNS proxy功能,否则无法通过DNS服务器解析出需要HTTP proxy服务代理的域名对应的IP地址。有关dns proxy enable命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“域名解析”。

2.2  HTTP proxy配置任务简介

HTTP proxy的配置任务如下:

(1)     (可选)配置Web服务器组

(2)     配置HTTP proxy服务的基本功能

(3)     配置SSL证书相关文件

¡     配置不区分域名使用的SSL证书相关文件

¡     配置区分域名使用的SSL证书相关文件

本配置仅在代理HTTPS协议的Web服务时必选。

(4)     (可选)配置外链代理功能

¡     配置媒体资源外链代理功能

¡     配置指定外链代理功能

¡     配置无限跳转功能

(5)     (可选)配置HTTP proxy服务扩展功能

¡     配置与服务器建立连接的源IP地址池

¡     配置Web资源缓存功能

¡     配置关键字监控替换功能

¡     配置Referer防盗链功能

¡     配置防SQL、XSS注入功能

(6)     (可选)配置代理信息记录功能

(7)     开启HTTP proxy功能

2.3  配置Web服务器组

1. 功能简介

用户需要代理访问的IPv4 Web服务器的信息在Web服务器组中进行配置。HTTP proxy将提供相同服务的多台Web服务器添加到同一个Web服务器组。设备收到的HTTP/HTTPS请求报文后,根据一定的算法将流量分配到不同的Web服务器上进行流量的负载分担。HTTP proxy的负载分担功能可以增加网络带宽、提高网络的可用性和灵活性。

HTTP proxy服务支持代理HTTP和HTTPS两种协议类型,每种协议类型对应一个Web服务器组。Web服务器组需要配置服务协议类型和Web服务器的IP地址和端口号,同一个Web服务器组可以指定多个Web服务器的IP地址和端口号来实现负载分担功能。

2. 配置限制和指导

配置本功能后,设备便只会根据配置Web服务器的IP地址和端口号发送HTTP/HTTPS请求,可能导致IPv6用户访问至错误的Web页面。

Web服务器组参数需要在HTTP proxy服务关联该Web服务器组之前进行配置,若已被关联,必须先解除关联再配置。

Web服务器组内所有Web服务器的服务协议类型必须与本组的协议类型一致。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建Web服务器组,并进入Web服务器组视图。

http-proxy server-group group-name

(3)     配置Web服务器的IP地址和端口号。

ip-address ip-address [ port port-number ]

缺省情况下,未配置Web服务器的IP地址和端口号。

(4)     配置Web服务器组的服务协议类型。

protocol-type { http | https }

缺省情况下,未配置Web服务器组的服务协议类型。

2.4  配置HTTP proxy服务的基本功能

1. 功能简介

HTTP proxy服务指定服务监听的TCP端口号,并且设定用于代理的IPv6地址,代理发往该IPv6地址、使用指定TCP端口号的HTTP/HTTPS请求。如果HTTP proxy服务需要对用户的HTTPS请求进行代理,则还需要提供SSL证书文件和SSL证书密钥文件来与IPv6客户端建立安全的连接。

设备收到HTTP/HTTPS请求后,首先要判断请求报文中的URL携带的域名是否允许被代理。HTTP proxy服务可以配置代理域名的黑白名单,以达到对HTTP proxy代理的域名进行过滤的目的。缺省情况下,HTTP proxy可以代理所有DNS服务器能解析出可达IPv4地址的域名或设备指定的Web服务器组的域名。想要使设备仅对指定的域名进行时,可以通过配置白名单域名实现;想要使设备仅拒绝代理指定域名,但可以代理其他域名时,可以通过配置黑名单域名实现。

2. 配置限制和指导

HTTP proxy的服务协议类型与Web服务器组的协议类型可以不同。

配置HTTP proxy的黑白名单域名时,存在如下限制:

·     配置同一个域名时,domain-name命令和denylist-domain-name命令互斥。

·     HTTP proxy服务中最多能同时存在512个黑名单域名和512个白名单域名。

·     不建议同时配置HTTP proxy的黑名单域名与白名单域名,其效果和单独配置白名单域名一致。

3. 配置准备

配置本功能前,请使用display tcp 命令来查看设备正在使用的TCP端口号,以免HTTP/HTTPS协议的端口号被其他特性占用。

修改HTTP proxy服务的参数前,需要先关闭HTTP proxy功能,完成修改后再次开启。

4. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建HTTP proxy服务,并进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     配置HTTP proxy服务代理的协议类型和侦听的端口号,以及关联的Web服务器组。

protocol-type { http | https } [ port port-number ] [ server-group group-name ]

缺省情况下,未配置HTTP proxy服务的代理协议类型、侦听的端口号以及关联的Web服务器组。

(4)     配置HTTP proxy服务的IPv6地址。

ipv6-address ipv6-address

缺省情况下,未配置HTTP proxy服务的IPv6地址。

(5)     (可选)配置DNS服务器的IPv4地址。

dns-server ip-address

缺省情况下,未配置DNS服务器的IPv4地址。

HTTP proxy未指定Web服务器组即采用DNS服务器解析域名进行代理时,本步骤必选。

(6)     配置HTTP proxy服务允许或拒绝代理的域名。请选择其中一项进行配置。

¡     配置HTTP proxy的黑名单域名。

denylist-domain-name denylist-domain-name

¡     配置HTTP proxy的白名单域名。

domain-name domain-name

缺省情况下,HTTP proxy未配置黑名单域名/白名单域名。

2.5  配置SSL证书相关文件

2.5.1  功能简介

可通过如下两种方式,配置设备代理HTTPS请求时所需的SSL证书相关文件:

·     配置不区分域名使用的SSL证书相关文件:使用同一对SSL证书文件和密钥文件来为所有HTTPS请求进行代理的域名提供身份验证。在配置Web服务器组后,建议使用本功能。

·     使用多对SSL证书文件和密钥文件来为指定的HTTPS请求进行代理的域名提供认证。当HTTP proxy使用DNS服务器解析IPv4地址进行代理时,建议使用本功能。

2.5.2  配置限制和指导

配置不区分域名使用的SSL证书相关文件和配置区分域名使用的SSL证书相关文件功能互斥。

同时代理多个域名的网站时,请配置区分域名使用的SSL证书相关文件,不建议配置不区分域名使用的SSL证书相关文件,否则用户只能与SSL证书文件所属的网站建立安全连接,即不能访问其他证书验证不通过的网站。

2.5.3  配置准备

配置不区分域名使用的SSL证书相关文件前,请首先通过FTP或TFTP协议将SSL证书文件和SSL证书密钥文件上传到设备;配置区分域名使用的SSL证书相关文件前,请首先确认SSL证书相关文件所在目录存在或者创建对应的文件夹,并通过FTP或TFTP协议将SSL证书文件和SSL证书密钥文件上传到指定的路径中。有关FTP和TFTP的详细介绍,请参见“基础配置指导”中的“FTP和TFTP”。

配置SSL证书相关文件前,需要先关闭HTTP proxy功能,完成修改后再次开启。

2.5.4  配置不区分域名使用的SSL证书相关文件

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     配置SSL证书文件。

ssl certificate file certificate-file [ encryption ]

缺省情况下,未配置SSL证书文件。

(4)     配置SSL证书密钥文件。

ssl certificate key-file key-file [ encryption ]

缺省情况下,未配置SSL证书密钥文件。

2.5.5  配置区分域名使用的SSL证书相关文件

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     配置SSL证书相关文件所在目录。

ssl certificate directory directory [ encryption ]

缺省情况下,未配置SSL证书相关文件所在目录。

(4)     配置HTTP proxy服务代理HTTPS域名所需的SSL证书文件及对应的密钥文件

ssl certificate domain-name domain-name file certificate-file key-file key-file

缺省情况下,未配置HTTP proxy服务代理HTTPS域名所需的SSL证书文件及对应的密钥文件。

2.6  配置外链代理功能

2.6.1  功能简介

对Web服务器上的外链进行代理时,可通过如下三种功能实现:

·     媒体资源外链代理功能:HTTP proxy可以对指定域名的Web服务器上所有媒体资源外链(图片、视频等)进行代理,使得IPv6主机可以正确获取到外链服务器中的这类媒体资源。

·     指定外链代理功能:设备可以为指定域名的Web服务器上指定的外链添加HTTP proxy服务的域名信息。实现对Web服务器上的外链进行代理,使得用户主机可以访问指定的外链资源。

·     无限跳转功能:设备可以为所有域名的Web服务器上包含的所有外链添加泛域名信息。IPv6用户可以通过本功能访问任意代理的Web服务器上的外链,而无需多次配置上述两个功能。若有特殊情况,可用exclude-external-domain命令指定不进行代理的域名。

表2-1 外链代理功能差异表

外链代理功能

代理外链所属的Web服务器范围

能否代理媒体资源外链

能否代理网页外链(指向外部网页的URL)

媒体资源外链代理功能

指定白名单域名的Web服务器

能代理所有媒体资源外链

指定外链代理功能

指定白名单域名的Web服务器

能代理指定外链指向的媒体资源

能代理指定的网页外链

无限跳转功能

所有允许代理的Web服务器

能代理所有媒体资源外链

能代理所有网页外链

 

用户通过代理服务器访问外链时,在某些情况下(如服务器不允许通过代理访问Web页面等),有可能存在访问外链Web页面异常或部分资源请求失败的情况。可通过以下两种功能,引导用户不通过HTTP服务进行外链代理,直接访问非本网站资源所属的服务器:

·     HTTP proxy服务的外链URL信息提示功能。开启此功能后,HTTP proxy服务将在Web页面上为用户提供外链的URL,其显示内容为“Error on page. Please visit URL XXX.”。

·     HTTP proxy服务的外链重定向功能。开启此功能后,HTTP proxy服务将引导用户客户端将外链服务器返回的错误资源重定向回外链服务器。

2.6.2  配置准备

配置外链代理的三类功能前,需要先关闭HTTP proxy功能,完成修改后再次开启。

2.6.3  配置媒体资源外链代理功能

1. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     配置使用白名单域名对媒体资源外链进行代理。

domain-name domain-name

缺省情况下,未配置HTTP proxy服务的白名单域名。

(4)     (可选)配置DNS服务器的IPv4地址。

dns-server ip-address

缺省情况下,未配置DNS服务器的IPv4地址。

HTTP proxy指定Web服务器组进行代理且未配置DNS服务器时,此步骤必选。

(5)     开启HTTP proxy服务的媒体资源外链代理功能。

medialink-proxy enable

缺省情况下,HTTP proxy服务的媒体资源外链代理功能处于关闭状态。

(6)     (可选)开启HTTP proxy服务的外链URL信息提示功能。

failed-extlink inform

缺省情况下,HTTP proxy服务的外链URL信息提示功能处于关闭状态。

(7)     (可选)配置HTTP proxy服务的外链重定向功能。

failed-extlink redirect error-code

缺省情况下,未配置HTTP proxy服务的外链重定向功能。

2.6.4  配置指定外链代理功能

1. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     配置使用白名单域名对指定外链进行代理。

domain-name domain-name

缺省情况下,未配置HTTP proxy服务的白名单域名。

(4)     (可选)配置DNS服务器的IPv4地址。

dns-server ip-address

缺省情况下,未配置DNS服务器的IPv4地址。

HTTP proxy指定Web服务器组进行代理且未配置DNS服务器时,此步骤必选。

(5)     配置需要HTTP proxy服务代理的外链。

hyperlink-proxy link-string

缺省情况下,未配置需要HTTP proxy服务代理的外链。

(6)     (可选)开启HTTP proxy服务的外链URL信息提示功能。

failed-extlink inform

缺省情况下,HTTP proxy服务的外链URL信息提示功能处于关闭状态。

(7)     (可选)配置HTTP proxy服务的外链重定向功能。

failed-extlink redirect error-code

缺省情况下,未配置HTTP proxy服务的外链重定向功能。

2.6.5  配置无限跳转功能

1. 配置限制和指导

要使HTTP proxy的无限跳转功能生效,必须配置HTTP proxy服务代理的泛域名。

如果同时配置了泛域名和白名单域名时,HTTP proxy使用泛域名来对Web页面中的外链域名进行拼接。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     配置HTTP proxy服务代理的泛域名。

wildcard-domain-name wildcard-domain-name

缺省情况下,HTTP proxy服务代理的泛域名为extlink.cn。

(4)     开启HTTP proxy服务的无限跳转功能。

extlink-href enable

缺省情况下,HTTP proxy服务的无限跳转功能未开启。

(5)     (可选)配置HTTP proxy不代理的外链域名。

exclude-external-domain domain-name

缺省情况下,未配置HTTP proxy不代理的外链域名。

(6)     (可选)开启HTTP proxy服务的外链URL信息提示功能。

failed-extlink inform

缺省情况下,HTTP proxy服务的外链URL信息提示功能处于关闭状态。

(7)     (可选)配置HTTP proxy服务的外链重定向功能。

failed-extlink redirect error-code

缺省情况下,未配置HTTP proxy服务的外链重定向功能。

2.7  配置HTTP proxy服务扩展功能

2.7.1  配置与服务器建立连接的源IP地址池

1. 功能简介

HTTP proxy连接Web服务器时,缺省使用路由出接口的IP地址作为报文的源IP地址转发报文。每个源地址最多可建立65535个TCP链接。当设备和Web服务器间需要建立大量TCP连接时,可以配置HTTP proxy服务连接Web服务器的源IP地址池。此时设备使用源地址池中的IP地址作为报文的源IP地址从路由出接口将报文转发出去,最多可建立“地址个数×65535”个TCP链接。

2. 配置限制和指导

同一HTTP proxy服务视图下最多可配置64个IP地址池,所有地址池中包含的地址不能重叠,且每个地址池中IP地址数量不能超过512。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     配置HTTP proxy连接Web服务器时使用的源IP地址池。

ip-pool start-address end-address [ vpn-instance vpn-instance-name ]

缺省情况下,未配置HTTP proxy连接Web服务器时使用的源IP地址池。

2.7.2  配置Web资源缓存功能

1. 功能简介

HTTP proxy可以将指定IPv4服务器上的Web页面资源缓存在本地,当IPv6用户再一次访问同一个Web页面时,设备直接从本地返回缓存的资源,减少了设备到Web服务器的访问流量,缓解了目的端服务器的压力,同时也提高了IPv6用户访问网站的响应速度,增强了用户体验。

2. 配置准备

配置HTTP proxy服务的Web资源缓存文件路径前,需要先关闭HTTP proxy功能,完成修改后再次开启。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     开启HTTP proxy服务的Web资源缓存功能,并指定缓存文件的路径。

cache-data directory directory

缺省情况下,HTTP proxy服务的Web资源缓存功能处于关闭状态,未配置缓存文件的路径。

2.7.3  配置关键字监控替换功能

1. 功能简介

HTTP proxy代理的Web页面中可能存在敏感信息,通过配置本功能可以对用户访问的内容进行监控,并且可以将监控的关键字替换为指定的字符,监控和替换的信息通过display http-proxy monitor-info命令查看。在指定了关键字来替换所监控的关键字后,HTTP proxy会将关键字替换成指定的字符返回给IPv6用户。

2. 配置准备

配置网站要监控或者替换的关键字前,需要先关闭HTTP proxy功能,完成修改后再次开启。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     指定HTTP proxy服务代理的网站要监控的关键字并进行替换。

keyword monitor keyword-string

缺省情况下,未指定HTTP proxy服务代理的网站要监控或替换的关键字。

2.7.4  配置Referer防盗链功能

1. 功能简介

HTTP proxy服务的Referer防盗链功能能够阻止某些非法用户通过HTTP proxy服务来访问并盗取服务代理的网站资源。开启HTTP proxy服务的Referer防盗链功能后,HTTP proxy会拒接用户Referer字段与设置的白名单域名不匹配的HTTP/HTTPS请求,以防止HTTP proxy服务代理的网站上的资源被盗用,适合HTTP proxy服务代理的网站上有较多资源地址时开启。

2. 配置准备

配置HTTP proxy 服务的Referer防盗链功能前,需要先关闭HTTP proxy功能,完成修改后再次开启。

要使防盗链功能生效,设备必须先通过domain-name命令配置了HTTP proxy服务代理的白名单域名。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     开启HTTP proxy 服务的Referer防盗链功能。

referer-protection enable

缺省情况下,HTTP proxy 服务的Referer防盗链功能未开启。

2.7.5  配置防SQL、XSS注入功能

1. 功能简介

HTTP proxy服务的防SQL、XSS注入功能能够阻止用户把恶意的SQL或XSS语句插入到Web页面请求中,增强了网络的安全性和稳定性。

2. 配置准备

配置HTTP proxy服务的防SQL、XSS注入功能前,需要先关闭HTTP proxy功能,完成修改后再次开启。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     开启HTTP proxy服务的防SQL、XSS注入功能。

url-protection enable

缺省情况下,HTTP proxy服务的防SQL和XSS注入功能未开启。

2.8  配置代理信息记录功能

1. 功能简介

通过配置本功能,HTTP proxy服务的代理信息会按照时间顺序记录在指定路径的文件中。可以通过more命令来显示文本文件的内容,有关more的详细介绍,请参见“基础配置命令参考”中“文件系统管理”。

配置了本功能后,HTTP proxy会在指定的信息记录文件同一路径下创建一个其主文件名加“_history”后缀的目录,用以存放历史信息记录。例如:HTTP proxy指定的信息记录文件为flash:/httpproxy/record.log时,会自动在flash:/httpproxy/下创建一个名为record_history的文件夹,当record.log文件大小达到限度时(缺省为10MB),HTTP proxy会在flash:/httpproxy/record_history/下创建一个名为record_YYYYMMDDhhmm.log的文件(其中YYYY表示年,MM表示月,DD表示日,hh和mm分别表示时和分),并将record.log的记录内容转移至flash:/httpproxy/record_history/下创建的文件中,清空自身记录内容,以记录新的代理信息。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建HTTP proxy服务,并进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     开启代理信息记录功能,并指定记录文件路径。

access-record enable file-path path [ gzip ]

HTTP proxy服务的代理信息记录功能处于关闭状态。

(4)     (可选)配置HTTP proxy服务的代理信息记录文件空间总大小和单个代理信息记录文件大小。

access-record max-size max-zone-size single-file-size single-file-size

缺省情况下,HTTP proxy服务的单个代理信息记录文件大小为10MB,代理信息记录文件空间总大小为4GB。

2.9  开启HTTP proxy功能

1. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     开启HTTP proxy服务。

service enable

缺省情况下,HTTP proxy服务处于关闭状态。

2.10  HTTP proxy服务视图配置代理的显示和维护

完成上述配置后,在任意视图下执行display命令可以显示配置后HTTP proxy的运行情况,通过查看显示信息验证配置的效果。

表2-2 HTTP proxy显示和维护

操作

命令

显示HTTP proxy服务视图的配置信息

display http-proxy { server-group [ group-name ] | service [ service-name ] }

显示HTTP proxy的监控字信息

display http-proxy monitor-info service service-name [ keyword monitor-string ]

显示HTTP proxy服务的统计信息

display http-proxy statistics service service-name

 

2.11  通过HTTP proxy服务视图配置代理举例(独立运行模式)

2.11.1  HTTP proxy服务指定Web服务器组代理HTTP协议配置举例

1. 组网需求

图2-1所示,设备对IPv6主机提供HTTP代理服务,代理IPv6主机对IPv4 Web服务器Server A和Server B的访问。同时,通过文件记录HTTP proxy服务的代理信息。

·     HTTP proxy服务的域名为test.example.cn,HTTP proxy服务的IPv6地址为2001::1/64。

·     用户访问的Web页面上存在外链www.example.org,以及媒体资源外链。

·     域名服务器DNS server的IP地址为8.8.8.8。

2. 组网图

图2-1 配置HTTP proxy服务代理HTTP协议组网图

 

3. 配置准备

请按照图2-1配置各接口的IP地址和子网掩码,具体配置过程略。

请确保HTTP proxy服务的域名test.example.cn可以被解析为IPv6地址2001::1/64。

4. 配置步骤

(1)     配置HTTP proxy的Web服务器组。

# 创建名称为httpback的Web服务器组,并进入Web服务器组视图。

<Device> system-view

[Device] http-proxy server-group httpback

# 配置Web服务器组中Web服务器的IP地址为192.168.1.1和192.168.1.2,端口号为80。

[Device-http-proxy-server-group-httpback] ip-address 192.168.1.1 port 80

[Device-http-proxy-server-group-httpback] ip-address 192.168.1.2 port 80

# 配置Web服务器组使用HTTP协议作为服务协议类型。

[Device-http-proxy-server-group-httpback] protocol-type http

[Device-http-proxy-server-group-httpback] quit

(2)     开启设备的DNS proxy功能。

[Device] dns proxy enable

(3)     配置HTTP proxy参数。

# 创建HTTP proxy服务proxyservice,并进入该HTTP proxy服务视图。

[Device] http-proxy service proxyservice slot 1

# 配置HTTP proxy服务使用HTTP协议作为服务类型,并关联Web服务器组httpback。

[Device-http-proxy-service-proxyservice-slot1] protocol-type http server-group httpback

# 配置DNS服务器的IPv4地址为8.8.8.8。

[Device-http-proxy-service-proxyservice-slot1] dns-server 8.8.8.8

# 配置HTTP proxy服务的域名为test.example.cn。

[Device-http-proxy-service-proxyservice-slot1] domain-name test.example.cn

# 配置HTTP proxy服务的IPv6地址为2001::1。

[Device-http-proxy-service-proxyservice-slot1] ipv6-address 2001::1

# 开启HTTP proxy服务的媒体资源外链代理功能。

[Device-http-proxy-service-proxyservice-slot1] medialink-proxy enable

# 配置需要HTTP proxy服务代理的外链为www.example.org。

[Device-http-proxy-service-proxyservice-slot1] hyperlink-proxy www.example.org

# 开启HTTP proxy服务的代理信息记录功能。

[Device-http-proxy-service-proxyservice-slot1] access-record enable record-path slot1#flash:/httpproxy/20191010.log

(4)     开启HTTP proxy功能。

[Device-http-proxy-service-proxyservice-slot1] service enable

[Device-http-proxy-service-proxyservice-slot1] quit

[Device] quit

5. 验证配置

# 查看HTTP proxy服务的服务器组配置信息。

<Device> display http-proxy server-group

Server group name: httpback

  Protocol type:        HTTP

  Server IP addresses:  192.168.1.1:80

                        192.168.1.2:80

以上信息表明Web服务器组httpback已正确配置了服务类型和Web服务器的IPv4地址和端口。

# 显示HTTP proxy服务的配置信息。

<Device> display http-proxy service proxyservice

Service name: proxyservice

  IPv6 address:                    2001::1

  Allowlist domain names:          test.example.cn

  Protocol types:                  HTTP  [Server group: httpback]

  SSL certificate directory:       N/A

  Domain name:                     N/A

    SSL certificate file:          N/A

    SSL key files:                 N/A

  Hyperlink proxy strings:         www.example.org

  Failed extlink error codes:      N/A

  DNS servers:                     8.8.8.8

  Denylist domain names:           N/A

  Monitored keyword:               N/A

    Replaced by                    N/A

  Excluded external domain name:   N/A

  Include Server:                  N/A

  IP pools:                        N/A

  Wildcard domain name:            extlink.cn

  URL protection:                  Disabled

  Referer protection:              Disabled

  Extlink href:                    Disabled

  Medialink proxy:                 Enabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

  HTTP proxy operation recording:  Enabled

    Operation record file path:    slot1#flash:/httpproxy/20191010.log

    Max zone size                  4096MB

    Single file size               10MB

  Extlink encryption algorithm:    N/A

  HTTP proxy status:               Enabled

以上显示信息表示HTTP proxy服务的参数已经正确配置,并且服务处于开启状态。

# 主机访问代理网站后,在设备上代理信息日志文件中查看HTTP proxy服务的代理信息。

<Device> more slot1#flash:/httpproxy/20191010.log

[03/Dec/2019:16:11:35 +0800]  Client=2001::4  URL=http://test.example.cn/desert.jpg  Server=192.168.1.1:80

[03/Dec/2019:16:11:35 +0800]  Client=2001::4  URL=http://test.example.cn/config.js  Server=192.168.1.1:80

[03/Dec/2019:16:11:36 +0800]  Client=2001::4  URL=http://test.example.cn/config.js  Server=192.168.1.2:80

[03/Dec/2019:16:11:36 +0800]  Client=2001::4  URL=http://test.example.cn/desert.jpg  Server=192.168.1.2:80

主机能够正常访问代理网站,且服务代理信息记录正确,说明HTTP proxy服务生效。对相同URL的访问请求,被分配到不同的服务器上去处理,说明服务器组的成员之间进行了负载分担。

2.11.2  HTTP proxy通过DNS解析代理HTTP协议配置举例

1. 组网需求

图2-2所示,设备对IPv6主机提供HTTP代理服务,代理IPv6主机对不同域名的IPv4 Web服务器Server A、Server B和Server C的访问:

·     设备通过配置IP地址池提升与Web服务器的可建立连接数。

·     设备拒绝IPv6主机对Server C的访问,只代理IPv6主机对Server A和Server B的访问。

·     设备监控Web服务器上存在的敏感关键字“abc”,并替换为字符串“aaa”返回给主机。

·     用户能够访问所有代理的Web页面上的外链资源。

·     设备通过文件记录HTTP proxy服务的代理信息。

·     Server A的域名为testa.example.cn,提供Web服务的端口为8001;Server B的域名为testb.example.cn,提供Web服务的端口为8002;Server C的域名为testc.example.cn,提供Web服务的端口为8003。

2. 组网图

图2-2 配置HTTP proxy服务代理HTTP协议组网图

 

3. 配置准备

请按照图2-2配置各接口的IP地址和子网掩码,具体配置过程略。

请确保HTTP proxy代理的域名testa.example.cn、testb.example.cn和testc.example.cn在主机端可以被解析为IPv6地址2001::1/64,亦可以通过DNS服务器被解析为设备可达的IPv4地址。

请确保泛域名example.cn在主机端可以被解析为IPv6地址2001::1/64。

4. 配置步骤

(1)     开启设备的DNS proxy功能。

<Device> system-view

[Device] dns proxy enable

(2)     配置HTTP proxy参数。

# 创建HTTP proxy服务proxyservice,并进入该HTTP proxy服务视图。

[Device] http-proxy service proxyservice slot 1

# 配置HTTP proxy服务使用HTTP协议作为服务类型,侦听Server A的端口号8001、Server B的端口号8002及 Server C的端口号8003。

[Device-http-proxy-service-proxyservice-slot1] protocol-type http port 8001

[Device-http-proxy-service-proxyservice-slot1] protocol-type http port 8002

[Device-http-proxy-service-proxyservice-slot1] protocol-type http port 8003

# 配置HTTP proxy服务的IPv6地址为2001::1。

[Device-http-proxy-service-proxyservice-slot1] ipv6-address 2001::1

# 配置DNS服务器的IPv4地址为8.8.8.8。

[Device-http-proxy-service-proxyservice-slot1] dns-server 8.8.8.8

# 配置HTTP proxy的黑名单域名testc.example.cn。

[Device-http-proxy-service-proxyservice-slot1] denylist-domain-name testc.example.cn

# 配置HTTP proxy的泛域名为example.cn。

[Device-http-proxy-service-proxyservice-slot1] wildcard-domain-name example.cn

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-service-proxyservice-slot1] extlink-href enable

# 配置连接Web服务器使用的源IP地址池,IP地址范围为192.168.1.10到192.168.1.20。

[Device-http-proxy-service-proxyservice-slot1] ip-pool 192.168.1.10 192.168.1.20

# 配置HTTP proxy监控的关键字为abc,并将关键字替换为aaa。

[Device-http-proxy-service-proxyservice-slot1] keyword monitor abc aaa

# 开启HTTP proxy服务的代理信息记录功能。

[Device-http-proxy-service-proxyservice-slot1] access-record enable file-path slot1#flash:/httpproxy/20200828.log

(3)     开启HTTP proxy功能。

[Device-http-proxy-service-proxyservice-slot1] service enable

[Device-http-proxy-service-proxyservice-slot1] quit

[Device] quit

5. 验证配置

# 显示HTTP proxy服务的配置信息。

<Device> display http-proxy service proxyservice

Service name: proxyservice

  IPv6 address:                    2001::1

  Allowlist domain names:          N/A

  Protocol types:                  HTTP at port 8001

                                   HTTP at port 8002

                                   HTTP at port 8003

  SSL certificate directory:       N/A

  Domain name:                     N/A

    SSL certificate file:          N/A

    SSL key files:                 N/A

  Hyperlink proxy strings:         N/A

  Failed extlink error codes:      N/A

  DNS servers:                     8.8.8.8

  Denylist domain names:           testc.example.cn

  Monitored keyword:               abc

    Replaced by                    aaa

  Excluded external domain name:   N/A

  Include Server:                  N/A

  IP pools:                        192.168.1.10 to 192.168.1.20

  Wildcard domain name:            example.cn

  URL protection:                  Disabled

  Referer protection:              Disabled

  Extlink href:                    Enabled

  Medialink proxy:                 Disabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

  HTTP proxy operation recording:  Enabled

    Operation record file path:    slot1#flash:/httpproxy/20200828.log

    Max zone size                  4096MB

    Single file size               10MB

  Extlink encryption algorithm:    N/A

  HTTP proxy status:               Enabled

以上显示信息表示HTTP proxy服务的参数已经正确配置,并且服务处于开启状态。

# 主机访问代理网站后,在设备上代理信息日志文件中查看HTTP proxy服务的代理信息。

<Device> more slot1#flash:/httpproxy/20200828.log

[28/Aug/2020:16:11:35 +0800]  Client=2001::4  URL=http://testa.example.cn/desert.jpg  Server=192.168.1.101:8001

[28/Aug/2020:16:11:35 +0800]  Client=2001::4  URL=http://testa.example.cn/config.js  Server=192.168.1.101:8001

[28/Aug/2020:16:11:36 +0800]  Client=2001::4  URL=http://testb.example.cn/config.js  Server=192.168.1.102:8002

[28/Aug/2020:16:11:36 +0800]  Client=2001::4  URL=http://testb.example.cn/desert.jpg  Server=192.168.1.102:8002

主机能够正常访问代理网站,且服务代理信息记录正确,说明HTTP proxy服务生效。HTTP proxy的黑名单域名生效,设备不会记录Server C的代理信息,所以代理信息记录文件中无代理Server C的相关信息。

2.11.3  HTTP proxy服务指定Web服务器组代理HTTPS协议配置举例

1. 组网需求

图2-3所示,设备对IPv6主机提供HTTPS代理服务,代理IPv6主机对IPv4 Web服务器Server A和Server B的访问。同时,通过文件记录HTTP proxy服务的代理信息。

·     HTTP proxy服务的域名为test.example.cn,HTTP proxy服务的IPv6地址为2001::1/64。

·     用户访问的Web页面上存在外链www.example.org,以及媒体资源外链。

·     域名服务器DNS server的IP地址为8.8.8.8。

2. 组网图

图2-3 配置HTTP proxy服务代理HTTPS协议组网图

 

3. 配置准备

请按照图2-3置各接口的IP地址和子网掩码,具体配置过程略。

请确保HTTP proxy服务的域名test.example.cn可以被解析为IPv6地址2001::1/64。

4. 配置步骤

(1)     通过FTP或TFTP将httpproxy.key和httpproxy.pem文件加载到SSL证书文件路径和SSL证书文件路径。有关FTP和TFTP的详细介绍,请参见“基础配置指导”中的“FTP和TFTP”。

<Device> tftp 2001::1 get httpproxy.key slot1#flash:/cert.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxy.pem slot1#flash:/cert.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

(2)     配置HTTP proxy的Web服务器组。

# 创建名称为httpsback的Web服务器组,并进入该视图。

<Device> system-view

[Device] http-proxy server-group httpsback

# 配置Web服务器组中Web服务器的IP地址为192.168.1.1和192.168.1.2,端口号为443。

[Device-http-proxy-server-group-httpsback] ip-address 192.168.1.1 port 443

[Device-http-proxy-server-group-httpsback] ip-address 192.168.1.2 port 443

# 配置Web服务器组使用HTTPS协议作为服务协议类型。

[Device-http-proxy-server-group-httpsback] protocol-type https

[Device-http-proxy-server-group-httpsback] quit

(3)     开启设备的DNS proxy功能。

[Device] dns proxy enable

(4)     配置HTTP proxy参数。

# 创建HTTP proxy服务proxyservice,并进入该HTTP proxy服务视图。

[Device] http-proxy service proxyservice slot 1

# 配置HTTP proxy服务使用HTTPS协议作为服务类型并关联Web服务器组httpsback。

[Device-http-proxy-service-proxyservice-slot1] protocol-type https server-group httpsback

# 配置SSL证书文件slot1#flash:/cert.pem。

[Device-http-proxy-service-proxyservice-slot1] ssl certificate file slot1#flash:/cert.pem

# 配置SSL密钥文件slot1#flash:/cert.key。

[Device-http-proxy-service-proxyservice-slot1] ssl certificate key-file slot1#flash:/cert.key

# 配置DNS服务器的IPv4地址为8.8.8.8。

[Device-http-proxy-service-proxyservice-slot1] dns-server 8.8.8.8

# 配置HTTP proxy服务的域名为test.example.cn。

[Device-http-proxy-service-proxyservice-slot1] domain-name test.example.cn

# 配置HTTP proxy服务的IPv6地址为2001::1。

[Device-http-proxy-service-proxyservice-slot1] ipv6-address 2001::1

# 开启HTTP proxy服务的媒体资源外链代理功能。

[Device-http-proxy-service-proxyservice-slot1] medialink-proxy enable

# 配置需要HTTP proxy服务代理的外链为www.example.org。

[Device-http-proxy-service-proxyservice-slot1] hyperlink-proxy www.example.org

# 开启HTTP proxy服务的代理信息记录功能。

[Device-http-proxy-service-proxyservice-slot1] access-record enable file-path slot1#flash:/httpproxy/20191010.log

(5)     开启HTTP proxy功能。

[Device-http-proxy-service-proxyservice-slot1] service enable

[Device-http-proxy-service-proxyservice-slot1] quit

[Device] quit

5. 验证配置

# 查看HTTP proxy服务的服务器组配置信息。

<Device> display http-proxy server-group

Server group name: httpsback

  Protocol type:        HTTPS

  Server IP addresses:  192.168.1.1:443

                        192.168.1.2:443

以上信息表明Web服务器组httpsback已正确配置了服务类型和Web服务器的IPv4地址和端口。

# 显示HTTP proxy服务的配置信息。

<Device> display http-proxy service proxyservice

Service name: proxyservice

  IPv6 address:                    2001::1

  Allowlist domain names:          test.example.cn

  Protocol types:                  HTTPS  [Server group: httpsback]

  SSL certificate file:            slot1#flash:/cert.pem

  SSL certificate key-file:        slot1#flash:/cert.key

  Hyperlink proxy strings:         www.example.org

  Failed extlink error codes:      N/A

  DNS servers:                     8.8.8.8

  Denylist domain names:           N/A

  Monitored keyword:               N/A

    Replaced by                    N/A

  Excluded external domain name:   N/A

  Include Server:                  N/A

  IP pools:                        N/A

  Wildcard domain name:            extlink.cn

  URL protection:                  Disabled

  Referer protection:              Disabled

  Extlink href:                    Disabled

  Medialink proxy:                 Enabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

  HTTP proxy operation recording:  Enabled

    Operation record file path:    slot1#flash:/httpproxy/20191010.log

    Max zone size                  4096MB

    Single file size               10MB

  Extlink encryption algorithm:    N/A

  HTTP proxy status:               Enabled

以上显示信息表示HTTP proxy服务的参数已经正确配置,并且服务处于开启状态。

# 主机访问代理网站后,在设备上代理信息日志文件中查看HTTP proxy服务的代理信息。

<Device> more slot1#flash:/httpproxy/20191010.log

[03/Dec/2019:16:11:35 +0800]  Client=2001::4  URL=https://test.example.cn/sert.jpg  Server=192.168.1.1:443

[03/Dec/2019:16:11:35 +0800]  Client=2001::4  URL=https://test.example.cn/config.js  Server=192.168.1.1:443

[03/Dec/2019:16:11:36 +0800]  Client=2001::4  URL=https://test.example.cn/config.js  Server=192.168.1.2:443

[03/Dec/2019:16:11:36 +0800]  Client=2001::4  URL=https://test.example.cn/sert.jpg  Server=192.168.1.2:443

主机能够正常访问代理网站,且服务代理信息记录正确,说明HTTP proxy服务生效。对相同URL的访问请求,被分配到不同的服务器上去处理,说明服务器组的成员之间进行了负载分担。

2.11.4  HTTP proxy通过DNS解析代理HTTPS协议配置举例

1. 组网需求

图2-4所示,设备对IPv6主机提供HTTPS代理服务,代理IPv6主机对不同域名的IPv4 Web服务器Server A、Server B和Server C的访问:

·     设备通过配置IP地址池提升与Web服务器的可建立连接数。

·     设备拒绝IPv6主机对Server C的访问,只代理IPv6主机对Server A和Server B的访问。

·     设备监控Web服务器上存在的敏感关键字“abc”,并替换为字符串“aaa”返回给主机。

·     用户能够访问所有代理的Web页面上的外链。

·     设备通过文件记录HTTP proxy服务的代理信息。

·     Server A的域名为testa.example.cn,提供Web服务的端口为8001;Server B的域名为testb.example.cn,提供Web服务的端口为8002;Server C的域名为testc.example.cn,提供Web服务的端口为8003。

2. 组网图

图2-4 配置HTTP proxy服务代理HTTPS协议组网图

 

3. 配置准备

请按照图2-4配置各接口的IP地址和子网掩码,具体配置过程略。

请确保HTTP proxy代理的域名testa.example.cn、testb.example.cn和testc.example.cn在主机端可以被解析为IPv6地址2001::1/64,亦可以通过DNS服务器被解析为设备可达的IPv4地址。

请确保泛域名example.cn在主机端可以被解析为IPv6地址2001::1/64。

4. 配置步骤

(1)     通过FTP或TFTP将服务器Server A、Server B和Server C的证书相关文件加载到HTTP proxy的SSL证书相关文件指定路径下。有关FTP和TFTP的详细介绍,请参见“基础配置指导”中的“FTP和TFTP”。

<Device> tftp 2001::1 get httpproxya.key slot1#flash:/certa.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxya.pem slot1#flash:/certa.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyb.key slot1#flash:/certb.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyb.pem slot1#flash:/certb.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyc.key slot1#flash:/certc.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyc.pem slot1#flash:/certc.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

(2)     开启设备的DNS proxy功能。

<Device> system-view

[Device] dns proxy enable

(3)     配置HTTP proxy参数。

# 创建HTTP proxy服务proxyservice,并进入该HTTP proxy服务视图。

[Device] http-proxy service proxyservice slot 1

# 配置HTTP proxy服务使用HTTPS协议作为服务类型,侦听Server A的端口号8001、Server B的端口号8002及Server C的端口号8003。

[Device-http-proxy-service-proxyservice-slot1] protocol-type https port 8001

[Device-http-proxy-service-proxyservice-slot1] protocol-type https port 8002

[Device-http-proxy-service-proxyservice-slot1] protocol-type https port 8003

# 配置SSL证书相关文件所在路径。

[Device-http-proxy-service-proxyservice-slot1] ssl certificate directory slot1#flash:/

# 配置Server A的证书文件certa.pem及密钥文件certa.key,配置Server B的证书文件certb.pem及密钥文件certb.key,配置Server C的证书文件certc.pem及密钥文件certc.key。

[Device-http-proxy-service-proxyservice-slot1] ssl certificate domain-name testa.example.cn file certa.pem key-file certa.key

[Device-http-proxy-service-proxyservice-slot1] ssl certificate domain-name testb.example.cn file certb.pem key-file certb.key

[Device-http-proxy-service-proxyservice-slot1] ssl certificate domain-name testc.example.cn file certc.pem key-file certc.key

# 配置HTTP proxy服务的IPv6地址为2001::1。

[Device-http-proxy-service-proxyservice-slot1] ipv6-address 2001::1

# 配置DNS服务器的IPv4地址为8.8.8.8。

[Device-http-proxy-service-proxyservice-slot1] dns-server 8.8.8.8

# 配置HTTP proxy的黑名单域名testc.example.cn。

[Device-http-proxy-service-proxyservice-slot1] denylist-domain-name testc.example.cn

# 配置HTTP proxy的泛域名为example.cn。

[Device-http-proxy-service-proxyservice-slot1] wildcard-domain-name example.cn

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-service-proxyservice-slot1] extlink-href enable

# 配置连接Web服务器使用的源IP地址池,IP地址范围为192.168.1.10到192.168.1.20。

[Device-http-proxy-service-proxyservice-slot1] ip-pool 192.168.1.10 192.168.1.20

# 配置HTTP proxy监控的关键字为abc,并将关键字替换为aaa。

[Device-http-proxy-service-proxyservice-slot1] keyword monitor abc aaa

# 开启HTTP proxy服务的代理信息记录功能。

[Device-http-proxy-service-proxyservice-slot1] access-record enable file-path slot1#flash:/httpproxy/20200828.log

(4)     开启HTTP proxy功能。

[Device-http-proxy-service-proxyservice-slot1] service enable

[Device-http-proxy-service-proxyservice-slot1] quit

[Device] quit

5. 验证配置

# 显示HTTP proxy服务的配置信息。

<Device> display http-proxy service proxyservice

Service name: proxyservice

  IPv6 address:                    2001::1

  Allowlist domain names:          N/A

  Protocol types:                  HTTPS at port 8001

                                   HTTPS at port 8002

                                   HTTPS at port 8003

  SSL certificate directory:       slot1#flash:/

  Domain name:                     testa.example.cn

    SSL certificate file:          certa.pem

    SSL key files:                 certa.key

  Domain name:                     testb.example.cn

    SSL certificate file:          certb.pem

    SSL key files:                 certb.key

  Domain name:                     testc.example.cn

    SSL certificate file:          certc.pem

    SSL key files:                 certc.key

  Hyperlink proxy strings:         N/A

  Failed extlink error codes:      N/A

  DNS servers:                     8.8.8.8

  Denylist domain names:           testc.example.cn

  Monitored keyword:               abc

    Replaced by                    aaa

  Excluded external domain name:   N/A

  Include Server:                  N/A

  IP pools:                        192.168.1.10 to 192.168.1.20

  Wildcard domain name:            example.cn

  URL protection:                  Disabled

  Referer protection:              Disabled

  Extlink href:                    Enabled

  Medialink proxy:                 Disabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

  HTTP proxy operation recording:  Enabled

    Operation record file path:    slot1#flash:/httpproxy/20200828.log

    Max zone size                  4096MB

    Single file size               10MB

  Extlink encryption algorithm:    N/A

  HTTP proxy status:               Enabled

以上显示信息表示HTTP proxy服务的参数已经正确配置,并且服务处于开启状态。

# 主机访问代理网站后,在设备上代理信息日志文件中查看HTTP proxy服务的代理信息。

<Device> more slot1#flash:/httpproxy/20200828.log

[28/Aug/2020:16:11:35 +0800]  Client=2001::4  URL=https://testa.example.cn/desert.jpg  Server=192.168.1.101:8001

[28/Aug/2020:16:11:35 +0800]  Client=2001::4  URL=https://testa.example.cn/config.js  Server=192.168.1.101:8001

[28/Aug/2020:16:11:36 +0800]  Client=2001::4  URL=https://testb.example.cn/config.js  Server=192.168.1.102:8002

[28/Aug/2020:16:11:36 +0800]  Client=2001::4  URL=https://testb.example.cn/desert.jpg  Server=192.168.1.102:8002

主机能够正常访问代理网站,且服务代理信息记录正确,说明HTTP proxy服务生效。HTTP proxy的黑名单域名生效,设备不会记录Server C的代理信息,所以代理信息记录文件中无代理Server C的相关信息。


3 通过HTTP proxy server视图配置代理

3.1  通过HTTP proxy server视图配置代理配置限制和指导

在使用HTTP proxy服务提供代理功能时,请确保HTTP proxy服务的上下行流量属于同一个slot(即设备与IPv6用户通信的接口和设备与Web服务器通信的接口属于同一个slot),否则HTTP proxy服务无法代理所需的Web资源。

在HTTP proxy server视图下配置代理相关的功能时,请先保证当前的视图未被引用,在所有的代理配置完成后,再引用当前视图并开启HTTP proxy服务。

设备需要通过DNS服务器解析域名时,必须执行dns proxy enable命令来开启DNS proxy功能,否则无法通过DNS服务器解析出需要HTTP proxy服务代理的域名对应的IP地址。有关dns proxy enable命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“域名解析”。

3.2  通过HTTP proxy server视图配置代理配置任务简介

HTTP proxy的配置任务如下:

(1)     创建HTTP proxy server视图

(2)     在HTTP proxy server视图下配置代理的相关参数

(3)     配置SSL证书相关文件

本配置仅在代理HTTPS协议的Web服务时必选,在代理HTTP协议的Web服务时可以配置但不会生效。

(4)     (可选)配置外链代理功能

(5)     (可选)在HTTP proxy server视图下配置代理的扩展功能

¡     配置Web资源缓存功能

¡     配置关键字监控替换功能

¡     配置HTTP proxy server视图下的Referer防盗链功能

¡     配置防SQL、XSS注入功能

¡     删除HTTP/HTTPS响应头中的Set-Cookie消息选项

¡     开启QueryString还原功能

¡     配置HTTP/HTTPS响应头改造以及请求头还原功能

¡     配置允许替换的重定向URL域名

(6)     引用HTTP proxy server视图

(7)     (可选)开启HTTP proxy服务的泛域名加密功能

(8)     (可选)配置代理信息记录功能

(9)     开启HTTP proxy功能

3.3  创建HTTP proxy server视图

1. 配置限制和指导

在设备上可以创建多个HTTP proxy server视图,多个视图下可以配置不同的代理参数,来代理不同的Web服务器的资源,HTTP proxy server视图被引用后,该视图下的配置才能生效。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建HTTP proxy server视图,并进入该视图。

http-proxy server server-name

缺省情况下,不存在HTTP proxy server视图。

3.4  在HTTP proxy server视图下配置代理的相关参数

1. 功能简介

HTTP proxy服务指定服务监听的TCP端口号,并且设定用于代理的IPv6地址,代理发往该IPv6地址、使用指定TCP端口号的HTTP/HTTPS请求。如果HTTP proxy服务需要对用户的HTTPS请求进行代理,则还需要提供SSL证书文件和SSL证书密钥文件来与IPv6客户端建立安全的连接。

配置domain-name命令后,其指定的域名的Web服务器即为设备使用HTTP proxy server视图下的配置进行Web资源代理的范围。

2. 配置限制和指导

同一个HTTP proxy server地址族视图下最多配置512个白名单域名。

本配置中涉及代理参数的配置命令,只允许在HTTP proxy server视图下配置,不允许在HTTP proxy服务视图下配置。

3. 配置准备

配置本功能前,请使用display tcp 命令来查看设备正在使用的TCP端口号,以免HTTP/HTTPS协议的端口号被其他特性占用。

在HTTP proxy服务视图下配置DNS服务器的IPv4地址,具体配置步骤请参见“2.4  配置HTTP proxy服务的基本功能

4. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     配置HTTP proxy服务代理的协议类型和侦听的端口号。

protocol-type { http | https } [ port port-number ]

缺省情况下,未配置HTTP proxy服务的代理协议类型以及侦听的端口号。

(4)     配置HTTP proxy服务的IPv6地址。

ipv6-address ipv6-address

缺省情况下,未配置HTTP proxy服务的IPv6地址。

(5)     配置HTTP proxy服务代理的白名单域名。

domain-name domain-name

缺省情况下,未配置HTTP proxy服务代理的白名单域名。

3.5  配置SSL证书相关文件

通过HTTP proxy server视图配置代理HTTPS请求时,关于SSL证书相关文件,HTTP proxy server视图复用HTTP proxy服务视图的配置。具体的配置步骤请参见“2.5  配置SSL证书相关文件”。

3.6  配置外链代理功能

3.6.1  功能简介

通过HTTP proxy server视图配置代理时,可通过以下两种方式对外链进行代理:

·     无限跳转功能:设备可以为所有域名的Web服务器上包含的所有外链添加泛域名信息。IPv6用户可以通过本功能访问任意代理的Web服务器上的外链。若有特殊情况,可用exclude-external-domain命令指定不进行代理的域名。

·     指定外链代理功能:设备为指定域名的Web服务器上包含的所有外链添加泛域名信息。IPv6用户可以通过本功能访问指定域名的Web服务器上的外链。

表3-1 外链代理功能差异表

外链代理功能

代理外链所属的Web服务器范围

能否代理媒体资源外链

能否代理网页外链(指向外部网页的URL)

指定外链代理功能

指定外链代理域名的Web服务器

能代理指定外链指向的媒体资源

能代理指定的网页外链

无限跳转功能

所有允许代理的Web服务器

能代理所有媒体资源外链

能代理所有网页外链

 

用户通过代理服务器访问外链时,在某些情况下(如服务器不允许通过代理访问Web页面等),有可能存在访问外链Web页面异常或部分资源请求失败的情况。可通过以下两种功能,引导用户不通过HTTP服务进行外链代理,直接访问非本网站资源所属的服务器:

·     HTTP proxy服务的外链URL信息提示功能。开启此功能后,HTTP proxy服务将在Web页面上为用户提供外链的URL,其显示内容为“Error on page. Please visit URL XXX.”。

·     HTTP proxy服务的外链重定向功能。开启此功能后,HTTP proxy服务将引导用户客户端将外链服务器返回的错误资源重定向回外链服务器。

3.6.2  配置限制和指导

在本配置中,除了exclude-external-domain命令外,其余的命令只允许在HTTP proxy server视图下配置,不允许在HTTP proxy服务视图下配置。

HTTP proxy服务视图下配置的媒体资源外链代理功能以及指定外链代理功能,对于通过HTTP proxy server视图配置的代理不生效。

3.6.3  配置准备

在HTTP proxy服务视图下配置HTTP proxy服务代理的泛域名。具体的配置步骤请参见“2.6.5  配置无限跳转功能”。

3.6.4  配置无限跳转功能

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     开启HTTP proxy服务的无限跳转功能。

extlink-href enable

缺省情况下,HTTP proxy服务的无限跳转功能未开启。

(4)     (可选)配置HTTP proxy不代理的外链域名。

exclude-external-domain domain-name

缺省情况下,未配置HTTP proxy不代理的外链域名。

(5)     (可选)开启HTTP proxy服务的外链URL信息提示功能。

failed-extlink inform

缺省情况下,HTTP proxy服务的外链URL信息提示功能处于关闭状态。

(6)     (可选)配置HTTP proxy服务的外链重定向功能。

failed-extlink redirect error-code

缺省情况下,未配置HTTP proxy服务的外链重定向功能。

3.6.5  配置指定外链代理功能

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     配置HTTP proxy server视图下外链代理的域名。

include-external-domain domain-name

缺省情况下,未配置server视图下外链代理的域名。

(4)     (可选)开启HTTP proxy服务的外链URL信息提示功能。

failed-extlink inform

缺省情况下,HTTP proxy服务的外链URL信息提示功能处于关闭状态。

(5)     (可选)配置HTTP proxy服务的外链重定向功能。

failed-extlink redirect error-code

缺省情况下,未配置HTTP proxy服务的外链重定向功能。

3.7  在HTTP proxy server视图下配置代理的扩展功能

3.7.1  配置与服务器建立连接的源IP地址池

通过HTTP proxy server视图配置代理时,本功能复用HTTP proxy服务视图下的配置,具体的配置步骤请参见“2.7.1  配置与服务器建立连接的源IP地址池”。

3.7.2  配置Web资源缓存功能

1. 功能简介

HTTP proxy可以将指定IPv4服务器上的Web页面资源缓存在本地,当IPv6用户再一次访问同一个Web页面时,设备直接从本地返回缓存的资源,减少了设备到Web服务器的访问流量,缓解了目的端服务器的压力,同时也提高了IPv6用户访问网站的响应速度,增强了用户体验。

2. 配置限制和指导

在引用HTTP proxy server视图时,如果HTTP proxy server视图下配置了cache-data命令,则该命令指定的路径只能是引用该HTTP proxy server视图的HTTP proxy服务视图所在slot的路径,否则引用失败。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     开启HTTP proxy服务的Web资源缓存功能,并指定缓存文件的路径。

cache-data directory directory

缺省情况下,未配置缓存文件的路径,HTTP proxy服务的Web资源缓存功能处于关闭状态。

3.7.3  配置关键字监控替换功能

通过HTTP proxy server视图配置代理时,本功能复用HTTP proxy服务视图下的配置,具体的配置步骤请参见“2.7.3  配置关键字监控替换功能”。

3.7.4  配置HTTP proxy server视图下的Referer防盗链功能

1. 功能简介

HTTP proxy服务的Referer防盗链功能能够阻止某些非法用户通过HTTP proxy服务来访问并盗取服务代理的网站资源。在HTTP proxy server视图下开启HTTP proxy服务的Referer防盗链功能后,HTTP proxy会拒绝用户Referer字段与设置的白名单域名不匹配的HTTP/HTTPS请求,以防止HTTP proxy服务代理的网站上的资源被盗用,适合HTTP proxy服务代理的网站上有较多资源地址时开启。

2. 配置限制和指导

如果同时配置了本功能和HTTP proxy视图下的防盗链功能,则用户客户端发送的HTTP/HTTPS请求报文中Referer字段需要同时满足两个功能的要求,该请求才会被处理,否则请求被拒绝。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     配置指定代理域名的防盗链白名单域名。

referer-protection domain domain-name allowlist allowlist-domain-name

缺省情况下,HTTP proxy 服务的Referer防盗链功能未开启。

用户客户端访问domain-name时,如果发送的HTTP/HTTPS请求报文中Referer字段不是allowlist-domain-name指定的白名单域名,则设备会拒绝该请求。

3.7.5  配置防SQL、XSS注入功能

通过HTTP proxy server视图配置代理时,本功能复用HTTP proxy服务视图下的配置,具体的配置步骤请参见“2.7.5  配置防SQL、XSS注入功能”。

3.7.6  删除HTTP/HTTPS响应头中的Set-Cookie消息选项

1. 功能简介

本功能适用的情形如下:

·     情况一:

在HTTP proxy server视图下开启了无限跳转功能后,设备会对Web服务器返回的响应体中的外链URL使用泛域名进行拼接,并且会将外链URL修改为HTTP形式。例如,设备将外链https://example.com修改为http://https-example-com.example.cn(example.cn为泛域名),用户客户端访问该外链时将向设备发送HTTP请求,设备接收到HTTP请求后将请求行中的外链URL进行还原为https://example.com,并通过HTTPS协议向Web服务器重新发送请求。

在上述过程中,由于Web服务器返回的是HTTPS响应报文,响应头中携带的Set-Cookie消息可能包含Secure属性。Secure属性只能用于HTTPS协议,用于确保Cookie进行了HTTPS加密,以提高Cookie的安全性。由于客户端请求外链资源使用的是HTTP协议,接收到了包含了Secure属性的Set-Cookie后,将不会保存该Cookie,这将导致用户访问外链资源时无法保持登录状态等问题。配置delete cookie-flag secure命令后,Web服务器返回的HTTPS响应头中Set-Cookie消息的Secure属性将会被删除,使得客户端可以保存该Cookie。

·     情况二:

对于安全性较高的Web服务器,在返回HTTP/HTTPS响应报文时,响应头中携带的Set-Cookie消息将会包含SameSite属性。SameSite属性用来限制第三方Cookie,防止非法网站使用客户端的Cookie伪造HTTP/HTTPS请求。用户客户端保存了包含SameSite属性的Cookie后,认为开启了HTTP proxy服务的设备为第三方网站,这将导致客户端发送的HTTP/HTTPS请求将不会携带该Cookie。配置delete cookie-flag samesite命令后,Web服务器返回的HTTP/HTTPS响应头中Set-Cookie消息的SameSite属性将会被删除,使得客户端在发送HTTP/HTTPS请求时可以携带该Cookie。

·     情况三:

设备请求Web服务器的资源时,Web服务器返回的HTTP/HTTPS响应报文中,响应头携带的Set-Cookie消息可能包含HTTPOnly属性(是否包含HTTPOnly属性取决于Web服务器)。保存了包含HTTPOnly属性的Cookie后,客户端在通过JavaScript方式请求Web资源时,HTTP/HTTPS请求头将不会携带Cookie,增加了Cookie的安全性。在一些通过JavaScript方式请求Web资源的场景中,需要HTTP/HTTPS请求头携带Cookie以维持用户状态,此时可以通过配置delete cookie-flag httponly命令,使设备删除Web服务器返回的HTTP/HTTPS响应头中Set-Cookie消息包含的HTTPOnly属性。

2. 配置准备

配置删除HTTP/HTTPS响应头中的Set-Cookie消息选项前,需要保证配置的HTTP proxy server视图未被引用。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     删除HTTP/HTTPS响应头中的Set-Cookie消息选项。

delete cookie-flag { httponly | samesite | secure }

缺省情况下,不对HTTP/HTTPS响应头中的Set-Cookie消息选项进行修改。

3.7.7  开启QueryString还原功能

1. 功能简介

开启无限跳转功能后,用户客户端发送的HTTP/HTTPS请求报文的URL中,QueryString参数可能包含经过设备替换的域名。缺省情况下,设备不会对QueryString参数中经过替换的域名进行还原,客户端无法通过QueryString请求到相应的Web资源。开启QueryString还原功能后,设备会将QueryString参数中经过替换的域名还原为原域名,以保证客户端对QueryString中请求的资源的正常获取。

2. 配置准备

开启QueryString还原功能前,需要保证配置的HTTP proxy server视图未被引用。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     开启QueryString还原功能。

restore request-querystring

缺省情况下,QueryString还原功能处于关闭状态。

3.7.8  配置HTTP/HTTPS响应头改造以及请求头还原功能

1. 功能简介

缺省情况下,设备不会对HTTP/HTTPS响应头中的字段进行修改,开启了无限跳转功能后,由于设备可以对任意的外链进行代理,在代理Web服务器上与服务器非同源的外链时,需要用户客户端发起跨域请求。某些客户端不允许进行跨域请求,则无法访问与Web服务器非同源的外链。开启HTTP/HTTPS响应头中指定字段的改造功能后,设备将使用wildcard-domain-name命令配置的泛域名对响应头中的指定字段进行改造,例如,将Referer字段的内容“https://www.example.com”改造成“http://https-www-example-com.example.cn”(example.cn为配置的泛域名),客户端接收到改造了响应头的HTTP/HTTPS应答后,对于响应体中外链的访问不再认为是跨域请求,后续能够进行正常的访问。

用户客户端根据改造后的响应再次发送HTTP/HTTPS请求时,请求头中的相关字段为设备改造后的形式,如果不还原这些字段,设备无法通过改造后的HTTP/HTTPS请求头完成Web资源的代理。开启HTTP/HTTPS请求头中指定字段的还原功能后,设备会对请求头中使用指定泛域名改造过的指定字段进行还原,以保证客户端代理资源的正常访问。

2. 配置准备

在HTTP proxy服务视图下配置HTTP proxy服务代理的泛域名。具体的配置步骤请参见“2.6.5  配置无限跳转功能”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     开启HTTP/HTTPS响应头中指定字段的改造功能。

replace response-header { access-control-allow-origin | location | p3p | refresh | vary }

缺省情况下,HTTP/HTTPS响应头中所有字段的改造功能均处于关闭状态。

(4)     开启HTTP/HTTPS请求头中字段的还原功能。

restore request-header { origin | referer | x-wap-profile }

缺省情况下,未配置HTTP/HTTPS请求头中任何字段的还原。

3.7.9  配置允许替换的重定向URL域名

1. 功能简介

设备配置了HTTP proxy服务代理的泛域名时,如果在HTTP proxy server视图下未开启无限跳转功能,则缺省情况下,设备无法使用该HTTP proxy server视图下的配置对重定向URL进行代理。配置了重定向域名替换功能后,设备可以对Web服务器返回的HTTP/HTTPS响应头中,指定的重定向URL的域名进行替换,即使用泛域名对该域名进行拼接改造,以实现设备对于重定向URL的代理。本功能应用于设备仅需代理部分外链资源的场景中。

2. 配置限制和指导

如果HTTP proxy server视图下开启了无限跳转功能,则本功能不生效。

3. 配置准备

在HTTP proxy服务视图下配置HTTP proxy服务代理的泛域名。具体的配置步骤请参见“2.6.5  配置无限跳转功能”。

4. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy server视图。

http-proxy server server-name

(3)     配置允许替换的重定向URL域名。

include-redirect-domain domain-name

缺省情况下,未配置重定向域名替换功能。

3.8  引用HTTP proxy server视图

1. 功能简介

引用了HTTP proxy server视图后,设备会使用HTTP proxy server视图下的配置代理当前slot下所有的Web资源。被引用的HTTP proxy server分为以下两种:

·     非缺省HTTP proxy server视图:此类视图下的配置只能代理通过domain-name命令指定的白名单域名的Web服务器。

·     缺省HTTP proxy server视图:IPv6客户端请求的Web资源如果未匹配任何非缺省HTTP proxy server视图下指定的域名,则设备使用缺省HTTP proxy server视图下的配置进行代理。

2. 配置限制和指导

·     如果引用的HTTP proxy server视图中没有指定缺省HTTP proxy server视图,则HTTP proxy服务无法开启。只能指定一个引用的HTTP proxy server视图为缺省HTTP proxy server视图。

·     HTTP proxy服务视图下配置了cache-datadomain-nameextlink-href enablefailed-extlink informfailed-extlink redirectmedialink-proxy enablehyperlink-proxyipv6-addressprotocol-type命令时,不能引用HTTP proxy server视图。

3. 配置准备

引用HTTP proxy server视图前,需要关闭HTTP proxy功能,完成修改后再次开启HTTP proxy服务。

4. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

 

http-proxy service service-name

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     指定引用的HTTP proxy server视图为缺省HTTP proxy server视图。

include server server-name default

缺省情况下,HTTP proxy服务未引用HTTP proxy server视图。

(4)     (可选)指定引用的HTTP proxy server视图为非缺省HTTP proxy server视图。

include server server-name

缺省情况下,HTTP proxy服务未引用HTTP proxy server视图

3.9  开启HTTP proxy服务的泛域名加密功能

1. 功能简介

开启HTTP proxy服务的泛域名加密功能后,设备在进行外链代理时,会对使用泛域名拼接后的外链使用指定的算法进行加密。后续客户端在访问该外链时,发送的HTTP/HTTPS请求中携带的是加密的外链,此时设备会对其进行解密校验后再代理该资源,以防止非法用户冒用泛域名,使用代理设备访问外链资料,占用代理资源。

2. 配置限制和指导

在HTTP proxy服务视图下,如果没有引用过HTTP proxy server视图,则无法配置本功能。反之,如果要取消对HTTP proxy server视图的引用,则需要先关闭HTTP proxy服务视图下的泛域名加密功能。

3. 配置准备

请在开启HTTP proxy服务的泛域名加密功能前,关闭HTTP proxy功能,并引用HTTP proxy server视图。

4. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     开启HTTP proxy服务的泛域名加密功能。

extlink-encryption algorithm { algx | algy | algz }

缺省情况下,HTTP proxy服务的泛域名加密功能处于关闭状态。

3.10  配置代理信息记录功能

使用HTTP proxy server视图下的配置进行代理时,本功能复用HTTP proxy服务视图下的配置,具体的配置步骤请参见“2.8  配置代理信息记录功能”。

3.11  开启HTTP proxy功能

1. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入HTTP proxy服务视图。

(独立运行模式)

http-proxy service service-name slot slot-number

(IRF模式)

http-proxy service service-name chassis chassis-number slot slot-number

(3)     开启HTTP proxy服务。

service enable

缺省情况下,HTTP proxy服务处于关闭状态。

3.12  通过HTTP proxy server视图配置代理的显示和维护

完成上述配置后,在任意视图下执行display命令可以显示配置后HTTP proxy的运行情况,通过查看显示信息验证配置的效果。

表3-2 HTTP proxy显示和维护

操作

命令

显示HTTP proxy服务视图的配置信息

display http-proxy { server-group [ group-name ] | service [ service-name ] }

显示HTTP proxy server视图的配置信息

display http-proxy server server-name

 

3.13  通过HTTP proxy server视图配置代理举例

3.13.1  HTTP proxy服务代理HTTP协议配置举例

1. 组网需求

图3-1所示,设备对IPv6主机提供HTTP代理服务,代理IPv6主机对不同域名的IPv4 Web服务器Server A、Server B和Server C的访问:

·     设备创建三个HTTP proxy server视图,名为servera、serverb和serverc。并且分别用servera视图下的配置代理IPv6主机对Web服务器Server A的访问,用serverb视图下的配置代理IPv6主机对Web服务器Server B的访问,用serverc视图下的配置代理IPv6主机对Web服务器Server C的访问。

·     用户能够通过代理访问Server A、Server B的Web页面上的所有外链资源,但只能访问Server C的Web页面上域名为“test.example.org”的外链。

·     在用户通过代理访问外链时,设备对泛域名改造后的外链进行加密,防止非法用户冒用泛域名,提高安全性。

·     设备通过文件记录HTTP proxy服务的代理信息。

·     Server A的域名为testa.example.cn,提供Web服务的端口为8001;Server B的域名为testb.example.cn,提供Web服务的端口为8002;Server C的域名为testc.example.cn,提供Web服务的端口为8003。

2. 组网图

图3-1 配置HTTP proxy服务代理HTTP协议组网图

 

3. 配置准备

请在设备上创建三个IPv6地址2001::1/64、2001::2/64和2001::3/64,并确保这三个IPv6地址与IPv6主机的地址2001::4/64之间为可达状态,具体配置过程略。

请确保HTTP proxy代理的域名testa.example.cn、testb.example.cn和testc.example.cn在主机端可以被分别解析为IPv6地址2001::1/64、2001::2/64和2001::3/64,亦可以通过DNS服务器被解析为设备可达的IPv4地址。

请确保泛域名example.cn在主机端可以被解析为IPv6地址2001::1/64、2001::2/64或2001::3/64。

4. 配置步骤

(1)     开启设备的DNS proxy功能。

<Device> system-view

[Device] dns proxy enable

(2)     配置HTTP proxy服务视图下的参数

# 创建HTTP proxy服务proxyservice,并进入该HTTP proxy服务视图。

[Device] http-proxy service proxyservice

# 配置DNS服务器的IPv4地址为8.8.8.8。

[Device-http-proxy-service-proxyservice] dns-server 8.8.8.8

# 配置HTTP proxy的泛域名为example.cn。

[Device-http-proxy-service-proxyservice] wildcard-domain-name example.cn

# 使用算法x为HTTP proxy服务的泛域名进行加密。

[Device-http-proxy-service-proxyservice] extlink-encryption algorithm algx

# 开启HTTP proxy服务的代理信息记录功能。

[Device-http-proxy-service-proxyservice] access-record enable file-path flash:/httpproxy/20211111.log

[Device-http-proxy-service-proxyservice] quit

(3)     配置HTTP proxy server视图下的参数

¡     配置servera

# 创建HTTP proxy server视图servera,并进入该视图。

[Device] http-proxy server servera

# 配置HTTP proxy服务的白名单域名为testa.example.cn。

[Device-http-proxy-server-servera] domain-name testa.example.cn

# 配置HTTP proxy服务使用HTTP协议作为服务类型,侦听Server A的端口号8001。

[Device-http-proxy-server-servera] protocol-type http port 8001

# 配置HTTP proxy服务的IPv6地址为2001::1。

[Device-http-proxy-server-servera] ipv6-address 2001::1

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-server-servera] extlink-href enable

[Device-http-proxy-server-servera] quit

¡     配置serverb

# 创建HTTP proxy server视图serverb,并进入该视图。

[Device] http-proxy server serverb

# 配置HTTP proxy服务的白名单域名为testb.example.cn。

[Device-http-proxy-server-serverb] domain-name testb.example.cn

# 配置HTTP proxy服务使用HTTP协议作为服务类型,侦听Server B的端口号8002。

[Device-http-proxy-server-serverb] protocol-type http port 8002

# 配置HTTP proxy服务的IPv6地址为2001::2。

[Device-http-proxy-server-serverb] ipv6-address 2001::2

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-server-serverb] extlink-href enable

[Device-http-proxy-server-serverb] quit

¡     配置serverc

# 创建HTTP proxy server视图serverc,并进入该视图。

[Device] http-proxy server serverc

# 配置HTTP proxy服务的白名单域名为testc.example.cn。

[Device-http-proxy-server-serverc] domain-name testc.example.cn

# 配置HTTP proxy服务使用HTTP协议作为服务类型,侦听Server C的端口号8003。

[Device-http-proxy-server-serverc] protocol-type http port 8003

# 配置HTTP proxy服务的IPv6地址为2001::3。

[Device-http-proxy-server-serverc] ipv6-address 2001::3

# 配置HTTP proxy服务需要代理的外链域名为test.example.org。

[Device-http-proxy-server-serverc] include-external-domain http://test.example.org

[Device-http-proxy-server-serverc] quit

(4)     引用HTTP proxy server视图

# 引用HTTP proxy server视图servera,并指定其为缺省HTTP proxy server视图。

[Device] http-proxy service proxyservice

[Device-http-proxy-service-proxyservice] include server servera default

# 引用HTTP proxy server视图serverb,并指定其为非缺省HTTP proxy server视图。

[Device-http-proxy-service-proxyservice] include server serverb

# 引用HTTP proxy server视图serverc,并指定其为非缺省HTTP proxy server视图。

[Device-http-proxy-service-proxyservice] include server serverc

(5)     开启HTTP proxy功能。

[Device-http-proxy-service-proxyservice] service enable

[Device-http-proxy-service-proxyservice] quit

[Device] quit

5. 验证配置

# 显示HTTP proxy server视图的配置信息。(以servera的配置为例,serverb以及serverc的配置相似)

[Sysname]display http-proxy server servera

  Server name: servera

  IPv6 address:                    2001::1

  Allowlist domain names:          testa.example.cn

  Protocol types:                  HTTP at port 8001

  Failed extlink error codes:      N/A

  Excluded external domain name:   N/A

  Restore request header name:     N/A

  Replace response header name:    N/A

  Include external domain name:    N/A

  Include redirect domain name:    N/A

  Referer protection domain name:  N/A

    Allowlist:                     N/A

  Delete cookie flag:              N/A

  Restore request querystring:     Disabled

  Extlink href:                    Enabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

# 显示HTTP proxy服务视图的配置信息。

<Sysname> display http-proxy service proxyservice

HTTP proxy name: proxyservice

  IPv6 address:                    N/A

  Allowlist domain names:          N/A

  Protocol types:                  N/A

  SSL certificate directory:       N/A

  Domain name:                     N/A

    SSL certificate file:          N/A

    SSL key files:                 N/A

  Hyperlink proxy strings:         N/A

  Failed extlink error codes:      N/A

  DNS servers:                     8.8.8.8

  Denylist domain names:           N/A

  Monitored keyword:               N/A

    Replaced by                    N/A

  Excluded external domain name:   N/A

  Include Server:                  servera

                                   serverb

                                   serverc

  IP pools:                        N/A

  Wildcard domain name:            example.cn

  Extlink href:                    Disabled

  URL protection:                  Disabled

  Referer protection:              Disabled

  Medialink proxy:                 Disabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

  HTTP proxy operation recording:  Enabled

    Operation record file path:    flash:/httpproxy/20211111.log

    Max zone size                  4096MB

    Single file size               10MB

  Extlink encryption algorithm:    algx

  HTTP proxy status:               Enabled

以上显示信息表示HTTP proxy服务的参数已经正确配置,并且服务处于开启状态。

# 主机访问代理网站后,在设备上代理信息日志文件中查看HTTP proxy服务的代理信息。

<Device> more flash:/httpproxy/20211111.log

[11/Nov/2021:16:11:35 +0800]  Client=2001::4  URL=http://testa.example.cn/desert.jpg  Server=192.168.1.101:8001

[11/Nov/2021:16:11:35 +0800]  Client=2001::4  URL=http://testa.example.cn/config.js  Server=192.168.1.101:8001

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=http://testb.example.cn/config.js  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=http://testb.example.cn/desert.jpg  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=http://testc.example.cn/config.js  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=http://testc.example.cn/desert.jpg  Server=192.168.1.102:8002

主机能够正常访问代理网站,且服务代理信息记录正确,说明HTTP proxy服务生效。

3.13.2  HTTP proxy服务代理HTTPS协议配置举例

1. 组网需求

图3-2所示,设备对IPv6主机提供HTTPS代理服务,代理IPv6主机对不同域名的IPv4 Web服务器Server A、Server B和Server C的访问:

·     设备创建三个HTTP proxy server视图,名为servera、serverb和serverc。并且分别用servera视图下的配置代理IPv6主机对Web服务器Server A的访问,用serverb视图下的配置代理IPv6主机对Web服务器Server B的访问,用serverc视图下的配置代理IPv6主机对Web服务器Server C的访问。

·     用户能够通过代理访问Server A、Server B的Web页面上的所有外链资源,但只能访问Server C的Web页面上域名为“test.example.org”的外链。

·     在用户通过代理访问外链时,设备对泛域名改造后的外链进行加密,防止非法用户冒用泛域名,提高安全性。

·     设备通过文件记录HTTP proxy服务的代理信息。

·     Server A的域名为testa.example.cn,提供Web服务的端口为8001;Server B的域名为testb.example.cn,提供Web服务的端口为8002;Server C的域名为testc.example.cn,提供Web服务的端口为8003。

2. 组网图

图3-2 配置HTTP proxy服务代理HTTPS协议组网图

 

 

3. 配置准备

请在设备上创建三个IPv6地址2001::1/64、2001::2/64和2001::3/64,并确保这三个IPv6地址与IPv6主机的地址2001::4/64之间为可达状态,具体配置过程略。

请确保HTTP proxy代理的域名testa.example.cn、testb.example.cn和testc.example.cn在主机端可以被分别解析为IPv6地址2001::1/64、2001::2/64和2001::3/64,亦可以通过DNS服务器被解析为设备可达的IPv4地址。

请确保泛域名example.cn在主机端可以被解析为IPv6地址2001::1/64、2001::2/64或2001::3/64。

4. 配置步骤

(1)     通过FTP或TFTP将服务器Server A、Server B和Server C的证书相关文件加载到HTTP proxy的SSL证书相关文件指定路径下。有关FTP和TFTP的详细介绍,请参见“基础配置指导”中的“FTP和TFTP”。

<Device> tftp 2001::1 get httpproxya.key flash:/certa.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxya.pem flash:/certa.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyb.key flash:/certb.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyb.pem flash:/certb.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyc.key flash:/certc.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyc.pem flash:/certc.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

(2)     开启设备的DNS proxy功能。

<Device> system-view

[Device] dns proxy enable

(3)     配置HTTP proxy服务视图下的参数

# 创建HTTP proxy服务proxyservice,并进入该HTTP proxy服务视图。

[Device] http-proxy service proxyservice

# 配置DNS服务器的IPv4地址为8.8.8.8。

[Device-http-proxy-service-proxyservice] dns-server 8.8.8.8

# 配置SSL证书相关文件所在路径。

[Device-http-proxy-service-proxyservice] ssl certificate directory flash:/

# 配置Server A的证书文件certa.pem及密钥文件certa.key,配置Server B的证书文件certb.pem及密钥文件certb.key,配置Server C的证书文件certc.pem及密钥文件certc.key。

[Device-http-proxy-service-proxyservice] ssl certificate domain-name testa.example.cn file certa.pem key-file certa.key

[Device-http-proxy-service-proxyservice] ssl certificate domain-name testb.example.cn file certb.pem key-file certb.key

[Device-http-proxy-service-proxyservice] ssl certificate domain-name testc.example.cn file certc.pem key-file certc.key

# 配置HTTP proxy的泛域名为example.cn。

[Device-http-proxy-service-proxyservice] wildcard-domain-name example.cn

# 使用算法x为HTTP proxy服务的泛域名进行加密。

[Device-http-proxy-service-proxyservice] extlink-encryption algorithm algx

# 开启HTTP proxy服务的代理信息记录功能。

[Device-http-proxy-service-proxyservice] access-record enable file-path flash:/httpproxy/20211111.log

[Device-http-proxy-service-proxyservice] quit

(4)     配置HTTP proxy server视图下的参数

¡     配置servera

# 创建HTTP proxy server视图servera,并进入该视图。

[Device] http-proxy server servera

# 配置HTTP proxy服务的白名单域名为testa.example.cn。

[Device-http-proxy-server-servera] domain-name testa.example.cn

# 配置HTTP proxy服务使用HTTPS协议作为服务类型,侦听Server A的端口号8001。

[Device-http-proxy-server-servera] protocol-type https port 8001

# 配置HTTP proxy服务的IPv6地址为2001::1。

[Device-http-proxy-server-servera] ipv6-address 2001::1

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-server-servera] extlink-href enable

[Device-http-proxy-server-servera] quit

¡     配置serverb

# 创建HTTP proxy server视图serverb,并进入该视图。

[Device] http-proxy server serverb

# 配置HTTP proxy服务的白名单域名为testb.example.cn。

[Device-http-proxy-server-serverb] domain-name testb.example.cn

# 配置HTTP proxy服务使用HTTPS协议作为服务类型,侦听Server B的端口号8002。

[Device-http-proxy-server-serverb] protocol-type https port 8002

# 配置HTTP proxy服务的IPv6地址为2001::2。

[Device-http-proxy-server-serverb] ipv6-address 2001::2

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-server-serverb] extlink-href enable

[Device-http-proxy-server-serverb] quit

¡     配置serverc

# 创建HTTP proxy server视图serverc,并进入该视图。

[Device] http-proxy server serverc

# 配置HTTP proxy服务的白名单域名为testc.example.cn。

[Device-http-proxy-server-serverc] domain-name testc.example.cn

# 配置HTTP proxy服务使用HTTPS协议作为服务类型,侦听Server C的端口号8003。

[Device-http-proxy-server-serverc] protocol-type https port 8003

# 配置HTTP proxy服务的IPv6地址为2001::3。

[Device-http-proxy-server-serverc] ipv6-address 2001::3

# 配置HTTP proxy服务需要代理的外链域名为test.example.org。

[Device-http-proxy-server-serverc] include-external-domain http://test.example.org

[Device-http-proxy-server-serverc] quit

(5)     引用HTTP proxy server视图

# 引用HTTP proxy server视图servera,并指定其为缺省HTTP proxy server视图。

[Device] http-proxy service proxyservice

[Device-http-proxy-service-proxyservice] include server servera default

# 引用HTTP proxy server视图serverb,并指定其为非缺省HTTP proxy server视图。

[Device-http-proxy-service-proxyservice] include server serverb

# 引用HTTP proxy server视图serverc,并指定其为非缺省HTTP proxy server视图。

[Device-http-proxy-service-proxyservice] include server serverc

(6)     开启HTTP proxy功能。

[Device-http-proxy-service-proxyservice] service enable

[Device-http-proxy-service-proxyservice] quit

[Device] quit

5. 验证配置

# 显示HTTP proxy server视图的配置信息。(以servera的配置为例,serverb以及serverc的配置相似)

[Sysname]display http-proxy server servera

  Server name: servera

  IPv6 address:                    2001::1

  Allowlist domain names:          testa.example.cn

  Protocol types:                  HTTPS at port 8001

  Failed extlink error codes:      N/A

  Excluded external domain name:   N/A

  Restore request header name:     N/A

  Replace response header name:    N/A

  Include external domain name:    N/A

  Include redirect domain name:    N/A

  Referer protection domain name:  N/A

    Allowlist:                     N/A

  Delete cookie flag:              N/A

  Restore request querystring:     Disabled

  Extlink href:                    Enabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

# 显示HTTP proxy服务视图的配置信息。

<Sysname> display http-proxy service proxyservice

HTTP proxy name: proxyservice

  IPv6 address:                    N/A

  Allowlist domain names:          N/A

  Protocol types:                  N/A

  SSL certificate directory:       N/A

  SSL certificate directory:       flash:/

  Domain name:                     testa.example.cn

    SSL certificate file:          certa.pem

    SSL key files:                 certa.key

  Domain name:                     testb.example.cn

    SSL certificate file:          certb.pem

    SSL key files:                 certb.key

  Domain name:                     testc.example.cn

    SSL certificate file:          certc.pem

    SSL key files:                 certc.key

  Hyperlink proxy strings:         N/A

  Failed extlink error codes:      N/A

  DNS servers:                     8.8.8.8

  Denylist domain names:           N/A

  Monitored keyword:               N/A

    Replaced by                    N/A

  Excluded external domain name:   N/A

  Include Server:                  servera

                                   serverb

                                   serverc

  IP pools:                        N/A

  Wildcard domain name:            example.cn

  Extlink href:                    Disabled

  URL protection:                  Disabled

  Referer protection:              Disabled

  Medialink proxy:                 Disabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

  HTTP proxy operation recording:  Enabled

    Operation record file path:    flash:/httpproxy/20211111.log

    Max zone size                  4096MB

    Single file size               10MB

  Extlink encryption algorithm:    algx

  HTTP proxy status:               Enabled

以上显示信息表示HTTP proxy服务的参数已经正确配置,并且服务处于开启状态。

# 主机访问代理网站后,在设备上代理信息日志文件中查看HTTP proxy服务的代理信息。

<Device> more flash:/httpproxy/20211111.log

[11/Nov/2021:16:11:35 +0800]  Client=2001::4  URL=https://testa.example.cn/desert.jpg  Server=192.168.1.101:8001

[11/Nov/2021:16:11:35 +0800]  Client=2001::4  URL=https://testa.example.cn/config.js  Server=192.168.1.101:8001

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=https://testb.example.cn/config.js  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=https://testb.example.cn/desert.jpg  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=https://testc.example.cn/config.js  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=https://testc.example.cn/desert.jpg  Server=192.168.1.102:8002

主机能够正常访问代理网站,且服务代理信息记录正确,说明HTTP proxy服务生效。

3.14  通过HTTP proxy server视图配置代理举例(独立运行模式)

3.14.1  HTTP proxy服务代理HTTP协议配置举例

1. 组网需求

图3-1所示,设备对IPv6主机提供HTTP代理服务,代理IPv6主机对不同域名的IPv4 Web服务器Server A、Server B和Server C的访问:

·     设备创建三个HTTP proxy server视图,名为servera、serverb和serverc。并且分别用servera视图下的配置代理IPv6主机对Web服务器Server A的访问,用serverb视图下的配置代理IPv6主机对Web服务器Server B的访问,用serverc视图下的配置代理IPv6主机对Web服务器Server C的访问。

·     用户能够通过代理访问Server A、Server B的Web页面上的所有外链资源,但只能访问Server C的Web页面上域名为“test.example.org”的外链。

·     在用户通过代理访问外链时,设备对泛域名改造后的外链进行加密,防止非法用户冒用泛域名,提高安全性。

·     设备通过文件记录HTTP proxy服务的代理信息。

·     Server A的域名为testa.example.cn,提供Web服务的端口为8001;Server B的域名为testb.example.cn,提供Web服务的端口为8002;Server C的域名为testc.example.cn,提供Web服务的端口为8003。

2. 组网图

图3-3 配置HTTP proxy服务代理HTTP协议组网图

 

3. 配置准备

请在设备上创建三个IPv6地址2001::1/64、2001::2/64和2001::3/64,并确保这三个IPv6地址与IPv6主机的地址2001::4/64之间为可达状态,具体配置过程略。

请确保HTTP proxy代理的域名testa.example.cn、testb.example.cn和testc.example.cn在主机端可以被分别解析为IPv6地址2001::1/64、2001::2/64和2001::3/64,亦可以通过DNS服务器被解析为设备可达的IPv4地址。

请确保泛域名example.cn在主机端可以被解析为IPv6地址2001::1/64、2001::2/64或2001::3/64。

4. 配置步骤

(1)     开启设备的DNS proxy功能。

<Device> system-view

[Device] dns proxy enable

(2)     配置HTTP proxy服务视图下的参数

# 创建HTTP proxy服务proxyservice,并进入该HTTP proxy服务视图。

[Device] http-proxy service proxyservice slot 1

# 配置DNS服务器的IPv4地址为8.8.8.8。

[Device-http-proxy-service-proxyservice-slot1] dns-server 8.8.8.8

# 配置HTTP proxy的泛域名为example.cn。

[Device-http-proxy-service-proxyservice-slot1] wildcard-domain-name example.cn

# 使用算法x为HTTP proxy服务的泛域名进行加密。

[Device-http-proxy-service-proxyservice-slot1] extlink-encryption algorithm algx

# 开启HTTP proxy服务的代理信息记录功能。

[Device-http-proxy-service-proxyservice-slot1] access-record enable file-path slot1#flash:/httpproxy/20211111.log

[Device-http-proxy-service-proxyservice-slot1] quit

(3)     配置HTTP proxy server视图下的参数

¡     配置servera

# 创建HTTP proxy server视图servera,并进入该视图。

[Device] http-proxy server servera

# 配置HTTP proxy服务的白名单域名为testa.example.cn。

[Device-http-proxy-server-servera] domain-name testa.example.cn

# 配置HTTP proxy服务使用HTTP协议作为服务类型,侦听Server A的端口号8001。

[Device-http-proxy-server-servera] protocol-type http port 8001

# 配置HTTP proxy服务的IPv6地址为2001::1。

[Device-http-proxy-server-servera] ipv6-address 2001::1

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-server-servera] extlink-href enable

[Device-http-proxy-server-servera] quit

¡     配置serverb

# 创建HTTP proxy server视图serverb,并进入该视图。

[Device] http-proxy server serverb

# 配置HTTP proxy服务的白名单域名为testb.example.cn。

[Device-http-proxy-server-serverb] domain-name testb.example.cn

# 配置HTTP proxy服务使用HTTP协议作为服务类型,侦听Server B的端口号8002。

[Device-http-proxy-server-serverb] protocol-type http port 8002

# 配置HTTP proxy服务的IPv6地址为2001::2。

[Device-http-proxy-server-serverb] ipv6-address 2001::2

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-server-serverb] extlink-href enable

[Device-http-proxy-server-serverb] quit

¡     配置serverc

# 创建HTTP proxy server视图serverc,并进入该视图。

[Device] http-proxy server serverc

# 配置HTTP proxy服务的白名单域名为testc.example.cn。

[Device-http-proxy-server-serverc] domain-name testc.example.cn

# 配置HTTP proxy服务使用HTTP协议作为服务类型,侦听Server C的端口号8003。

[Device-http-proxy-server-serverc] protocol-type http port 8003

# 配置HTTP proxy服务的IPv6地址为2001::3。

[Device-http-proxy-server-serverc] ipv6-address 2001::3

# 配置HTTP proxy服务需要代理的外链域名为test.example.org。

[Device-http-proxy-server-serverc] include-external-domain http://test.example.org

[Device-http-proxy-server-serverc] quit

(4)     引用HTTP proxy server视图

# 引用HTTP proxy server视图servera,并指定其为缺省HTTP proxy server视图。

[Device] http-proxy service proxyservice slot 1

[Device-http-proxy-service-proxyservice-slot1] include server servera default

# 引用HTTP proxy server视图serverb,并指定其为非缺省HTTP proxy server视图。

[Device-http-proxy-service-proxyservice-slot1] include server serverb

# 引用HTTP proxy server视图serverc,并指定其为非缺省HTTP proxy server视图。

[Device-http-proxy-service-proxyservice-slot1] include server serverc

(5)     开启HTTP proxy功能。

[Device-http-proxy-service-proxyservice-slot1] service enable

[Device-http-proxy-service-proxyservice-slot1] quit

[Device] quit

5. 验证配置

# 显示HTTP proxy server视图的配置信息。(以servera的配置为例,serverb以及serverc的配置相似)

[Sysname]display http-proxy server servera

  Server name: servera

  IPv6 address:                    2001::1

  Allowlist domain names:          testa.example.cn

  Protocol types:                  HTTP at port 8001

  Failed extlink error codes:      N/A

  Excluded external domain name:   N/A

  Restore request header name:     N/A

  Replace response header name:    N/A

  Include external domain name:    N/A

  Include redirect domain name:    N/A

  Referer protection domain name:  N/A

    Allowlist:                     N/A

  Delete cookie flag:              N/A

  Restore request querystring:     Disabled

  Extlink href:                    Enabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

# 显示HTTP proxy服务视图的配置信息。

<Sysname> display http-proxy service proxyservice

HTTP proxy name: proxyservice

  IPv6 address:                    N/A

  Allowlist domain names:          N/A

  Protocol types:                  N/A

  SSL certificate directory:       N/A

  Domain name:                     N/A

    SSL certificate file:          N/A

    SSL key files:                 N/A

  Hyperlink proxy strings:         N/A

  Failed extlink error codes:      N/A

  DNS servers:                     8.8.8.8

  Denylist domain names:           N/A

  Monitored keyword:               N/A

    Replaced by                    N/A

  Excluded external domain name:   N/A

  Include Server:                  servera

                                   serverb

                                   serverc

  IP pools:                        N/A

  Wildcard domain name:            example.cn

  Extlink href:                    Disabled

  URL protection:                  Disabled

  Referer protection:              Disabled

  Medialink proxy:                 Disabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

  HTTP proxy operation recording:  Enabled

    Operation record file path:    slot1#flash:/httpproxy/20211111.log

    Max zone size                  4096MB

    Single file size               10MB

  Extlink encryption algorithm:    algx

  HTTP proxy status:               Enabled

以上显示信息表示HTTP proxy服务的参数已经正确配置,并且服务处于开启状态。

# 主机访问代理网站后,在设备上代理信息日志文件中查看HTTP proxy服务的代理信息。

<Device> more slot1#flash:/httpproxy/20211111.log

[11/Nov/2021:16:11:35 +0800]  Client=2001::4  URL=http://testa.example.cn/desert.jpg  Server=192.168.1.101:8001

[11/Nov/2021:16:11:35 +0800]  Client=2001::4  URL=http://testa.example.cn/config.js  Server=192.168.1.101:8001

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=http://testb.example.cn/config.js  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=http://testb.example.cn/desert.jpg  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=http://testc.example.cn/config.js  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=http://testc.example.cn/desert.jpg  Server=192.168.1.102:8002

主机能够正常访问代理网站,且服务代理信息记录正确,说明HTTP proxy服务生效。

3.14.2  HTTP proxy服务代理HTTPS协议配置举例

1. 组网需求

图3-2所示,设备对IPv6主机提供HTTPS代理服务,代理IPv6主机对不同域名的IPv4 Web服务器Server A、Server B和Server C的访问:

·     设备创建三个HTTP proxy server视图,名为servera、serverb和serverc。并且分别用servera视图下的配置代理IPv6主机对Web服务器Server A的访问,用serverb视图下的配置代理IPv6主机对Web服务器Server B的访问,用serverc视图下的配置代理IPv6主机对Web服务器Server C的访问。

·     用户能够通过代理访问Server A、Server B的Web页面上的所有外链资源,但只能访问Server C的Web页面上域名为“test.example.org”的外链。

·     在用户通过代理访问外链时,设备对泛域名改造后的外链进行加密,防止非法用户冒用泛域名,提高安全性。

·     设备通过文件记录HTTP proxy服务的代理信息。

·     Server A的域名为testa.example.cn,提供Web服务的端口为8001;Server B的域名为testb.example.cn,提供Web服务的端口为8002;Server C的域名为testc.example.cn,提供Web服务的端口为8003。

2. 组网图

图3-4 配置HTTP proxy服务代理HTTPS协议组网图

 

 

3. 配置准备

请在设备上创建三个IPv6地址2001::1/64、2001::2/64和2001::3/64,并确保这三个IPv6地址与IPv6主机的地址2001::4/64之间为可达状态,具体配置过程略。

请确保HTTP proxy代理的域名testa.example.cn、testb.example.cn和testc.example.cn在主机端可以被分别解析为IPv6地址2001::1/64、2001::2/64和2001::3/64,亦可以通过DNS服务器被解析为设备可达的IPv4地址。

请确保泛域名example.cn在主机端可以被解析为IPv6地址2001::1/64、2001::2/64或2001::3/64。

4. 配置步骤

(1)     通过FTP或TFTP将服务器Server A、Server B和Server C的证书相关文件加载到HTTP proxy的SSL证书相关文件指定路径下。有关FTP和TFTP的详细介绍,请参见“基础配置指导”中的“FTP和TFTP”。

<Device> tftp 2001::1 get httpproxya.key slot1#flash:/certa.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxya.pem slot1#flash:/certa.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyb.key slot1#flash:/certb.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyb.pem slot1#flash:/certb.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyc.key slot1#flash:/certc.key

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

<Device> tftp 2001::1 get httpproxyc.pem slot1#flash:/certc.pem

Press CTRL+C to abort.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100     8  100     8    0     0    330      0 --:--:-- --:--:-- --:--:--   571

Writing file...Done.

(2)     开启设备的DNS proxy功能。

<Device> system-view

[Device] dns proxy enable

(3)     配置HTTP proxy服务视图下的参数

# 创建HTTP proxy服务proxyservice,并进入该HTTP proxy服务视图。

[Device] http-proxy service proxyservice slot 1

# 配置DNS服务器的IPv4地址为8.8.8.8。

[Device-http-proxy-service-proxyservice-slot1] dns-server 8.8.8.8

# 配置SSL证书相关文件所在路径。

[Device-http-proxy-service-proxyservice-slot1] ssl certificate directory slot1#flash:/

# 配置Server A的证书文件certa.pem及密钥文件certa.key,配置Server B的证书文件certb.pem及密钥文件certb.key,配置Server C的证书文件certc.pem及密钥文件certc.key。

[Device-http-proxy-service-proxyservice-slot1] ssl certificate domain-name testa.example.cn file certa.pem key-file certa.key

[Device-http-proxy-service-proxyservice-slot1] ssl certificate domain-name testb.example.cn file certb.pem key-file certb.key

[Device-http-proxy-service-proxyservice-slot1] ssl certificate domain-name testc.example.cn file certc.pem key-file certc.key

# 配置HTTP proxy的泛域名为example.cn。

[Device-http-proxy-service-proxyservice-slot1] wildcard-domain-name example.cn

# 使用算法x为HTTP proxy服务的泛域名进行加密。

[Device-http-proxy-service-proxyservice-slot1] extlink-encryption algorithm algx

# 开启HTTP proxy服务的代理信息记录功能。

[Device-http-proxy-service-proxyservice-slot1] access-record enable file-path slot1#flash:/httpproxy/20211111.log

[Device-http-proxy-service-proxyservice-slot1] quit

(4)     配置HTTP proxy server视图下的参数

¡     配置servera

# 创建HTTP proxy server视图servera,并进入该视图。

[Device] http-proxy server servera

# 配置HTTP proxy服务的白名单域名为testa.example.cn。

[Device-http-proxy-server-servera] domain-name testa.example.cn

# 配置HTTP proxy服务使用HTTPS协议作为服务类型,侦听Server A的端口号8001。

[Device-http-proxy-server-servera] protocol-type https port 8001

# 配置HTTP proxy服务的IPv6地址为2001::1。

[Device-http-proxy-server-servera] ipv6-address 2001::1

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-server-servera] extlink-href enable

[Device-http-proxy-server-servera] quit

¡     配置serverb

# 创建HTTP proxy server视图serverb,并进入该视图。

[Device] http-proxy server serverb

# 配置HTTP proxy服务的白名单域名为testb.example.cn。

[Device-http-proxy-server-serverb] domain-name testb.example.cn

# 配置HTTP proxy服务使用HTTPS协议作为服务类型,侦听Server B的端口号8002。

[Device-http-proxy-server-serverb] protocol-type https port 8002

# 配置HTTP proxy服务的IPv6地址为2001::2。

[Device-http-proxy-server-serverb] ipv6-address 2001::2

# 开启HTTP proxy的无限跳转功能。

[Device-http-proxy-server-serverb] extlink-href enable

[Device-http-proxy-server-serverb] quit

¡     配置serverc

# 创建HTTP proxy server视图serverc,并进入该视图。

[Device] http-proxy server serverc

# 配置HTTP proxy服务的白名单域名为testc.example.cn。

[Device-http-proxy-server-serverc] domain-name testc.example.cn

# 配置HTTP proxy服务使用HTTPS协议作为服务类型,侦听Server C的端口号8003。

[Device-http-proxy-server-serverc] protocol-type https port 8003

# 配置HTTP proxy服务的IPv6地址为2001::3。

[Device-http-proxy-server-serverc] ipv6-address 2001::3

# 配置HTTP proxy服务需要代理的外链域名为test.example.org。

[Device-http-proxy-server-serverc] include-external-domain http://test.example.org

[Device-http-proxy-server-serverc] quit

(5)     引用HTTP proxy server视图

# 引用HTTP proxy server视图servera,并指定其为缺省HTTP proxy server视图。

[Device] http-proxy service proxyservice slot 1

[Device-http-proxy-service-proxyservice-slot1] include server servera default

# 引用HTTP proxy server视图serverb,并指定其为非缺省HTTP proxy server视图。

[Device-http-proxy-service-proxyservice-slot1] include server serverb

# 引用HTTP proxy server视图serverc,并指定其为非缺省HTTP proxy server视图。

[Device-http-proxy-service-proxyservice-slot1] include server serverc

(6)     开启HTTP proxy功能。

[Device-http-proxy-service-proxyservice-slot1] service enable

[Device-http-proxy-service-proxyservice-slot1] quit

[Device] quit

5. 验证配置

# 显示HTTP proxy server视图的配置信息。(以servera的配置为例,serverb以及serverc的配置相似)

[Sysname]display http-proxy server servera

  Server name: servera

  IPv6 address:                    2001::1

  Allowlist domain names:          testa.example.cn

  Protocol types:                  HTTPS at port 8001

  Failed extlink error codes:      N/A

  Excluded external domain name:   N/A

  Restore request header name:     N/A

  Replace response header name:    N/A

  Include external domain name:    N/A

  Include redirect domain name:    N/A

  Referer protection domain name:  N/A

    Allowlist:                     N/A

  Delete cookie flag:              N/A

  Restore request querystring:     Disabled

  Extlink href:                    Enabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

# 显示HTTP proxy服务视图的配置信息。

<Sysname> display http-proxy service proxyservice

HTTP proxy name: proxyservice

  IPv6 address:                    N/A

  Allowlist domain names:          N/A

  Protocol types:                  N/A

  SSL certificate directory:       N/A

  SSL certificate directory:       slot1#flash:/

  Domain name:                     testa.example.cn

    SSL certificate file:          certa.pem

    SSL key files:                 certa.key

  Domain name:                     testb.example.cn

    SSL certificate file:          certb.pem

    SSL key files:                 certb.key

  Domain name:                     testc.example.cn

    SSL certificate file:          certc.pem

    SSL key files:                 certc.key

  Hyperlink proxy strings:         N/A

  Failed extlink error codes:      N/A

  DNS servers:                     8.8.8.8

  Denylist domain names:           N/A

  Monitored keyword:               N/A

    Replaced by                    N/A

  Excluded external domain name:   N/A

  Include Server:                  servera

                                   serverb

                                   serverc

  IP pools:                        N/A

  Wildcard domain name:            example.cn

  Extlink href:                    Disabled

  URL protection:                  Disabled

  Referer protection:              Disabled

  Medialink proxy:                 Disabled

  Failed extlink inform:           Disabled

  Cache data:                      Disabled

    Cache file path:               N/A

  HTTP proxy operation recording:  Enabled

    Operation record file path:    slot1#flash:/httpproxy/20211111.log

    Max zone size                  4096MB

    Single file size               10MB

  Extlink encryption algorithm:    algx

  HTTP proxy status:               Enabled

以上显示信息表示HTTP proxy服务的参数已经正确配置,并且服务处于开启状态。

# 主机访问代理网站后,在设备上代理信息日志文件中查看HTTP proxy服务的代理信息。

<Device> more slot1#flash:/httpproxy/20211111.log

[11/Nov/2021:16:11:35 +0800]  Client=2001::4  URL=https://testa.example.cn/desert.jpg  Server=192.168.1.101:8001

[11/Nov/2021:16:11:35 +0800]  Client=2001::4  URL=https://testa.example.cn/config.js  Server=192.168.1.101:8001

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=https://testb.example.cn/config.js  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=https://testb.example.cn/desert.jpg  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=https://testc.example.cn/config.js  Server=192.168.1.102:8002

[11/Nov/2021:16:11:36 +0800]  Client=2001::4  URL=https://testc.example.cn/desert.jpg  Server=192.168.1.102:8002

主机能够正常访问代理网站,且服务代理信息记录正确,说明HTTP proxy服务生效。


4 HTTP proxy常见故障处理

4.1  HTTP proxy功能启动失败

1. 故障现象

HTTP proxy功能启动失败。

2. 故障分析

配置的IPv6地址和侦听端口已被其他功能使用。

3. 处理过程

当HTTP proxy的TCP侦听端口正在被其他应用侦听时,启动HTTP proxy会失败。可通过display tcp命令查看到当前正在被侦听的端口,并执行protocol-type(http-proxy service)命令修改HTTP proxy的TCP侦听端口号后,再开启HTTP proxy功能。

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

新华三官网
联系我们