如果您需要在内部部署与 OCI 之间设置 OCI 站点到站点 VPN,并且不想使用 DRG 作为虚拟专用网络 (Virtual Private Network,VPN) 端点,而是您自己的定制 VPN 端点,则还可以使用此方法。
设置 OCI 站点到站点 VPN,并在两个 OCI 区域之间使用 Libreswan 作为客户终端设备 (CPE) 和另一端使用 DRG 进行静态路由。
我们将使用具有两个隧道且启用了同等成本多路径 (Equal Cost Multi-Path,ECMP) 的 IPSec VPN 连接两个不同的 OCI 区域。我们将在一个 OCI 区域中使用带有 Libreswan 软件的 CPE,并在另一个区域的 DRG 上配置的 OCI 站点到站点 VPN。
创建两个 OCI 区域。
OCI 区域 1(目标):
虚拟云网络 (VCN)
VCN 附加
在此区域中,DRG 将是 VPN 端点,所有流量都将使用 DRG 的 Internet 连接进行路由。
OCI 区域 2(源):
Internet 网关
在此区域中,Libreswan CPE(OCI 中的实例)将是 VPN 端点,所有流量都将使用互联网网关的 Internet 连接进行路由。
下图说明了到目前为止我们讨论的内容。
注:
请注意,Libreswan CPE 尚未在此映像上。
客户终端设备:
选择在任务 4 中创建的 CPE。
动态路由网关:
选择 DRG。
指向内部部署网络的路由:
输入要通过 IPSec 连接进行路由的
远程网络
。对于本教程,它是
10.222.10.0/24
网络。
向下滚动。
kernel.unknown_nmi_panic = 1
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens3.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.ens3.accept_redirects = 0
我们已经配置了 IPSec 隧道,现在还需要配置共享密钥,因为我们正在使用密钥进行验证。
在任务 5 中创建 OCI 站点到站点 VPN 时,会创建隧道,在此过程中,OCI 还为每个隧道生成共享密钥。要在 Libreswan 中获取和配置它们以匹配相同的共享密钥,我们需要返回到 OCI 控制台。
转到 OCI 控制台,导航到网络、客户连接、站点到站点 VPN 并单击配置的 VPN。
单击第一个隧道配置。
确保 /etc/ipsec.d/shared.secrets
文件包含以下内容。
143.xxx.xxx.xxx 193.xxx.xxx.xxx : PSK "1blwzMdgQ5XXXoiQwF96tqc7c7"
143.xxx.xxx.xxx 130.xxx.xxx.xxx : PSK "npLt23Ym6E1XXXhr5egvYSuzKC"
002 "tunnel1": terminating SAs using this connection
002 "tunnel1" #3: deleting state (STATE_QUICK_I2) aged 3.504567s and sending notification
005 "tunnel1" #3: ESP traffic information: in=0B out=0B
002 "tunnel1" #1: deleting state (STATE_MAIN_I4) aged 3.541172s and sending notification
002 "tunnel1": added IKEv1 connection
运行以下命令以启动 tunnel1
。
[root@cpe ipsec.d]# ipsec auto --up tunnel1
记下启动 tunnel1
时终端给出的输出。
002 "tunnel1" #5: initiating IKEv1 Main Mode connection
102 "tunnel1" #5: sent Main Mode request
104 "tunnel1" #5: sent Main Mode I2
106 "tunnel1" #5: sent Main Mode I3
002 "tunnel1" #5: Peer ID is ID_IPV4_ADDR: '193.122.0.91'
004 "tunnel1" #5: IKE SA established {auth=PRESHARED_KEY cipher=AES_CBC_256 integ=HMAC_SHA2_256 group=MODP1536}
002 "tunnel1" #6: initiating Quick Mode IKEv1+PSK+ENCRYPT+TUNNEL+PFS+UP+IKE_FRAG_ALLOW+ESN_NO+ESN_YES {using isakmp#5 msgid:b6364de1 proposal=AES_CBC_256-HMAC_SHA1_96-MODP1536 pfsgroup=MODP1536}
115 "tunnel1" #6: sent Quick Mode request
002 "tunnel1" #6: up-client output: vti interface "vti1" already exists with conflicting setting (perhaps need vti-sharing=yes ?
002 "tunnel1" #6: prepare-client output: vti interface "vti1" already exists with conflicting setting (perhaps need vti-sharing=yes ?
004 "tunnel1" #6: IPsec SA established tunnel mode {ESPinUDP=>0x5036cdcc <0x33c964f9 xfrm=AES_CBC_256-HMAC_SHA1_96 NATD=193.122.0.91:4500 DPD=passive}
请执行以下命令添加 tunnel2
。
[root@cpe ipsec.d]# ipsec auto --add tunnel2
记下添加 tunnel2
时终端给出的输出。
002 "tunnel2": terminating SAs using this connection
002 "tunnel2" #4: deleting state (STATE_QUICK_I2) aged 25.694856s and sending notification
005 "tunnel2" #4: ESP traffic information: in=0B out=0B
002 "tunnel2" #2: deleting state (STATE_MAIN_I4) aged 25.731704s and sending notification
002 "tunnel2": added IKEv1 connection
运行以下命令以启动 tunnel2
。
[root@cpe ipsec.d]# ipsec auto --up tunnel2
记下启动 tunnel2
时终端给出的输出。
002 "tunnel2" #7: initiating IKEv1 Main Mode connection
102 "tunnel2" #7: sent Main Mode request
104 "tunnel2" #7: sent Main Mode I2
106 "tunnel2" #7: sent Main Mode I3
002 "tunnel2" #7: Peer ID is ID_IPV4_ADDR: '130.61.66.255'
004 "tunnel2" #7: IKE SA established {auth=PRESHARED_KEY cipher=AES_CBC_256 integ=HMAC_SHA2_256 group=MODP1536}
002 "tunnel2" #8: initiating Quick Mode IKEv1+PSK+ENCRYPT+TUNNEL+PFS+UP+IKE_FRAG_ALLOW+ESN_NO+ESN_YES {using isakmp#7 msgid:aeb4eb18 proposal=AES_CBC_256-HMAC_SHA1_96-MODP1536 pfsgroup=MODP1536}
115 "tunnel2" #8: sent Quick Mode request
002 "tunnel2" #8: up-client output: vti interface "vti2" already exists with conflicting setting (perhaps need vti-sharing=yes ?
002 "tunnel2" #8: prepare-client output: vti interface "vti2" already exists with conflicting setting (perhaps need vti-sharing=yes ?
004 "tunnel2" #8: IPsec SA established tunnel mode {ESPinUDP=>0x8bef7076 <0xe27d84a0 xfrm=AES_CBC_256-HMAC_SHA1_96 NATD=130.61.66.255:4500 DPD=passive}
[root@cpe ipsec.d]#
运行以下命令以验证两个隧道的 IPSec 状态。
[root@cpe ipsec.d]# ipsec status
请注意,活动隧道已从 0 变为 2 。
如果要通过隧道从源 OCI 区域中同一子网中的其他实例路由所有流量,则需要在 VCN 路由表上添加静态路由。此路由将发往 172.16.0.0/24
的所有流量路由到 CPE 10.222.10.70
。
下图展示了到目前为止我们使用完整的路由表创建的内容。
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Set up an Oracle Cloud Infrastructure Site-to-Site VPN with Static Routing Between two OCI Regions
G14525-01
September 2024