使用Terraform管理IPsec VPN网关典型实践

私有网络 VPC

  • 产品定价
  • 功能发布记录
  • 产品描述
    • 相关概念
    • 产品特性
    • 使用限制
    • 产品优势
    • 产品介绍
    • 应用场景
  • 典型实践
    • Windows使用HAVIP配置主备多机
    • VPC自定义路由表实现流量安全互访
    • 配置自定义服务并使用服务网卡为其他VPC提供服务
    • 对等连接典型实践
    • 使用Terraform管理弹性网卡典型实践
    • 二层网关与专线接入ET组合构建IDC与云上VPC大二层网络
    • 网络层安全说明
    • 安全组配置实践(进阶篇)
    • HAVIP结合Keepalived实现主备多机高可用
    • 使用Keepalived在VPC实现高可用架构
    • 使用Terraform管理IPsec VPN网关典型实践
    • 安全组配置实践(入门篇)
  • 操作指南
    • 多用户访问控制
    • 子网
    • 网络拓扑
    • 使用IPv6
    • 标签管理
    • 路由表
    • VPC
    • 网卡
      • 高可用虚拟IP
      • 弹性网卡
      • 服务网卡
    • 网络诊断
      • 路径分析
      • 网关限速
      • 网络探测
      • 端口验通
      • 流量镜像
      • 流日志
    • 监控与运维
      • NAT网关实例诊断
    • 访问控制
      • ACL
      • 参数模版
      • 安全组
    • 网络连接
      • 二层网关
      • 专线网关
      • 对等连接
      • IPv6网关
      • VPN网关
        • SSL VPN网关
        • GRE VPN网关
        • IPsec VPN网关
      • NAT网关
        • 私网NAT网关
        • 公网NAT网关
  • 服务等级协议SLA
    • 服务网卡服务等级协议SLA
    • VPN网关服务等级协议SLA
    • IPv6网关服务等级协议SLA
    • 对等连接服务等级协议SLA
    • NAT网关服务等级协议SLA
  • API参考
    • 通用说明
    • 接口概览
    • API概述
    • 附录
    • 公共头和错误返回
    • 服务域名
    • API功能发布记录
    • ACL相关接口
      • 添加ACL规则
      • 更新ACL规则
      • 删除ACL规则
      • 查询ACL规则
      • 查询ACL
    • IPv6网关相关接口
      • IPv6网关带宽升降级
      • 创建IPv6网关
      • 更新IPv6网关限速策略
      • 删除Ipv6网关
      • 更新IPv6网关释放保护开关
      • 查询IPv6网关限速策略列表
      • 创建IPv6网关限速策略
      • 添加IPv6只出不进策略
      • 删除IPv6只出不进策略
      • 查询IPv6只出不进策略列表
      • 查询IPv6网关
      • 删除IPv6网关限速策略
    • 弹性网卡相关接口
      • 删除弹性网卡
      • 批量删除弹性网卡内网IP
      • 弹性网卡更新企业安全组
      • 创建弹性网卡
      • 弹性网卡卸载云产品实例
      • 删除弹性网卡辅助IP
      • 弹性网卡绑定EIP
      • 查询弹性网卡列表
      • 增加弹性网卡辅助IP
      • 弹性网卡更新普通安全组
      • 批量增加弹性网卡内网IP
      • 查询弹性网卡状态
      • 更新弹性网卡
      • 弹性网卡挂载云产品实例
      • 弹性网卡解绑EIP
      • 查询指定的弹性网卡
    • 参数模板相关接口
      • 创建IP地址族
      • 更新IP地址组
      • 查询指定的IP地址组
      • 更新IP地址族
      • 创建IP地址组
      • 查询IP地址族列表
      • 查询指定的IP地址族
      • IP地址组删除IP地址
      • IP地址组添加IP地址
      • 删除IP地址族
      • IP地址族移除IP地址组
      • 查询IP地址组列表
      • 删除IP地址组
      • IP地址族添加IP地址组
    • 子网相关接口
      • 更新子网
      • 创建预留网段
      • 查询预留网段列表
      • 删除预留网段
      • 查询指定子网
      • 创建子网
      • 查询子网列表
      • 删除子网
    • VPC相关接口
      • 关闭VPC中继
      • 删除VPC
      • 查询指定VPC
      • 创建VPC
      • 查询VPC列表
      • 查询VPC内产品占用IP
      • 开启VPC中继
      • 查询VPC内网IP
      • 更新VPC
    • 网关限速规则相关接口
      • 查看网关限速规则
      • 修改网关限速规则
      • 创建网关限速规则
      • 删除网关限速规则
    • 对等连接相关接口
      • 释放对等连接
      • 关闭对等连接同步DNS
      • 处理对等连接申请
      • 更新对等连接释放保护开关
      • 对等连接续费
      • 查看对等连接详情
      • 创建对等连接
      • 查询对等连接列表
      • 开启对等连接同步DNS
      • 对等连接带宽升降级
      • 更新对等连接本端接口名称和备注
    • 路由表相关接口
      • 查询路由规则
      • 删除路由规则
      • 主备切换
      • 创建路由规则
      • 更新路由规则
      • 查询路由表
    • VPN相关接口
      • VPN网关续费
      • 解绑EIP
      • 更新SSL-VPN用户
      • 删除VPN隧道
      • 查询VPN隧道
      • 删除SSL-VPN用户
      • 绑定EIP
      • 批量创建SSL-VPN用户
      • 更新VPN
      • 查询SSL-VPN用户
      • 删除SSL-VPN服务端
      • 释放VPN
      • 查询SSL-VPN服务端
      • 查询VPN列表
      • 更新SSL-VPN服务端
      • 更新VPN隧道
      • 创建VPN
      • 创建VPN隧道
      • 创建SSL-VPN服务端
      • 更新VPN释放保护开关
      • 查询VPN详情
    • 网络探测相关接口
      • 删除网络探测
      • 创建网络探测
      • 查询网络探测列表
      • 更新网络探测
      • 查询网络探测详情
    • NAT网关相关接口
      • 更新SNAT规则
      • 删除SNAT规则
      • 更新NAT网关名称
      • 查询NAT网关详情
      • 释放NAT网关
      • NAT网关解绑EIP
      • NAT网关绑定DNAT EIP
      • 创建SNAT规则
      • 创建DNAT规则
      • 更新DNAT规则
      • 更新NAT释放保护开关
      • NAT网关解绑DNAT EIP
      • 查询NAT网关列表
      • 删除DNAT规则
      • NAT网关绑定EIP
      • 查询SNAT规则
      • NAT网关绑定SNAT EIP
      • NAT网关续费
      • 批量创建DNAT规则
      • 批量创建SNAT规则
      • NAT网关变配
      • 查询DNAT规则
      • NAT网关解绑SNAT EIP
      • 创建NAT网关
    • 高可用虚拟IP相关接口
      • 高可用虚拟IP解绑EIP
      • 删除高可用虚拟IP
      • 高可用虚拟IP解绑实例
      • 高可用虚拟IP绑定EIP
      • 更新高可用虚拟IP
      • 查询指定的高可用虚拟IP
      • 创建高可用虚拟IP
      • 高可用虚拟IP绑定实例
      • 查询高可用虚拟IP列表
    • 服务网卡相关接口
      • 查询可挂载的公共服务
      • 查询服务网卡详情
      • 更新服务网卡
      • 查询服务网卡列表
      • 服务网卡更新企业安全组
      • 删除服务网卡
      • 服务网卡更新普通安全组
      • 创建服务网卡
    • 专线网关相关接口
      • 解绑物理专线
      • 创建专线网关
      • 绑定物理专线
      • 查询专线网关列表
      • 创建专线网关健康检查
      • 释放专线网关
      • 更新专线网关
      • 查询专线网关详情
    • 安全组相关接口
      • 普通安全组
        • 更新普通安全组规则
        • 删除普通安全组规则
        • 删除普通安全组
        • 授权普通安全组规则
        • 撤销普通安全组规则
        • 创建普通安全组
        • 查询普通安全组列表
        • 查看安全组详情
      • 企业安全组
        • 更新企业安全组规则
        • 创建企业安全组
        • 删除企业安全组规则
        • 授权企业安全组规则
        • 删除企业安全组
        • 查询企业安全组列表
  • 常见问题
    • 服务网卡常见问题
    • 路由表常见问题
    • VPC常见问题
    • NAT常见问题
    • 常见问题总览
    • VPN常见问题
  • VPC CLI
    • 路由表相关操作
    • VPC相关操作
    • 版本变更记录
    • 通过CLI使用VPC服务
    • 安装BCE-CLI
    • 配置BCE-CLI
    • 子网相关操作
  • SDK
    • Python-SDK
      • 企业安全组
      • VPN
      • 子网
      • ACL
      • IPv6Gateway
      • 高可用虚拟IP
      • 网络探测
      • 路由
      • 专线网关
      • 弹性网卡
      • VPC
      • 对等连接
      • 版本说明
      • NAT
      • 安装SDK工具包
      • 服务网卡
      • 安全组
      • 概述
    • Java-SDK
      • 企业安全组
      • VPN
      • 子网
      • ACL
      • 参数模版
      • 高可用虚拟IP
      • 网络探测
      • 专线网关
      • 弹性网卡
      • vpc
      • 对等连接
      • 版本说明
      • IPv6网关
      • NAT
      • 普通安全组
      • 安装SDK工具包
      • 服务网卡
      • Route
      • 概述
    • Go-SDK
      • VPN
      • 子网
      • 异常处理
      • ACL
      • IPv6Gateway
      • 高可用虚拟IP
      • 网络探测
      • 路由
      • 专线网关
      • 弹性网卡
      • VPC
      • 对等连接
      • 初始化
      • NAT
      • 安装SDK工具包
      • 服务网卡
      • 概述
      • 安全组
        • 企业安全组
        • 普通安全组
    • PHP-SDK
      • ACL
      • vpc
      • 对等连接
      • 版本说明
      • Subnet
      • NAT
      • 安装SDK工具包
      • Route
      • 安全组
      • 概述
