注意:

使用 Oracle Interconnect for Microsoft Azure 最大限度提高 IPSec 带宽

简介

加密非常重要,本教程将向您展示如何在我们与世界各地的 Microsoft Azure 之间的互连区域中启用加密。

此冗余互连基于专用虚拟线路,即 Microsoft Azure 的 ExpressRoute 和 Oracle Cloud Infrastructure (OCI) 端的 FastConnect 专用连接上的低可预测网络延迟。默认情况下,这些专用虚拟线路不会加密。

本教程将使用 Oracle Interconnect for Microsoft Azure (Oracle Interconnect for Azure),添加来自 IPSec 隧道的加密,并说明如何最大限度地提高 IPSec 隧道上的带宽,因为这可能成为某些用例的限制因素。

注: OCI FastConnect 上的 IPSec 不仅限于此 Oracle Interconnect for Azure,还可以在任何 OCI FastConnect 上使用。我们刚刚将其用于本教程。

目标

通过 Microsoft Azure/OCI 互连创建加密隧道,以在组合的 IPSec 隧道上验证可能的网络带宽。要查找可能的位置,请参见 Interconnect for Azure

这些连接基于 Microsoft Azure ExpressRoute 和 OCI FastConnect。在创建这些互连时,它们使用的是专用虚拟线路,大多数情况下大多数客户都可以接受该线路,但有些客户要求对网络链路进行加密,本教程针对这些网络链路。

我们将在一个虚拟线路上创建 8 个 IPSec 隧道,以利用加密连接上的全部带宽,因为每个隧道的 IPSec 隧道可能无法达到与底层虚拟线路相同的每个隧道带宽。

此选项通过专用虚拟线路加密流量,也可以应用于我们与 Google Cloud 的互连,以及内部部署与 OCI 之间的 FastConnect 连接,但设置会有所不同。

逻辑网络设计

可以选择仅允许连接上的 IPSec 加密流量,或者允许同一虚拟线路上的未加密流量和加密流量。在本教程中,我们将允许互连,但仅允许加密流量到达 VCN1,并且允许未加密流量到达 OCI 中的 VCN2,这两种流量都来自 Microsoft Azure 中的源。

在实际实施中,对于对仅允许加密流量有严格要求的客户,在虚拟线路上仅允许 IPSec 流量的选项可能最合适。

逻辑网络设计

带宽:IPSec

IPSec 隧道尽可能快地加密和解密流量,但绑定到加密算法协议。加密算法协议由构建隧道的两个端点支持,需要经过 CPU 周期才能加密/解密,进而限制每秒通过隧道的流量。为了克服每个隧道的这一限制,可以创建多个隧道并利用等成本多路径 (Equal Cost Multi-Pathing,ECMP),如果两端都支持 ECMP,则可以在多个隧道上路由包。

注:单个网络流将仅使用一个隧道。要使用 ECMP,您需要将负载分布到不同的端点/端口,这在现实世界中通常是这种情况。一侧的多个端点连接到另一侧的多个端点。

在 IPSEC 流量上启用 ECMP

详细网络设置

下图显示了 Microsoft Azure 和 OCI 中的网络设置。Microsoft Azure 端由一个普通的集线器/辐条设置组成,其中网络网关位于集线器 vNet 中,并与分支 vNET(此处称为 azure-vNET)对等,后者在执行这些测试时充当源。在 OCI 端,通过 OCI FastConnect 使用 IPSec 进行设置需要为虚拟线路和 IPSec 附加创建单独的路由表。

详细的网络设置

流量流

为了只允许在 Microsoft Azure vNET 和 VCN1 之间进行加密流量,并允许在 VCN2 中进行未加密流量,我们在 OCI 中为 VCN1 和 VCN2 提供了单独的路由表,并且:

通信流显示在下图中。

详细的网络设置,包括网络流量

先决条件

任务 1:准备

下面是一些在进行准备设置时需要了解的信息。

Microsoft Azure ExpressRoute 网关

由于我们希望启用 FastPath 以最大限度降低 Microsoft Azure 与 OCI 之间的网络延迟,因此我们使用了超高性能 SKU,因此需要带宽至少为 5Gbps。有关 SKU 在 ExpressRoute 网关之间的差异的信息,请参见 https://learn.microsoft.com/en-us/azure/expressroute/expressroute-about-virtual-network-gateways.

