注意:

衡量 Oracle Cloud Infrastructure Web Application Firewall 延迟对 Oracle Cloud Infrastructure Load Balancer 的影响

简介

在本教程中,我们使用高性能 HTTP 负载测试工具 Siege 对 OCI 负载平衡器上的 Oracle Cloud Infrastructure Web Application Firewall (OCI WAF) 性能影响进行基准测试。

通过在启用或不启用 OCI WAF 的情况下对 OCI 负载平衡器运行围攻测试,我们可以衡量关键性能指标,例如延迟、吞吐量、事务处理速率和并发性。其目标是了解 OCI WAF 引入的开销,并确定其在安全性和性能之间的权衡。

此基准测试有助于了解 OCI WAF 是否会对响应时间产生重大影响,以及在高流量环境中增加安全性的优势是否超过性能成本。

简介

在本教程中,我们将部署一个带有附加区域 OCI WAF 的专用 OCI 负载平衡器,以分析其对延迟的影响。体系结构包括:

为什么本教程至关重要?

安全性和性能是现代云应用的两个关键因素。尽管 OCI WAF 有助于抵御网络威胁,但它可能会带来影响用户体验的其他延迟。了解 OCI WAF 如何通过端到端 TLS 影响 OCI 负载平衡器的性能,对于旨在优化安全性和响应性的架构师和工程师来说至关重要。

本教程提供了一种实用的方法来衡量 OCI WAF 诱导的延迟。有关 OCI WAF 的更多信息,请参阅 OCI WAF

什么是 Oracle Cloud Infrastructure Flexible Network Load Balancer?

OCI 中的灵活负载平衡器是一项全托管式服务,可在多个后端服务器之间自动分配 HTTP、HTTPS 和 TCP 流量。它提供可扩展性、高可用性和流量管理,无需手动干预。OCI Flexible Network Load Balancer 可以轻松配置 SSL/TLS 终止、OCI WAF 集成和高级路由功能,以满足现代应用的需求。有关详细信息,请参阅 Oracle Cloud Infrastructure Flexible Network Load Balancer

体系结构

此架构设计说明了一个基于 Siege HTTPS 基准实用程序的客户端虚拟机 (VM),该虚拟机连接到一个专用负载平衡器,该负载平衡器将附加一个本地/区域 OCI WAF,以及三个使用 HTTPS 的不同 Apache Tomcat 后端服务器。我们将使用和不使用 OCI WAF 测试负载平衡器。

体系结构

目标读者

本教程面向云架构师、DevOps 工程师以及使用 OCI Load Balancer 和 OCI WAF 的安全专业人员。如果您需要在不影响性能的情况下优化安全性,可以使用本教程。

目标

先决条件

任务 1:部署网络组件(VCN、子网、OCI 负载平衡器和 OCI WAF)

  1. 使用您选择的 IPv4 CIDR 或遵循建议的体系结构,在租户中部署至少具有三个子网(围困、负载平衡器和 WebTier)的虚拟云网络 (VCN)。有关详细信息,请参见以下主题:

  2. 在 OCI 负载平衡器子网中部署具有 WAF 的 OCI 灵活网络负载平衡器。有关详细信息,请参见以下主题:

对于此测试,我们已经加载了 OCI WAF 策略,其中至少包含 300 个建议保护规则,如下所示:

WAF 保护规则

任务 2:在子网中部署 VM 以进行测试

我们需要部署 Oracle Linux 9 映像,以便稍后将 HTTP 基准测试工具 Siege 以及 Apache Tomcat 作为后端服务器进行安装。

要创建 VM,请参阅本文档:部署 OCI 实例

您需要在客户端子网中部署一个用于围城的 VM。

任务 3:在 Oracle Linux 上安装隔离

  1. 在 Oracle Linux 中启用适用于 Enterprise Linux (EPEL) 的额外软件包系统信息库。有关更多信息,请参见 How to Enable EPEL Repository on Oracle Linux 8/9

  2. 以 root 用户身份运行以下命令来安装 Siege。

    yum install siege
    

    安装 Siege

  3. 运行以下命令以验证 Siege 版本。

    siege -v
    

    您应该会看到当前 Siege 版本以及其他帮助命令。

任务 4:在 Oracle Linux 上安装 Apache Tomcat

此时,我们有一个 OCI 灵活网络负载平衡器,未配置后端服务器。现在,我们将在 Oracle Linux 8 或 9 上安装 Linux 版本的 Apache Tomcat。

  1. 在 Web 专用子网中部署两个或三个 linux VM。有关详细信息,请参阅部署 OCI 实例

  2. 将 Apache Web 服务器安装到这些 VM 中。有关更多信息,请参见 Install the Apache Web ServerInstalling Tomcat on Oracle Linux in Oracle Cloud

  3. 启动并运行 Apache Web 服务器后,请确保 OCI 负载平衡器子网可以访问 Web 专用子网,从而允许从 OCI 负载平衡器子网将 HTTPS 流量传输到 Web 专用子网(端口 443)。现在,要添加后端服务器,请参阅任务 3:配置 OCI 负载平衡器的步骤 8。

  4. 转到 OCI 控制台,导航到网络负载平衡器负载平衡器负载平衡器详细信息后端集后端集详细信息并单击后端,应看到两个后端服务器。

    Bacnend 服务器

    现在,使用和不使用 OCI WAF 来测试 OCI 负载平衡器性能。