所有文档
menu
没有找到结果,请重新输入

私有网络 VPC

  • 产品定价
  • 功能发布记录
  • 产品描述
    • 相关概念
    • 产品特性
    • 使用限制
    • 产品优势
    • 产品介绍
    • 应用场景
  • 典型实践
    • Windows使用HAVIP配置主备多机
    • VPC自定义路由表实现流量安全互访
    • 配置自定义服务并使用服务网卡为其他VPC提供服务
    • 对等连接典型实践
    • 使用Terraform管理弹性网卡典型实践
    • 二层网关与专线接入ET组合构建IDC与云上VPC大二层网络
    • 网络层安全说明
    • 安全组配置实践(进阶篇)
    • HAVIP结合Keepalived实现主备多机高可用
    • 使用Keepalived在VPC实现高可用架构
    • 使用Terraform管理IPsec VPN网关典型实践
    • 安全组配置实践(入门篇)
  • 操作指南
    • 多用户访问控制
    • 子网
    • 网络拓扑
    • 使用IPv6
    • 标签管理
    • 路由表
    • VPC
    • 网卡
      • 高可用虚拟IP
      • 弹性网卡
      • 服务网卡
    • 网络诊断
      • 路径分析
      • 网关限速
      • 网络探测
      • 端口验通
      • 流量镜像
      • 流日志
    • 监控与运维
      • NAT网关实例诊断
    • 访问控制
      • ACL
      • 参数模版
      • 安全组
    • 网络连接
      • 二层网关
      • 专线网关
      • 对等连接
      • IPv6网关
      • VPN网关
        • SSL VPN网关
        • GRE VPN网关
        • IPsec VPN网关
      • NAT网关
        • 私网NAT网关
        • 公网NAT网关
  • 服务等级协议SLA
    • 服务网卡服务等级协议SLA
    • VPN网关服务等级协议SLA
    • IPv6网关服务等级协议SLA
    • 对等连接服务等级协议SLA
    • NAT网关服务等级协议SLA
  • API参考
    • 通用说明
    • 接口概览
    • API概述
    • 附录
    • 公共头和错误返回
    • 服务域名
    • API功能发布记录
    • ACL相关接口
      • 添加ACL规则
      • 更新ACL规则
      • 删除ACL规则
      • 查询ACL规则
      • 查询ACL
    • IPv6网关相关接口
      • IPv6网关带宽升降级
      • 创建IPv6网关
      • 更新IPv6网关限速策略
      • 删除Ipv6网关
      • 更新IPv6网关释放保护开关
      • 查询IPv6网关限速策略列表
      • 创建IPv6网关限速策略
      • 添加IPv6只出不进策略
      • 删除IPv6只出不进策略
      • 查询IPv6只出不进策略列表
      • 查询IPv6网关
      • 删除IPv6网关限速策略
    • 弹性网卡相关接口
      • 删除弹性网卡
      • 批量删除弹性网卡内网IP
      • 弹性网卡更新企业安全组
      • 创建弹性网卡
      • 弹性网卡卸载云产品实例
      • 删除弹性网卡辅助IP
      • 弹性网卡绑定EIP
      • 查询弹性网卡列表
      • 增加弹性网卡辅助IP
      • 弹性网卡更新普通安全组
      • 批量增加弹性网卡内网IP
      • 查询弹性网卡状态
      • 更新弹性网卡
      • 弹性网卡挂载云产品实例
      • 弹性网卡解绑EIP
      • 查询指定的弹性网卡
    • 参数模板相关接口
      • 创建IP地址族
      • 更新IP地址组
      • 查询指定的IP地址组
      • 更新IP地址族
      • 创建IP地址组
      • 查询IP地址族列表
      • 查询指定的IP地址族
      • IP地址组删除IP地址
      • IP地址组添加IP地址
      • 删除IP地址族
      • IP地址族移除IP地址组
      • 查询IP地址组列表
      • 删除IP地址组
      • IP地址族添加IP地址组
    • 子网相关接口
      • 更新子网
      • 创建预留网段
      • 查询预留网段列表
      • 删除预留网段
      • 查询指定子网
      • 创建子网
      • 查询子网列表
      • 删除子网
    • VPC相关接口
      • 关闭VPC中继
      • 删除VPC
      • 查询指定VPC
      • 创建VPC
      • 查询VPC列表
      • 查询VPC内产品占用IP
      • 开启VPC中继
      • 查询VPC内网IP
      • 更新VPC
    • 网关限速规则相关接口
      • 查看网关限速规则
      • 修改网关限速规则
      • 创建网关限速规则
      • 删除网关限速规则
    • 对等连接相关接口
      • 释放对等连接
      • 关闭对等连接同步DNS
      • 处理对等连接申请
      • 更新对等连接释放保护开关
      • 对等连接续费
      • 查看对等连接详情
      • 创建对等连接
      • 查询对等连接列表
      • 开启对等连接同步DNS
      • 对等连接带宽升降级
      • 更新对等连接本端接口名称和备注
    • 路由表相关接口
      • 查询路由规则
      • 删除路由规则
      • 主备切换
      • 创建路由规则
      • 更新路由规则
      • 查询路由表
    • VPN相关接口
      • VPN网关续费
      • 解绑EIP
      • 更新SSL-VPN用户
      • 删除VPN隧道
      • 查询VPN隧道
      • 删除SSL-VPN用户
      • 绑定EIP
      • 批量创建SSL-VPN用户
      • 更新VPN
      • 查询SSL-VPN用户
      • 删除SSL-VPN服务端
      • 释放VPN
      • 查询SSL-VPN服务端
      • 查询VPN列表
      • 更新SSL-VPN服务端
      • 更新VPN隧道
      • 创建VPN
      • 创建VPN隧道
      • 创建SSL-VPN服务端
      • 更新VPN释放保护开关
      • 查询VPN详情
    • 网络探测相关接口
      • 删除网络探测
      • 创建网络探测
      • 查询网络探测列表
      • 更新网络探测
      • 查询网络探测详情
    • NAT网关相关接口
      • 更新SNAT规则
      • 删除SNAT规则
      • 更新NAT网关名称
      • 查询NAT网关详情
      • 释放NAT网关
      • NAT网关解绑EIP
      • NAT网关绑定DNAT EIP
      • 创建SNAT规则
      • 创建DNAT规则
      • 更新DNAT规则
      • 更新NAT释放保护开关
      • NAT网关解绑DNAT EIP
      • 查询NAT网关列表
      • 删除DNAT规则
      • NAT网关绑定EIP
      • 查询SNAT规则
      • NAT网关绑定SNAT EIP
      • NAT网关续费
      • 批量创建DNAT规则
      • 批量创建SNAT规则
      • NAT网关变配
      • 查询DNAT规则
      • NAT网关解绑SNAT EIP
      • 创建NAT网关
    • 高可用虚拟IP相关接口
      • 高可用虚拟IP解绑EIP
      • 删除高可用虚拟IP
      • 高可用虚拟IP解绑实例
      • 高可用虚拟IP绑定EIP
      • 更新高可用虚拟IP
      • 查询指定的高可用虚拟IP
      • 创建高可用虚拟IP
      • 高可用虚拟IP绑定实例
      • 查询高可用虚拟IP列表
    • 服务网卡相关接口
      • 查询可挂载的公共服务
      • 查询服务网卡详情
      • 更新服务网卡
      • 查询服务网卡列表
      • 服务网卡更新企业安全组
      • 删除服务网卡
      • 服务网卡更新普通安全组
      • 创建服务网卡
    • 专线网关相关接口
      • 解绑物理专线
      • 创建专线网关
      • 绑定物理专线
      • 查询专线网关列表
      • 创建专线网关健康检查
      • 释放专线网关
      • 更新专线网关
      • 查询专线网关详情
    • 安全组相关接口
      • 普通安全组
        • 更新普通安全组规则
        • 删除普通安全组规则
        • 删除普通安全组
        • 授权普通安全组规则
        • 撤销普通安全组规则
        • 创建普通安全组
        • 查询普通安全组列表
        • 查看安全组详情
      • 企业安全组
        • 更新企业安全组规则
        • 创建企业安全组
        • 删除企业安全组规则
        • 授权企业安全组规则
        • 删除企业安全组
        • 查询企业安全组列表
  • 常见问题
    • 服务网卡常见问题
    • 路由表常见问题
    • VPC常见问题
    • NAT常见问题
    • 常见问题总览
    • VPN常见问题
  • VPC CLI
    • 路由表相关操作
    • VPC相关操作
    • 版本变更记录
    • 通过CLI使用VPC服务
    • 安装BCE-CLI
    • 配置BCE-CLI
    • 子网相关操作
  • SDK
    • Python-SDK
      • 企业安全组
      • VPN
      • 子网
      • ACL
      • IPv6Gateway
      • 高可用虚拟IP
      • 网络探测
      • 路由
      • 专线网关
      • 弹性网卡
      • VPC
      • 对等连接
      • 版本说明
      • NAT
      • 安装SDK工具包
      • 服务网卡
      • 安全组
      • 概述
    • Java-SDK
      • 企业安全组
      • VPN
      • 子网
      • ACL
      • 参数模版
      • 高可用虚拟IP
      • 网络探测
      • 专线网关
      • 弹性网卡
      • vpc
      • 对等连接
      • 版本说明
      • IPv6网关
      • NAT
      • 普通安全组
      • 安装SDK工具包
      • 服务网卡
      • Route
      • 概述
    • Go-SDK
      • VPN
      • 子网
      • 异常处理
      • ACL
      • IPv6Gateway
      • 高可用虚拟IP
      • 网络探测
      • 路由
      • 专线网关
      • 弹性网卡
      • VPC
      • 对等连接
      • 初始化
      • NAT
      • 安装SDK工具包
      • 服务网卡
      • 概述
      • 安全组
        • 企业安全组
        • 普通安全组
    • PHP-SDK
      • ACL
      • vpc
      • 对等连接
      • 版本说明
      • Subnet
      • NAT
      • 安装SDK工具包
      • Route
      • 安全组
      • 概述
  • 文档中心
  • arrow
  • 私有网络VPC
  • arrow
  • 典型实践
  • arrow
  • 使用Terraform管理IPsec VPN网关典型实践
