Internet 内容适配协议 (Internet Content Adaptation Protocol, ICAP) 是一种类似于 HTTP 的轻型协议,用于将 HTTP 消息传输到第三方服务。服务器执行其转换服务以处理消息,并将响应发回到客户端,通常包含修改的消息。

有关 ICAP 的更多信息,请参见 RFC3507

支持 ICAP 通过 NSX Advanced Load Balancer 进行 HTTP 请求处理。通过在 NSX Advanced Load Balancer 中实施的 ICAP 客户端功能,支持以下用例:

  • 防病毒扫描 - 使用第三方防病毒扫描引擎

  • 内容清理 - 使用第三方内容清理服务

  • 使用 ICAP 服务的其他请求修改选项,例如 URL 筛选

为 NSX Advanced Load Balancer 配置 ICAP

作为 ICAP 客户端,NSX Advanced Load Balancer 支持以下功能:

  • 预览功能

  • 流式传输负载

  • 内容重写

以下是在 NSX Advanced Load Balancer 上为虚拟服务启用 ICAP 的主要配置组件:

  • 配置 ICAP 池组

  • 配置 ICAP 配置文件(附加到虚拟服务)

  • 为虚拟服务配置 HTTP 策略,并将操作设置为“启用 ICAP”

  • 将 ICAP 配置文件与虚拟服务相关联

  • 为 ICAP 配置 HTTP 安全策略

  1. 配置 ICAP 池组

    导航到应用程序 > 池组,然后创建一个池组。将池组故障设置下面的失败操作字段保留空白。



  2. 配置 ICAP 池

    导航以创建一个 ICAP 池。将默认端口配置为 1344。可以将多个服务器添加为池成员。

    1. 配置 ICAP 配置文件

      有关 ICAP 配置文件配置中使用的各种属性,请参阅下表:

      配置项

      描述

      示例

      名称

      该配置文件的名称

      ICAP-APPX

      指定与其关联的云对象

      Default-Cloud

      池组

      所有 ICAP 服务器池的池组

      ICAP-Pool-Group

      供应商

      供应商特定的配置(如果支持供应商)

      OPSWAT

      Generic-ICAP

      服务 URL

      ICAP 服务器服务 URL

      在使用 OPSWAT 时:/OMSScanReq-AV

      请求缓冲区大小

      请求正文的最大缓冲区大小

      默认值:51200 (50 MB)

      启用 ICAP 预览

      启用 ICAP 预览功能,ICAP 服务器可以检查预览大小负载以做出决策

      默认值:已启用(布尔值)

      预览大小

      ICAP 预览的负载大小

      默认值:5000 (5 MB)

      响应超时

      在达到该阈值时,请求将作为错误进行处理,并执行失败操作

      默认值:60000(60 秒)

      响应速度缓慢警告阈值

      在达到该阈值时,请求导致生成重要日志条目,但仍会处理该请求

      默认值:10000(10 秒)

      操作

      描述

      示例

      故障操作

      处理 ICAP 服务器错误。如果设置为“故障时关闭”,在出现错误时,将发送 503。

      故障时关闭/故障时打开

      大型上载失败操作

      处理“超过大小”错误。如果设置为“故障时关闭”,将发送错误 413。

      故障时关闭/故障时打开

      导航到虚拟服务 > 编辑 > ICAP 配置文件或模板 > 配置文件 > ICAP 配置文件以创建一个 ICAP 配置文件。



  3. 导航到应用程序 > 虚拟服务,选择所需的虚拟服务,然后选择 ICAP 配置文件(在上一步中创建的配置文件)。



  4. 创建 HTTP 安全策略

    创建一个安全策略以定义执行 ICAP 扫描时必须依据的规则。导航到应用程序 > 虚拟服务,选择所需的虚拟服务,然后单击编辑。选择策略 > HTTP 安全,然后使用以下选项创建一个新规则:

    • 选择 ICAP 请求的匹配条件

    • 选择启用 ICAP 以作为操作



    注:

    该步骤中配置的规则名称将显示在日志中。请指定自说明性的名称,以便于故障排除。

  5. 保存虚拟服务配置。

    在执行这些步骤后,虚拟服务的 ICAP 配置到此结束。虚拟服务上与 HTTP 安全策略的规则或匹配条件匹配的入站请求将使用 ICAP。

    NSX Advanced Load Balancer 支持以下 ICAP 服务器(第三方防病毒恶意软件/CDR 供应商):

    • OPSWAT

    • MetaDefender ICAP 服务器(具有 MetaDefender 内核)

    要设置 OPSWAT 服务器以进行 ICAP 扫描,请参见 OPSWAT 文档

限制

以下是 NSX Advanced Load Balancer 上的 ICAP 支持的限制:

  • HTTP/2 虚拟服务不支持 ICAP。

  • ICAP 客户端在响应上下文中不起作用。