Microsoft Azure VPN 网关

我们选择了一个 VPN 网关 SKU,可以处理我们计划推送的流量。VpnGw4 支持 5Gbps 吞吐量,我们将部署的互连虚拟线路也为 5Gbps。有关详细信息,请参阅关于 VPN 网关 SKU。当涉及到 VPN 网关时,一个重要的事情是启用专用 IP。无法在部署期间从 Microsoft Azure 门户启用专用 IP,因此需要先使用公共 IP 创建 VPN 网关,然后在部署后启用专用 IP。

在 VPN 的 VNG 中启用专用 IP

在 OCI 中,VCN1 和 VCN2 附件需要使用不同的路由表。

设置在此阶段应如下所示。

起点

任务 2:创建路由表和导入路由分配

创建这些路由表并导入路由分配。把它们都留空。

  1. 转到 OCI 控制台,导航到网络客户连接、动态路由网关DRG ,然后单击您的 DRG。

  2. 创建以下路由表并导入路由分配。

    • VCN1 路由表
    • VCN2 路由表
    • 虚拟线路路由表。
    • IPSec 路由表。
    • VCN1 导入路由。
    • VCN2 导入路由。
    • 虚拟线路导入路由。
    • IPSec 导入路由。

    将所有路由表留空并导入路由分配。

任务 3:为每个路由表分配正确的导入路由分配

单击每个路由表名称,编辑,选择启用导入路由分配,然后单击下拉菜单以选择正确的导入路由分配。对于 VCN1,我们还启用 ECMP。

映射

编辑后,分配应如下所示:

分配

任务 4:创建 Oracle Interconnect for Azure

按照以下文档进行操作: Setting Up a Connection

一个例外是,该文档未说明仅允许 IPSec 通信或允许所有通信的新功能。

互连接

由于本教程中我们计划允许虚拟线路上的加密流量和非加密流量,因此我们需要选择所有流量,其余流量是相同的。

任务 5:为 OCI FastConnect 和 VCN 指定路由表

由于默认值是为每个附件使用自动生成的路由表,因此我们需要将其更改为已创建的路由表。

附加名称 DRG 路线表
FastConnect 可变薪酬附件 虚拟线路路由表
VCN1 附件 VCN1 路由表格
VCN2 附件 VCN2 路由表格

为此,我们需要编辑附件。单击每个附件、编辑显示高级选项,然后为每个附件选择 DRG 路由表

VCN 附加的 DRG 路由表

VCN 应如下所示:

VCN 附件 - 路由表

虚拟线路应如下所示:

VCN 附件 - 路由表

任务 6:创建 IPSec VPN 隧道