本页目录
  • 概览
  • 前提条件
  • 需求场景
  • 方案概述
  • 配置步骤
  • 环境准备
  • 部署过程
  • 查询VPN网关列表和IPSec隧道列表
  • 资源更新
  • 资源删除
  • 测试验证
  • 相关产品

使用Terraform管理IPsec VPN网关典型实践

更新时间:2025-08-22

概览

IPsec VPN网关是一种通过公网加密通道连接您的IDC和私有网络的方式。

vpc-vpn02.png

前提条件

  • 您已经注册了百度智能云账号。如未注册,请先完成账号注册。
  • 确保用户数据中心的网关设备支持IKEv1和IKEv2协议,支持这两种协议的本地网关设备均可以和云上VPN网关互连。
  • 用户数据中心的网关设备已经配置了静态公网IP。
  • 用户数据中心和VPC互通的网段没有重叠。
  • 您已经了解VPC中的安全组规则,并确保安全组规则允许用户数据中心的网关设备访问云上资源。具体操作,请参见查询安全组规则和添加安全组规则。

需求场景

某公司在百度智能云创建了VPC,网段为172.16.0.0/16。用户数据中心的网段为10.24.0.0/20,用户数据中心网关设备的公网IP为211.XX.XX.XX。公司因业务发展,需要用户数据中心与云上VPC互通。您可以通过IPsec-VPN网关和隧道,建立用户数据中心与云上VPC的连接,实现云上和云下的互通。

