我希望在 AWS 和 Palo-Alto 防火墙之间构建一个动态 AWS Virtual Private Network(AWS VPN)。
解决方法
先决条件
您必须拥有虚拟私有云(VPC),其 IP-CIDR 不能与本地网络重叠。此 VPC 必须与虚拟专用网关(VGW)关联或连接到中转网关(TGW)。
AWS 配置
1. 创建客户网关(CGW)。创建 CGW 时,您可以提供您的自治系统号(AS 编号)或选择默认选项。当您选择默认值时,AWS 会为您的 CGW 提供一个 AS 编号。
2. 创建站点到站点 VPN。对于 Gateway(网关),选择 VGW 或 TGW;对于 Routing options(路由选项),选择 Dynamic(动态)。
3. 从 AWS 管理控制台下载配置文件。
配置文件提供以下内容:
- AWS 公有 IP 和预共享密钥
- 您的 Palo-Alto 隧道接口的 IP 地址和 MTU 配置
- 要在 Palo-Alto 防火墙中配置的边界网关协议(BGP)配置和 BGP IP
Palo-Alto 配置
Palo-Alto 提供下一代防火墙,这些防火墙默认支持基于路由的 VPN。因此,当您在 Palo-Alto 和 AWS 之间创建 VPN 时,不需要使用代理 ID。
注意: IKE-crypto 和 IPsec-crypto 的以下加密、DH 组和身份验证设置保持不变。默认情况下,阶段 1 和阶段 2 设置的生命周期分别为 8 小时和 1 小时。
- 加密: AES-256-GCM
- DH 组: 20
- 身份验证: SHA-384
1. 使用上述算法创建 IKE-Crypto 配置文件。
2. 使用上述算法创建 IPsec-Crypto 配置文件。
3. 构建隧道接口。对于 IPv4,请提供隧道接口 IP。您可以在从 AWS 管理控制台下载的配置文件的第 3 部分中找到此项。在 Advanced(高级)下,将 MTU 设置为 1427。
4. 使用以下配置创建 IKE-Gateway:
- 对于 Version(版本),选择 IKEv2 only(仅 IKEv2);对于 Authentication(身份验证),选择 pre-shared key(预共享密钥)。
- 在高级部分中,确保已启用 NAT Traversal(NAT 遍历)。
- 选择您在步骤 1 中创建的 IKE-Crypto 配置文件。
- 每隔 5 秒启用存活检查。
5. 从 Network(网络)选项卡中,选择 IPsec Tunnels(IPsec 隧道),然后创建 IPsec 隧道。选择您在上一步中创建的隧道接口和 IKE-Gateway。
6. 提交更改。完成后,通过 SSH 访问防火墙,然后运行以下命令以开始 VPN 协商:
test vpn ike-sa gateway <IKE-Gateway-Name>
test vpn ipsec-sa tunnel <IPsec-Tunnel-Name>
在 GUI 界面的 IPsec Tunnels(IPsec 隧道)下,状态现在为绿色。
将 BGP 路由配置为 Palo-Alto
注意: AWS VPN 不支持正常重新启动和双向转发检测(BFD)。
首先,创建再分发配置文件。然后,使用以下设置配置 BGP:
1. 在 General(常规)选项卡上,选中复选框以启用 BGP。
2. 添加路由器 ID,然后输入 Palo-Alto AS 编号。
3. 在 Peer-group(对等组)选项卡上,选择 Create a new peer group(创建新对等组)。
4. 对于 Peer AS(对等 AS),输入 AWS AS 编号。对于 Peer address(对等地址),输入 AWS BGP IP。您可以在之前从 AWS 管理控制台下载的配置文件的第 4 部分中找到这两项编号。
4. 在 Connection options(连接选项)中,对于 keep-alive interval(保持连接间隔),选择 10 seconds(10 秒)。对于 Hold time(保持时间),选择 30 seconds(30 秒)。
5. 选择 R****edist rules(再分发规则)选项卡,然后创建再分发规则。在 Name(名称)中,选择您之前创建的再分发配置文件。然后,选择 Commit changes(提交更改)。
接下来,验证 BGP 是否已建立。
1. 依次选择 Network(网络)选项卡和 Virtual router(虚拟路由器)。
2. 选择 More run time stats(更多运行时统计信息),然后选择 BGP。在 Peer(对等)下,验证状态是否为 established(已建立)。
相关信息
如何下载 AWS Site-to-Site VPN 示例配置文件?