OCI Site-to-Site VPN 连接在远程端使用一个 IP 地址(从 OCI 的角度来看,客户终端设备 (Customer-Premises Equipment,CPE)),并在 OCI 端的每个隧道使用一个 IP 地址。对于边界网关协议 (BGP) 会话,我们需要稍微调整设置,以便为要设置的四个 VPN 连接中的每个连接使用两个隧道。

  1. 获取 Microsoft Azure 虚拟网络网关 (VNG) VPN 专用 IP 地址。

    要查看 Microsoft Azure 端 VPN 网关的专用 IP,您需要单击查看更多。这将用于在 Microsoft Azure 端终止 VPN。

    专用 IP 1

    然后将显示专用 IP 地址。

    专用 IP 2

  2. 在 Microsoft Azure VNG 中创建 BGP IP。

    在 Microsoft Azure VPN 网关上创建 4x 自定义 APIPA BGP IP,每个 VPN 连接一个来自 OCI 端。

    APIPA BGP

  3. 在 OCI 中创建 CPE 设备。现在,我们知道 Microsoft Azure 站点的专用 CPE IP 将用于所有 VPN 隧道,我们将在 OCI 中的 Microsoft Azure 中使用专用 IP 创建 CPE 设备的虚拟表示形式,并且需要启用通过 FastConnect 允许 IPSec 。要启用此功能,请转至网络客户连接,然后单击客户内部部署设备

    创建 CPE

  4. 在 OCI 中创建站点到站点 VPN。

    转到网络客户连接站点到站点 VPN ,然后单击创建 IPSec 连接

    由于我们在 CPE 上启用了基于 OCI FastConnect 的 IPSec,因此需要指定新选项。

    • Oracle 端 IP(每个隧道的独立 IP,有关此设置,请参见下表)。
    • 关联的虚拟线路(对于所有隧道相同)。
    • IPSec 隧道的路由表(在本例中与所有隧道相同)。

    基于 FC 的 IPSec 设置

    在创建 IPSec 隧道时,我们将在 OCI 端使用这些前端专用 IP。

    Azure CPE IP VPN 连接名称 OCI 隧道名称 OCI 前端专用 IP
      VPN1 Tunnel1 192.168.1.1
      VPN1 Tunnel2 192.168.1.2
      VPN2 Tunnel3 192.168.1.3
    10.30.0.6 VPN2 Tunnel4 192.168.1.4
      VPN3 Tunnel5 192.168.1.5
      VPN3 Tunnel6 192.168.1.6
      VPN4 Tunnel7 192.168.1.7
      VPN4 Tunnel8 192.168.1.8

    从 OCI 端,这是用于 BGP 设置的配置:

    VPN 连接名称 隧道名 Azure APIPA BGP IP OCI APIPA BGP IP
    VPN1 Tunnel1 169.254.21.5/31 169.254.21.4/31
    VPN1 Tunnel2 169.254.21.5/30 169.254.21.6/30
    VPN2 Tunnel3 169.254.21.9/31 169.254.21.8/31
    VPN2 Tunnel4 169.254.21.9/30 169.254.21.10/30
    VPN3 Tunnel5 169.254.21.13/31 169.254.21.12/31
    VPN3 Tunnel6 169.254.21.13/30 169.254.21.14/30
    VPN4 Tunnel7 169.254.21.17/31 169.254.21.16/31
    VPN4 Tunnel8 169.254.21.17/30 169.254.21.18/30

    要与 Microsoft Azure 建立 VPN 连接,请使用标准文档(从创建 IPSec 连接开始),并记住以上有关基于 OCI FastConnect 的 IPSec 的特殊设置。有关更多信息,请参见 VPN Connection to Azure

    需要为所有 4 个 VPN 连接(8 个隧道)执行此操作。

任务 7:在 Microsoft Azure 中创建本地网络网关 (LNG)

LNG 是 OCI 中 VPN 端点的虚拟表示形式。使用下表中所示的参数创建 8 个 LNG。

公司简介

表中显示了所有 LNG 的参数。创建 LNG 时,使用了这些参数(启用 BGP 设置)。

名称 端点 IP 地址 ASN 编号 BGP 对等 IP 地址
OCI1 192.168.1.1 31898 169.254.21.4
OCI2 192.168.1.2 31898 169.254.21.6
OCI3 192.168.1.3 31898 169.254.21.8
OCI4 192.168.1.4 31898 169.254.21.10
OCI5 192.168.1.5 31898 169.254.21.12
OCI6 192.168.1.6 31898 169.254.21.14
OCI7 192.168.1.7 31898 169.254.21.16
OCI8 192.168.1.8 31898 169.254.21.18

下图显示了每个 VPN 连接的可视化表示形式。

VPN 连接表示

任务 8:在 Microsoft Azure 中创建 vng-VPN 与每个 LNG 之间的连接

  1. 转到 Site-to-Site VPN 页面,单击显示复制以从 OCI 控制台为每个隧道复制共享密钥 (PSK)。

    VPN 连接 2

  2. 在 Microsoft Azure 中,转到 vng-VPN 并创建与每个 LNG 的连接。

    VPN 连接 3

  3. 将共享密钥粘贴到每个连接的 Microsoft Azure 控制台中,然后单击下拉菜单以选择正确的 BGP 地址、VNG 和本地网络网关。我们在任务 6 中使用的 BGP IP。

    VPN 连接 4

    在此之后,所有的隧道都应该在几分钟内上升。在 Microsoft Azure 中验证:

    VPN 连接 5

    在 OCI 中验证:

    VPN 连接 6

任务 9:测试连接

现在是时候看看它是如何工作的了。We will test bandwidth from one Microsoft Azure VM to VMs in OCI, 4x VMs are placed within a VCN that only allow IPSec traffic and one VM in another VCN that allow unencrypted traffic through Microsoft Azure ExpressRoute/OCI FastConnect.