方案概述

如下图所示,用户可以使用IPSec VPN网关建立用户数据中心和百度智能云VPN的连接。

结构图.drawio.png

配置步骤

环境准备

Terraform:是一种安全有效地构建、更改和版本控制基础设施的工具。它以配置文件为驱动,您在文件中定义各种组件,Terraform会基于该文件完成所有组件的创建、变更和管理。目前百度智能云已与 Terraform集成,您可通过Terraform来创建、管理CFC、BOS、VPC、BCC等多种百度智能云资源,具体请参考Terraform BaiduCloud Provider。

部署过程

  1. 登录Terraform官网下载适用于您的操作系统的程序包。
  2. 配置terraform baidu provider信息,配置文件可参考如下的代码,在当前文件夹内保存为version.tf。
Plain Text
1    terraform {
2      required_providers {
3        baiducloud = {
4          source = "baidubce/baiducloud"
5          version = "1.15.6" #版本号 可去官网查询版本更新信息
6        }
7      }
8    }
  1. 执行命令terraform init,Terraform会根据当前文件夹内的version.tf文件初始化工作空间。
  2. 编辑Terraform配置文件。新建文件main.tf,在文件中指定VPC、子网、EIP、安全组、VPN网关、IPSec隧道、路由表的元信息。参考配置和步骤如下:

更多参数信息可参考baidu provider官方文档

  • 创建VPC
Plain Text
1resource "baiducloud_vpc" "vpc" {
2  name = "terraform_vpc"
3  cidr = "172.16.0.0/16"
4}
  • 创建子网并对应一个可用区 本示例使用的是华北-北京-可用区D
Plain Text
1resource "baiducloud_subnet" "subnet" {
2  name        = "terraform_subnet"
3  zone_name   = "cn-bj-d" 
4  cidr        = "172.16.32.0/20"
5  vpc_id      = baiducloud_vpc.vpc.id
6  description = "terraform test subnet"
7}
  • 创建EIP
Plain Text
1resource "baiducloud_eip" "eip" {
2  # EIP带宽
3  bandwidth_in_mbps = 1
4  billing_method    = "ByBandwidth"
5  payment_timing    = "Postpaid"
6}
  • 创建安全组
Plain Text
1resource "baiducloud_security_group" "sg" {
2  name        = "terraform-sg"
3  description = "security group created by terraform"
4  vpc_id      = baiducloud_vpc.vpc.id
5}
  • 创建安全组规则
Plain Text
1#这里是允许入方向的ICMP协议 本示例只进行ping测试 可根据实际情况开放端口和协议
2resource "baiducloud_security_group_rule" "sgr1_in" {
3  security_group_id = baiducloud_security_group.sg.id
4  remark            = "remark"
5  protocol          = "icmp"
6  port_range        = ""
7  direction         = "ingress"
8  source_ip         = "all"
9}
10# 出方向的ICMP协议开放
11resource "baiducloud_security_group_rule" "sgr1_out" {
12  security_group_id = baiducloud_security_group.sg.id
13  remark            = "remark"
14  protocol          = "icmp"
15  port_range        = ""
16  direction         = "egress"
17  source_ip         = "all"
18}
  • 创建VPN网关