任务 5:围困基准分析—具有 OCI WAF 和没有 OCI 负载平衡器性能

现在,我们已经配置了 OCI 负载平衡器和 OCI WAF 以及后端服务器,我们需要采取一些初始步骤来使 Siege 通过 HTTPS 连接工作。

我们使用实验室认证机构 (CA) 证书对安装在 OCI 负载平衡器和后端服务器上的服务器证书进行签名。但是,我们只需关注 OCI 负载平衡器的服务器证书,因为 OCI 负载平衡器将终止 TLS 连接并与后端服务器建立第二个 TLS 连接。第二个连接对 Siege(客户端)是透明的。

例如,CA 证书文件名为 my-ca.crt

  1. my-ca.cert 上载到 Linux 计算机并运行 sudo cp my-ca.crt /etc/pki/ca-trust/source/anchors/ 命令。这将将 CA 复制到可信 CA 存储中。

  2. 运行以下命令以更新可信 CA 存储。

    sudo update-ca-trust extract
    

    或者如果您使用的是 Oracle Linux 9,

    sudo update-ca-trust
    
  3. 运行以下命令以验证安装。

    openssl verify /etc/pki/ca-trust/source/anchors/my-ca.crt
    

    列出所有可信证书。

    trust list | grep "my-ca"
    
  4. 现在,当 Siege 通过 HTTPS 连接到 OCI 负载平衡器时,它将能够验证收到的证书。我们使用 www.fwtest.com 作为通用名称 (Common Name,CN) 和主体替代名称 (Subject Alternative Name,SAN)。

    由于我们未使用专用 DNS,因此只需将以下条目添加到您的 Linux 文件 /etc/hosts 文件中:

    LB 专用 IP www.fwtest.com

    例如:

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4\
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\
    192.168.4.99 linux9-siege-intravcntest-v2.siegesubnet.vcn1inter.oraclevcn.com linux9-siege-intravcntest-v2\
    192.168.6.237  www.fwtest.com  <--- Add this entry
    
  5. 要获取负载平衡器专用 IP,请导航到网络负载平衡器负载平衡器,然后单击负载平衡器详细信息

    安装 Siege

  6. 如果要测试 TLS 连接(包括之前安装的 OCI 负载平衡器服务器证书),请运行以下命令:

    openssl s_client -connect www.fwtest.com:443 -tls1_2
    

    你会得到类似的东西:

    LB 连接检查

  7. 使用随机 HTTP 标头大小对 250 个并发 HTTPS 客户端 Siege 进行首次测试。

    siege -c 250  -t1m --header="User-Agent: $(head -c 500 </dev/urandom | base64)"  https://www.fwtest.com/request.php
    
    Lifting the server siege...\
    Transactions:              237238    hits\
    Availability:                 100.00 %\
    Elapsed time:                  60.79 secs\
    Data transferred:             192.67 MB\
    **Response time:                 27.81 ms**\
    **Transaction rate:            3902.58 trans/sec**\
    **Throughput:                     3.17 MB/sec**\
    Concurrency:                  108.51\
    **Successful transactions:   237421**\
    Failed transactions:            0\
    Longest transaction:          440.00 ms\
    Shortest transaction:           0.00 ms\
    

    现在,在不使用 OCI WAF 的情况下运行相同的命令。

    Lifting the server siege...
    Transactions:              238843    hits\
    Availability:                 100.00 %\
    Elapsed time:                  60.54 secs\
    Data transferred:             193.98 MB\
    **Response time:                 17.97 ms**\
    **Transaction rate:            3945.21 trans/sec**\
    **Throughput:                     3.20 MB/sec**\
    Concurrency:                   70.88\
    **Successful transactions:   239018**\
    Failed transactions:            0\
    Longest transaction:          540.00 ms\
    Shortest transaction:           0.00 ms\
    

OCI WAF 的性能影响(围困基准)

关键度量比较:

度量 使用 OCI WAF 无 OCI WAF 影响
事务处理 237,238 238,843 -1,605 (-0.67%)
可用性 (%) 100.00 100.00 未更改
已用时间(秒) 60.79 60.54 +0.25s
传输的数据 (MB) 192.67 193.98 -1.31 MB (-0.68%)
响应时间(毫秒) 27.81 17.97 +9.84 米 (+54.8%)
事务处理速率(事务处理/秒) 3,902.58 3,945.21 -42.63 每秒的事务处理数 (-1.08%)
吞吐量(MB/秒) 3.17 3.20 -0.03 MB/秒 (-0.94%)
并发 108.51 70.88 +37.63(OCI WAF 高出 53.1%)

意见和主要要点:

小结

Note: The test results obtained using Siege depend highly on various factors, including network conditions, hardware/software configurations, and software settings specific to your environment. As such, these results may differ significantly from those in other environments. Do not use these results to make any definitive conclusions about the expected performance of your network or equipment. They should be considered as indicative rather than absolute measures of performance.

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心