两端的 VM 都具有足够的核心来处理此网络带宽。我们将使用 TCP 协议作为测试场景,因为大多数应用程序都使用该协议。

我们了解网络延迟将影响带宽,但由于我们希望捕获带宽和不带 IPSec 的差异,因此不会引起注意。此处的目标不是显示最大带宽,而是了解在互连上使用 IPSec 加密与仅在不加密的情况下使用互连的影响。

在 OCI 端有 4 个 VM 用于 IPSec 流量的原因是,一个 VPN 隧道无法饱和我们用于互连的 5Gbps 虚拟线路,因此我们将使用 ECMP 将流量通过不同的 VPN 隧道分配给端点,每个端点具有其响应的不同 IP 和端口。在现实世界中也是如此,许多源端点与许多目标端点通信。

测试设置   1

对于带宽测试,我们将使用 iperf3https://iperf.fr/

OCI 端的服务器(监听端):

OCI VM1_a = $ iperf3 -s -p 5201
OCI VM1_b = $ iperf3 -s -p 5202
OCI VM1_c = $ iperf3 -s -p 5203
OCI VM1_d = $ iperf3 -s -p 5204
OCI VM2   = $ iperf3 -s -p 5201

任务 9.1:测试虚拟线路上的带宽

运行以下命令以测试从 Microsoft Azure VM 到 OCI VM2 的虚拟线路上的最大带宽。

$ iperf3 -c <OCIVM2 IP> -p 5201
Summary output:
[ ID]   Interval         Transfer     Bitrate         Retr
[  6]   0.00-10.00  sec  6.13 GBytes  5.27 Gbits/sec  336296  sender
[  6]   0.00-10.04  sec  6.12 GBytes  5.24 Gbits/sec          receiver

我们可以看到,我们利用了虚拟线路的 5Gbps 带宽,实现了 5.24Gbps。

测试 9.2:使用 ECMP 测试组合 IPSec 带宽

运行以下命令,在 IPSec 隧道(从 Microsoft Azure VM 到 OCI 上的 4x VM)上同时测试最大带宽。

$ iperf3 -c <OCIVM1_a IP> -p 5201 & iperf3 -c <OCIVM1_b IP> -p 5202 &
iperf3 -c <OCIVM1_c IP> -p 5203 & iperf3 -c <OCIVM1_d IP> -p 5204 &

这是我们所做的测试运行之一。

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.81 GBytes  1.56 Gbits/sec  4018   sender
[  5]   0.00-10.04  sec  1.81 GBytes  1.55 Gbits/sec         receiver

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.24 GBytes  1.07 Gbits/sec  32114  sender
[  5]   0.00-10.04  sec  1.24 GBytes  1.06 Gbits/sec         receiver

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.08 GBytes   931 Mbits/sec  1016   sender
[  5]   0.00-10.04  sec  1.08 GBytes   921 Mbits/sec         receiver

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.78 GBytes  1.53 Gbits/sec  63713  sender
[  5]   0.00-10.04  sec  1.78 GBytes  1.52 Gbits/sec         receiver

此测试运行的概要为 5.05Gbps(1.55 + 1.06 + 0.92 + 1.52)。如果我们在测试运行中获得平均值,我们得到 4.51Gbps。

带宽结果 1

因此,我们可以通过 OCI FastConnect 虚拟线路使用 IPsec 加密几乎所有的网络带宽。

任务 9.3:使用一个 IPSec 隧道测试带宽

在某些情况下,无法使用 ECMP(在其他端不支持),因此我们测量了可以从一个 IPSec 隧道中获取的带宽。Microsoft Azure 上的一个 VM 到 OCI 上的一个 VM。

以下是汇总表,其中显示了一个 IPSec 加密隧道的相当不错的网络带宽。

带宽结果 1 个隧道

我们现在表明,想要使用 IPSec 加密对 OCI FastConnect 链路上的网络流量进行加密的客户可以利用多个 VPN 隧道,并将 IPSec 流量的总带宽增加到仅超过一个 VPN 隧道,从而获得与底层虚拟线路几乎相同的总带宽。

确认

更多学习资源

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

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