Plain Text
1resource "baiducloud_vpn_gateway" "vpn_gateway" {
2  # 等待EIP创建完成再创建VPN网关
3  depends_on     = [baiducloud_eip.eip]
4  vpn_name       = "test_vpn_gateway"
5  vpc_id         = baiducloud_vpc.vpc.id
6  description    = "test desc"
7  # 付费方式Prepaid预付费 Postpaid后付费
8  payment_timing = "Postpaid"
9  # 绑定弹性公网IP
10  eip            = baiducloud_eip.eip.eip
11}
  • 创建IPSec隧道
Plain Text
1resource "baiducloud_vpn_conn" "vpn_conn" {
2  vpn_id        = baiducloud_vpn_gateway.vpn_gateway.id
3  # 共享密钥是用于验证IPsec连接的Unicode字符串,本端和对端必须使用相同的预共享密钥
4  secret_key    = "ddd22@www"
5  # 本端IP 百度智能云VPC中需要进入VPN隧道的子网 本示例填入创建的子网的IP地址
6  local_subnets = [
7    baiducloud_subnet.subnet.cidr
8  ]
9  # 对端网关是指用户数据中心的 IPsec VPN 服务网关 对端网关需与百度智能云VPN网关配合使用。
10  remote_ip      = "211.xx.xx.xx"
11  # 对端需要通过VPN隧道连通的网段
12  remote_subnets = [
13    "10.24.0.0/20"
14  ]
15  description   = "test VPN conn"
16  vpn_conn_name = "vpnconn"
17  ike_config    = {
18    # 选择IKE协议的版本,目前支持IKE V1和IKE V2
19    ike_version   = "v1"
20    # 选择IKE V1版本的协商模式。
21    # 主模式(main):协商过程安全性高。
22    # 野蛮模式(aggressive):协商快速且协商成功率高。
23    # 协商成功后两种模式的信息传输安全性相同。
24    ike_mode      = "main"
25    # 选择第一阶段协商使用的加密算法 支持aes、aes192、aes256和3des
26    ike_enc_alg   = "aes"
27    # 第一阶段协商使用的认证算法 支持sha1、md5、sha2_256、sha2_384和sha2_512
28    ike_auth_alg  = "sha1"
29    # 选择第一阶段协商的Diffie-Hellman密钥交换算法
30    ike_pfs       = "group2"
31    # 设置第一阶段协商出的SA的生存周期 默认值为28800秒
32    ike_life_time = 28800
33  }
34  ipsec_config = {
35    # 选择第二阶段协商的加密算法 支持aes、aes192、aes256和3des
36    ipsec_enc_alg   = "aes"
37    # 选择第二阶段协商的认证算法 支持sha1、md5、sha2_256、sha2_384和sha2_512 
38    ipsec_auth_alg  = "sha1"
39    # 选择第二阶段协商的Diffie-Hellman密钥交换算法
40    ipsec_pfs       = "group2"
41    # 设置第二阶段协商出的SA的生存周期。默认值为28800秒
42    ipsec_life_time = 28800
43  }
44}
  • 创建路由表
Plain Text
1resource "baiducloud_route_rule" "route_rule" {
2  route_table_id      = baiducloud_vpc.vpc.route_table_id
3  # 源IP地址 本示例中为用户创建的子网的IP地址
4  source_address      = baiducloud_subnet.subnet.cidr
5  # 目的IP地址 本示例中为用户数据中心的IP地址
6  destination_address = "10.24.0.0/20"
7  # 下一跳实例
8  next_hop_id         = baiducloud_vpn_gateway.vpn_gateway.id
9  # 下一跳类型 本示例中应该为VPN
10  next_hop_type       = "vpn"
11  description         = "created by terraform"
12}
  1. 执行命令terraform plan,Terraform会根据当前配置文件中的信息列出资源变更计划。
  2. 执行命令terraform apply,根据提示输入yes,即自动执行资源创建。

查询VPN网关列表和IPSec隧道列表

Plain Text
1data "baiducloud_vpn_gateways" "default" {
2  # 此处填入VPC ID即可查询VPC下所有的网关列表及详细信息
3  vpc_id = "vpc-xxxxxxx"
4}
5data "baiducloud_vpn_conns" "default" {
6  # 此处填入VPN ID即可查询VPN关联的IPSec隧道的详细信息
7  vpn_id = "vpn-xxxxxxx"
8}

可使用filter在结果中过滤资源,示例代码

Plain Text
1# 可使用正则表达式过滤 下面的代码块的效果是在结果中过滤name符合表达式 tf-test-VPN-* 的资源
2filter {
3   name = "name"
4   values = ["tf-test-VPN-*"]
5}

资源更新

可修改main.tf文件中有关VPN网关和VPN隧道的配置参数,然后执行资源创建步骤5和步骤6即可完成资源的更新。

资源删除

可使用如下命令进行资源的删除:

Plain Text
1    #命令默认会释放当前main.tf中的所有资源
2    terraform destroy 
3    #可以通过 -target 选项销毁特定的资源,格式为:-target=<资源类型>.<资源名称>,例如:
4    terraform destroy -target baiducloud_vpn_gateway.test-vpn

测试验证

在完成全部配置后,可通过下面的定义,通过Terraform在子网内创建一台BCC实例,去测试网络之间的连通性,确定安全组规则生效之后,可使用ping命令检测连通性:

-$ ping 10.24.x.x

Plain Text
1# BCC创建示例 具体规格参数可根据需要灵活配置
2data "baiducloud_images" "images" {
3  image_type = "System"
4  name_regex = "8.4 aarch"
5  os_name    = "CentOS"
6}
7resource "baiducloud_instance" "server1" {
8  # 可用区 本示例创建的是华北-北京-可用区D的子网 此处可用区应和子网保持一致
9  availability_zone = "cn-bj-d"
10  # BCC规格
11  instance_spec     = "bcc.gr1.c1m4"
12  # 镜像ID 使用的是CentOS 8.4 aarch镜像
13  image_id          = data.baiducloud_images.images.0.id
14  # 付费类型
15  billing           = {
16    payment_timing = "Postpaid"
17  }
18  # 子网ID 通过Terraform创建的子网
19  subnet_id       = baiducloud_subnet.subnet.id
20  # 安全组 通过Terraform创建的安全组
21  security_groups = [baiducloud_security_group.sg.id]
22}

同时,用户数据中心内的设备应该也能够与VPC的实例连接。

至此,通过IPSec VPN的方式,成功实现用户数据中心连接到云平台内部的资源,实现了云上和云下的互通。

相关产品

VPN网关、私有网络VPC、云服务器BCC、弹性公网IP

上一篇
使用Keepalived在VPC实现高可用架构
下一篇
安全组配置实践(入门篇)