第三方SD-WAN设备对接转发路由器实现IDC与VPC互通

本文介绍第三方SD-WAN设备如何对接转发路由器实现本地数据中心IDC(Internet Data Center)与阿里云专有网络VPC(Virtual Private Cloud)互通。

场景示例

说明

以下文档包含第三方产品信息,第三方产品信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

本文以下图场景为例。某企业在中国上海地域拥有本地IDC1和本地IDC2,在阿里云华东2(上海)地域拥有服务VPC1,在阿里云华东1(杭州)地域拥有服务VPC2,企业需要本地IDC1、本地IDC2、阿里云服务VPC1、阿里云服务VPC2之间互相通信。企业希望本地IDC1和本地IDC2可以通过第三方SD-WAN设备与阿里云对接,以便在第三方SD-WAN设备上做访问控制策略确保本地IDC1和本地IDC2安全地接入阿里云。同时,企业希望阿里云和本地IDC之间可以实现路由的自动分发和学习,减少路由维护工作。

企业可以通过VPN连接将第三方SD-WAN设备直接连接至转发路由器,本地IDC通过第三方SD-WAN设备和转发路由器实现与VPC之间的通信。同时,在转发路由器、第三方SD-WAN设备、本地IDC1、本地IDC2上均运行BGP动态路由协议,实现路由的自动分发和学习。

SD-WAN场景示例

网络规划

网络功能规划

  • 在一个独立VPC中(本文指安全VPC)创建一个ECS(Elastic Compute Service)实例,通过在ECS实例中安装第三方镜像部署一个第三方SD-WAN设备。

    本文通过在安全VPC的ECS实例中安装FortiGate V6.2.4版本镜像来部署一个第三方SD-WAN设备。

  • 第三方SD-WAN设备和转发路由器之间可以使用VPN连接进行直接连接,其中VPN连接为私网网关类型。

  • 第三方SD-WAN设备和转发路由器之间使用BGP动态路由协议传播路由,实现路由的自动分发和学习。

  • 第三方SD-WAN设备分别与本地IDC1和本地IDC2建立IPsec-VPN连接,将本地IDC1和本地IDC2接入阿里云。

    第三方SD-WAN设备与本地IDC1、本地IDC2通过ADVPN(Auto Discovery VPN)功能建立全互联的IPsec-VPN连接。关于ADVPN功能的更多信息,请参见Fortinet帮助文档

  • 第三方SD-WAN设备与本地网关设备1和本地网关设备2均使用BGP动态路由协议,建立iBGP邻居关系,实现路由的自动分发和学习。

    本文中本地网关设备1和本地网关设备2均使用Fortinet设备,并安装FortiGate V6.2.4版本镜像。

网段规划

重要

在您规划网段时,请确保要互通的网段之间没有重叠。

表 1. 基础网段规划

资源

网段及IP地址

服务VPC1

  • 主网段:10.2.0.0/16

  • 交换机1:10.2.1.0/24,交换机1位于可用区F

  • 交换机2:10.2.2.0/24,交换机2位于可用区G

  • ECS1 IP地址:10.2.1.10,ECS1位于交换机1下

  • ECS2 IP地址:10.2.2.190,ECS2于交换机2下

服务VPC2

  • 主网段:10.1.0.0/16

  • 交换机1:10.1.1.0/24,交换机1位于可用区I

  • 交换机2:10.1.2.0/24,交换机2位于可用区H

  • ECS1 IP地址:10.1.1.10,ECS1位于交换机1下

  • ECS2 IP地址:10.1.2.191,ECS2于交换机2下

安全VPC

  • 主网段:172.16.0.0/16

  • 交换机1:172.16.0.0/24,交换机1位于可用区F

  • 交换机2:172.16.1.0/24,交换机2位于可用区G

  • ECS IP地址(第三方SD-WAN设备):172.16.0.15,ECS位于交换机1下

  • ECS拥有公网IP地址:42.XX.XX.129。

本地IDC1

  • 本地网关设备1公网IP地址:121.XX.XX.211。

  • 本地网关设备1接口:

    • port1接口:IP地址为192.168.100.5,子网掩码255.255.255.0。用于与第三方SD-WAN设备建立BGP邻居关系。

    • loopback接口:IP地址为192.168.254.100,子网掩码255.255.255.0。用于模拟本地IDC1中需要与云上互通的客户端。

本地IDC2

  • 本地网关设备2公网IP地址:121.XX.XX.78。

  • 本地网关设备2接口:

    • port1接口:IP地址为192.168.99.4,子网掩码255.255.255.0。用于与第三方SD-WAN设备建立BGP邻居关系。

    • loopback接口:IP地址为192.168.254.104,子网掩码255.255.255.0。用于模拟本地IDC2中需要与云上互通的客户端。

表 2. BGP相关地址规划

资源

BGP AS号

本端BGP IP地址

对端BGP IP地址

第三方SD-WAN设备和转发路由器之间的BGP配置

IPsec连接

65531

169.254.20.1

169.254.20.2

第三方SD-WAN设备

65534

169.254.20.2

169.254.20.1

第三方SD-WAN设备和本地IDC1之间的BGP配置

本地IDC1

65534

169.254.10.10

169.254.10.1

第三方SD-WAN设备

65534

169.254.10.1

169.254.10.10

第三方SD-WAN设备和本地IDC2之间的BGP配置

本地IDC2

65534

169.254.10.11

169.254.10.1

第三方SD-WAN设备

65534

169.254.10.1

169.254.10.11

准备工作

在开始配置前,请确保已完成以下操作:

  • 您已经在华东2(上海)地域创建了服务VPC1和安全VPC,在华东1(杭州)地域创建了服务VPC2,并使用ECS部署了相关业务。具体操作,请参见搭建IPv4专有网络

    • 对于服务VPC1和服务VPC2中的ECS实例,请根据您的业务需求部署相关应用。

    • 对于安全VPC中的ECS实例,您需要在ECS实例中安装第三方镜像(本文安装的为FortiGate V6.2.4版本镜像),将其部署为第三方SD-WAN设备,并确保第三方SD-WAN设备拥有公网IP地址。您可以通过云市场在ECS实例中安装第三方镜像。更多信息,请参见使用云市场镜像

  • 您已经创建了云企业网实例。具体操作,请参见创建云企业网实例

配置流程

SD-WAN-配置流程

步骤一:创建转发路由器实例

通过云企业网实现本地IDC和VPC相互通信前,您需要在华东2(上海)地域和华东1(杭州)地域分别创建一个转发路由器实例,并为华东2(上海)地域的转发路由器实例分配转发路由器地址段,用于后续创建VPC连接和VPN连接。

  1. 登录云企业网管理控制台
  2. 云企业网实例页面,选择在准备工作中创建的云企业网实例,单击云企业网实例ID。

  3. 基本信息 > 转发路由器页签,单击创建转发路由器

  4. 创建转发路由器对话框,配置转发路由器实例信息,然后单击确认

    下表仅列举本文强相关的配置项,其余配置项保持默认状态。如果您需要了解更多信息,请参见转发路由器地址段

    配置项

    说明

    华东2(上海)地域

    华东1(杭州)地域

    地域

    选择转发路由器实例所属的地域。

    本文选择华东2(上海)地域。

    本文选择华东1(杭州)地域。

    版本

    转发路由器实例的版本。

    系统自动判断并显示当前地域下转发路由器实例的版本。

    开通组播

    选择是否打开转发路由器实例的组播功能。

    本文保持默认值,即不打开组播功能。

    名称

    输入转发路由器实例的名称。

    本文输入TR-shanghai

    本文输入TR-hangzhou

    TR地址段

    输入转发路由器地址段。

    转发路由器地址段是您为转发路由器自定义的一个地址段,该地址段类似为路由器环回口(Loopback接口)分配IP地址的地址段。转发路由器地址段被用于为IPsec连接分配地址。更多信息,请参见转发路由器地址段

    本文输入10.10.10.0/24

    本文不输入转发路由器地址段。

步骤二:创建VPC连接

您需要将服务VPC1、安全VPC和服务VPC2连接至对应地域的转发路由器实例中,以便本地IDC和VPC之间可以通过转发路由器实例实现相互通信。

  1. 云企业网实例页面,选择在准备工作中创建的云企业网实例,单击云企业网实例ID。

  2. 基本信息 > 转发路由器页签,找到在步骤一中创建的转发路由器实例,在操作列单击创建网络实例连接

  3. 连接网络实例页面,根据以下信息进行配置,然后单击确定创建

    下表仅列举本文强相关的配置项,其余配置项保持默认状态。如果您想要了解更多信息,请参见创建VPC连接

    配置项

    配置项说明

    服务VPC1

    安全VPC

    服务VPC2

    实例类型

    选择网络实例类型。

    本文选择专有网络(VPC)

    本文选择专有网络(VPC)

    本文选择专有网络(VPC)

    地域

    选择网络实例所属的地域。

    本文选择华东2(上海)

    本文选择华东2(上海)

    本文选择华东1(杭州)

    转发路由器

    系统自动显示当前地域已创建的转发路由器实例ID。

    资源归属UID

    选择网络实例所属的阿里云账号和当前登录的账号是否为同一个账号。

    本文选择同账号

    本文选择同账号

    本文选择同账号

    付费方式

    VPC连接的付费方式。默认值为按量付费。关于转发路由器的计费规则,请参见计费说明

    连接名称

    输入VPC连接的名称。

    本文输入服务VPC1连接

    本文输入安全VPC连接

    本文输入服务VPC2连接

    网络实例

    选择网络实例。

    本文选择服务VPC1。

    本文选择安全VPC。

    本文选择服务VPC2。

    交换机

    在转发路由器支持的可用区选择交换机实例。

    • 如果企业版转发路由器在当前地域仅支持一个可用区,则您需要在当前可用区选择一个交换机实例。

    • 如果企业版转发路由器在当前地域支持多个可用区,则您需要在至少2个可用区中各选择一个交换机实例。在VPC和企业版转发路由器流量互通的过程中,这2个交换机实例可以实现可用区级别的容灾。

      推荐您在每个可用区中都选择一个交换机实例,以减少流量绕行,体验更低传输时延以及更高性能。

    请确保选择的每个交换机实例下拥有一个空闲的IP地址。如果VPC实例在转发路由器支持的可用区中并没有交换机实例或者交换机实例下没有空闲的IP地址,您需要新建一个交换机实例。 具体操作,请参见创建和管理交换机

    本文在上海可用区F选择交换机1,在上海可用区G选择交换机2。

    本文在上海可用区F选择交换机1,在上海可用区G选择交换机2。

    本文在杭州可用区I选择交换机1,在杭州可用区H选择交换机2。

    高级配置

    选择要开启的高级配置。

    本文保持默认配置,即选择开启所有高级配置。

    本文保持默认配置,即选择开启所有高级配置。

    本文保持默认配置,即选择开启所有高级配置。

步骤三:创建跨地域连接

同地域服务VPC1和安全VPC连接至转发路由器实例后,可以直接相互通信。由于服务VPC1绑定的转发路由器实例和服务VPC2绑定的转发路由器实例位于不同的地域,服务VPC1与服务VPC2、安全VPC和服务VPC2之间默认无法通信。您需要在华东1(杭州)和华东2(上海)地域的转发路由器实例之间创建跨地域连接,实现服务VPC1与服务VPC2、安全VPC和服务VPC2的跨地域互通。

  1. 云企业网实例页面,找到目标云企业网实例,单击云企业网实例ID。

  2. 基本信息 > 带宽包管理页签,单击设置跨地域带宽

  3. 连接网络实例页面,根据以下信息配置跨地域连接,然后单击确定创建

    请根据以下信息创建跨地域连接,其余配置项保持默认状态。更多信息,请参见创建跨地域连接

    配置项

    说明

    实例类型

    选择跨地域连接

    地域

    选择要互通的地域。

    本文选择华东1(杭州)

    转发路由器

    系统自动显示当前地域下转发路由器的实例ID。

    连接名称

    输入跨地域连接的名称。

    本文输入跨地域连接

    对端地域

    选择要互通的对端地域。

    本文选择华东2(上海)

    转发路由器

    系统自动显示当前地域下转发路由器的实例ID。

    带宽分配方式

    跨地域连接支持以下带宽分配方式:

    • 从带宽包分配:从已经购买的带宽包中分配带宽。

    • 按流量付费:按照跨地域连接实际使用的流量计费。

    本文选择按流量付费

    带宽

    输入跨地域连接的带宽值。单位:Mbps。

    默认链路类型

    使用默认链路类型。

    高级配置

    保持默认配置,即选中全部高级配置选项。

步骤四:创建VPN连接

完成上述配置后,服务VPC1、服务VPC2和安全VPC之间已经可以相互通信,但是转发路由器和安全VPC无法学习到本地IDC的路由。您需要在第三方SD-WAN设备与转发路由器之间、第三方SD-WAN设备与本地IDC之间分别建立VPN连接,使第三方SD-WAN设备可以学习到本地IDC的路由,同时通过VPN连接将本地IDC的路由传播至转发路由器中。

  1. 登录VPN网关管理控制台

  2. 创建用户网关。

    在第三方SD-WAN设备与转发路由器之间建立VPN连接前,您需要先创建用户网关,将第三方SD-WAN设备的信息注册至阿里云上。

    1. 在左侧导航栏,选择网间互联 > VPN > 用户网关

    2. 在顶部菜单栏,选择用户网关的地域。

      选择第三方SD-WAN设备所属VPC所在的地域。本文选择华东2(上海)

    3. 用户网关页面,单击创建用户网关

    4. 创建用户网关面板,根据以下信息进行配置,然后单击确定

      以下仅列举本文强相关配置项,其余配置保持默认状态。更多信息,请参见创建和管理用户网关

      配置项

      配置项说明

      用户网关

      名称

      输入用户网关的名称。

      本文输入Customer-Gateway

      IP地址

      输入第三方SD-WAN设备用于建立VPN连接的IP地址。

      本文输入第三方SD-WAN设备的私网IP地址172.16.0.15

      自治系统号

      输入第三方SD-WAN设备使用的BGP AS号。

      本文输入65534

  3. 创建IPsec连接。

    创建用户网关后,您需要在阿里云侧创建IPsec连接,转发路由器将通过IPsec连接与第三方SD-WAN设备建立VPN连接。

    1. 在左侧导航栏,选择网间互联 > VPN > IPsec连接

    2. 在顶部菜单栏,选择IPsec连接的地域。

      IPsec连接的地域需和用户网关的地域一致。本文选择华东2(上海)

    3. IPsec连接页面,单击创建IPsec连接

    4. 创建IPsec连接页面,根据以下信息配置IPsec连接,然后单击确定

      创建IPsec连接会产生计费,关于IPsec连接的计费说明,请参见计费说明

      配置项

      配置项说明

      IPsec连接

      名称

      输入IPsec连接的名称。

      本文输入IPsec连接

      绑定资源

      选择IPsec连接绑定的资源类型。

      本文选择云企业网

      网关类型

      选择IPsec连接的网络类型。

      本文选择私网

      安全VPC已被连接至转发路由器,第三方SD-WAN设备可通过私网与转发路由器建立VPN连接。

      云企业网实例ID

      选择云企业网实例。

      本文选择在准备工作中已创建的云企业网实例。

      转发路由器

      选择IPsec连接待绑定的转发路由器实例。

      系统根据IPsec连接所在的地域自动选择当前地域下的转发路由器实例。

      可用区

      在转发路由器支持的可用区中选择部署IPsec连接的可用区。

      本文选择上海可用区F

      路由模式

      选择路由模式。

      本文选择目的路由模式

      立即生效

      选择IPsec连接的配置是否立即生效。取值:

      • :配置完成后立即进行协商。

      • :当有流量进入时进行协商。

      本文选择

      用户网关

      选择IPsec连接关联的用户网关。

      本文选择Customer-Gateway

      预共享密钥

      输入IPsec连接的认证密钥,用于本地网关设备和IPsec连接之间的身份认证。

      • 密钥长度为1~100个字符,支持数字、大小写英文字母及右侧字符~`!@#$%^&*()_-+={}[]\|;:',.<>/?,不能包含空格。

      • 若您未指定预共享密钥,系统会随机生成一个16位的字符串作为预共享密钥。创建IPsec连接后,您可以通过编辑按钮查看系统生成的预共享密钥。具体操作,请参见修改IPsec连接

      重要

      IPsec连接及其对端网关设备配置的预共享密钥需一致,否则系统无法正常建立IPsec-VPN连接。

      本文输入fddsFF123****

      启用BGP

      选择是否开启BGP功能。BGP功能默认为关闭状态。

      本文开启BGP功能。

      本端自治系统号

      输入IPsec连接的自治系统号。默认值:45104。自治系统号取值范围:1~4294967295。

      本文输入65531

      加密配置

      添加IKE配置、IPsec配置等加密配置。

      除以下参数外,其余配置项保持默认值。

      • IKE配置加密算法选择des

      • IPsec配置加密算法选择des

      说明

      您需要根据本地网关设备的支持情况选择加密配置参数,确保IPsec连接和本地网关设备的加密配置保持一致。

      BGP配置

      隧道网段

      输入建立加密隧道时使用的网段。

      该网段应是一个在169.254.0.0/16网段内,掩码长度为30的网段。

      隧道网段需要是在169.254.0.0/16内的子网掩码为30的网段,且不能是169.254.0.0/30、169.254.1.0/30、169.254.2.0/30、169.254.3.0/30、169.254.4.0/30、169.254.5.0/30和169.254.169.252/30。

      本文输入169.254.20.0/30

      本端BGP地址

      输入IPsec连接的BGP IP地址。

      该地址为隧道网段内的一个IP地址。

      本文输入169.254.20.1

      高级配置

      选择是否为IPsec连接开启高级配置。

      本文保持默认值,即开启所有高级配置。

      IPsec连接创建成功后,系统将自动为每个IPsec连接分配一个网关IP地址,用于IPsec连接和第三方SD-WAN设备之间建立VPN连接。您可以在IPsec连接详情页面查看网关IP地址,如下图所示。查看私网IP地址

      说明
      • IPsec连接只有绑定转发路由器实例后系统才会为其分配网关IP地址。如果在您创建IPsec连接时,IPsec连接的绑定资源类型为不绑定或者为VPN网关,则系统并不会为其分配网关IP地址。

      • 私网类型的IPsec连接绑定转发路由器实例后,系统自动将IPsec连接的网关IP地址发布至转发路由器的路由表中。

  4. 下载IPsec连接对端的配置。

    返回到IPsec连接页面,找到刚刚创建的IPsec连接,在操作列单击生成对端配置

  5. 在第三方SD-WAN设备中添加VPN配置和BGP配置。

    创建IPsec连接后,请根据已下载的IPsec连接对端配置信息以及下述步骤,在第三方SD-WAN设备中添加VPN配置和BGP配置,以便第三方SD-WAN设备和转发路由器之间建立VPN连接。

    说明

    本文以FortiGate防火墙(软件版本V6.2.4)作为配置示例。不同软件版本的配置命令可能会有所差异,操作时请根据您的实际环境查询对应文档或咨询相关厂商。更多本地网关设备配置示例,请参见本地网关设备配置示例

    以下内容包含的第三方产品信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

    1. 登录第三方SD-WAN设备命令行配置界面。

    2. 为第三方SD-WAN设备添加IPsec-VPN第一阶段配置(IKE配置)。

      #为隧道1添加IPsec-VPN第一阶段配置
      config vpn ipsec phase1-interface
       edit "to_aliyun_test1"
       set interface "port1"             #使用“port1”与转发路由器建立VPN连接。
       set ike-version 2
       set peertype any
       set net-device disable
       set proposal des-sha1             #配置一阶段加密算法和认证算法,需和IPsec连接侧一阶段配置(IKE配置)保持一致            
       set localid-type address          #指定localid的格式为IP地址格式,与阿里云IPsec连接RemoteId的格式保持一致。
       set dhgrp 2                       #配置一阶段DH分组,需和IPsec连接侧一阶段配置(IKE配置)保持一致
       set remote-gw 192.168.168.1       #指定第三方SD-WAN设备对端的IP地址,为IPsec连接的网关IP地址
       set psksecret fddsFF123****       #指定隧道的预共享密钥,阿里云IPsec连接侧和第三方SD-WAN设备侧需保持一致。
       next
      end
    3. 为第三方SD-WAN设备添加IPsec-VPN第二阶段配置(IPsec配置)。

      #为隧道添加IPsec-VPN第二阶段配置
      config vpn ipsec phase2-interface
          edit "to_aliyun_test1"
              set phase1name "to_aliyun_test1"    #关联隧道的phase1-interface。
              set proposal des-sha1               #配置二阶段加密算法和认证算法,需和IPsec连接侧二阶段配置(IPsec配置)保持一致
              set dhgrp 2                         #配置二阶段DH分组,需和IPsec连接侧二阶段配置(IPsec配置)保持一致 
              set auto-negotiate enable           
              set keylifeseconds 86400            #配置SA生存周期
          next
      end
    4. 为隧道接口配置BGP IP地址。

      config system interface
          edit "to_aliyun_test1"
              set ip 169.254.20.2 255.255.255.255          #配置隧道接口的BGP IP地址
              set type tunnel                              #指定隧道接口类型
              set remote-ip 169.254.20.1 255.255.255.255   #指定隧道对端的BGP IP地址
              set interface "port1"                        #指定隧道关联的物理接口为"port1"
          next
      end
    5. 配置防火墙策略。

      config firewall policy
          edit 1
              set name "forti_to_aliyun1"       #配置从第三方SD-WAN设备去往阿里云方向的安全策略
              set srcintf "port1"               #源接口为"port1"
              set dstintf "to_aliyun_test1"     #目的接口为VPN连接隧道接口
              set srcaddr "all"                 #匹配所有源网段的流量
              set dstaddr "all"                 #匹配所有目的网段的流量
              set action accept                 #允许流量通行
              set schedule "always"
              set service "ALL"
          next
          edit 2
              set name "aliyun_to_forti1"       #配置从阿里云去往第三方SD-WAN设备方向的安全策略
              set srcintf "to_aliyun_test1"     #源接口为VPN连接隧道接口
              set dstintf "port1"               #目的接口为"port1"
              set srcaddr "all"                 #匹配所有源网段的流量
              set dstaddr "all"                 #匹配所有目的网段的流量
              set action accept                 #允许流量通行           
              set schedule "always"
              set service "ALL"
          next
      end
    6. 配置BGP动态路由。

      config router bgp
          set as 65534
          set router-id 172.16.0.15
          config neighbor
              edit "169.254.20.1"                       #指定隧道的对端BGP邻居。
                  set remote-as 65531
              next
          end
          config network
              edit 1
                  set prefix 172.16.0.0 255.255.0.0    #宣告安全VPC中需要与其他网络互通的网段。
              next
          end
      end

步骤五:配置本地网关设备

您需要在本地网关设备1、本地网关设备2、第三方SD-WAN设备上分配添加VPN和BGP配置,使本地IDC1、本地IDC2、第三方SD-WAN设备之间互相建立IPsec-VPN连接,实现本地IDC1、本地IDC2和阿里云VPC互通、本地IDC1和本地IDC2互通。

说明
  • 第三方SD-WAN设备与本地IDC1、本地IDC2通过ADVPN(Auto Discovery VPN)功能建立全互联的IPsec-VPN连接。关于ADVPN功能的更多信息,请参见Fortinet帮助文档

  • 本文以FortiGate防火墙(软件版本V6.2.4)作为配置示例。不同软件版本的配置命令可能会有所差异,操作时请根据您的实际环境查询对应文档或咨询相关厂商。更多本地网关设备配置示例,请参见本地网关设备配置示例

第三方SD-WAN设备配置示例

  1. 请确保第三方SD-WAN设备的UDP 500以及5000端口允许本地网关设备1和本地网关设备2的公网地址访问。具体操作,请参见添加安全组规则

  2. 登录第三方SD-WAN设备的命令行配置界面。

  3. 执行以下命令,添加IPsec-VPN连接一阶段配置。

    config vpn ipsec phase1-interface
        edit "HUB"                                              #第三方SD-WAN设备作为Hub节点
            set type dynamic
            set interface "port1"                               #使用“port1”与本地IDC建立IPsec-VPN连接
            set ike-version 2                                   #使用IKE v2版本
            set peertype any
            set net-device disable                              #关闭本功能
            set proposal des-sha1                               #配置一阶段加密算法和认证算法
            set add-route disable                               #关闭自动添加路由的功能
            set dpd on-idle
            set wizard-type hub-fortigate-auto-discovery         
            set auto-discovery-sender enable                    #在Hub节点开启本功能,以便接收与发送Spoke之间的直连隧道互联信息。
            set network-overlay enable
            set network-id 1
            set psksecret fddsFF456****                         #配置预共享密钥
            set dpd-retryinterval 60
        next
    end
                                    
  4. 执行以下命令,添加IPsec-VPN连接二阶段配置。

    config vpn ipsec phase2-interface
        edit "HUB"
            set phase1name "HUB"
            set proposal des-sha1                          #配置二阶段加密算法和认证算法
        next
    end
                                    
  5. 执行以下命令,配置IPsec-VPN隧道IP地址。

    
    config system interface                            
        edit "HUB"
            set vdom "root"
            set ip 169.254.10.1 255.255.255.255            #配置隧道IP地址
            set allowaccess ping
            set type tunnel                                #指定隧道接口类型
            set remote-ip 169.254.10.254 255.255.255.0     #配置隧道对端IP地址
            set interface "port1"                          #指定隧道关联的物理接口为"port1" 
        next
    end
    重要

    169.254.10.254是不被Spoke节点所使用的预留IP地址,IPsec-VPN隧道是一个点对点的隧道,但是ADVPN中这条隧道需要同时对应多个Spoke节点,因此不能将remote-ip写成一个存在的Spoke节点的IP地址。

  6. 执行以下命令,在第三方SD-WAN设备上配置安全策略,允许本地IDC之间、本地IDC与阿里云互相访问。

    config firewall policy
        edit 7
            set name "HUB_to_SPOKE"               
            set srcintf "port1" "HUB" "to_aliyun_test1"     #源接口为"port1" 、"HUB"、"to_aliyun_test1"
            set dstintf "HUB" "port1" "to_aliyun_test1"     #目的接口为"port1" 、"HUB"、"to_aliyun_test1"
            set action accept                               #允许流量通行
            set srcaddr "all"                               #匹配所有源网段的流量
            set dstaddr "all"                               #匹配所有目的网段的流量
            set schedule "always"
            set service "ALL"
        next
    end                              
  7. 执行以下命令,添加BGP配置。

    config router bgp
        set as 65534                                           #指定第三方SD-WAN设备的BGP AS号为65534                                
        config neighbor-group                                  #启用neighbor-group属性
            edit "HUB_group"
                set next-hop-self enable
                set remote-as 65534                            #指定对端的BGP AS号
                set additional-path send
                set route-reflector-client enable              #开启路由反射功能,指定第三方SD-WAN设备为路由反射器
            next
        end
        config neighbor-range                                           
            edit 1
                set prefix 169.254.10.0 255.255.255.0          #只要匹配前缀列表169.254.10.0/24的BGP邻居均可以和Hub节点建立iBGP邻居关系。
                set neighbor-group "HUB_group"
            next
        end
    end                              

本地网关设备1配置示例

  1. 登录本地网关设备1的命令行配置界面。

  2. 添加默认路由,确保本地网关设备1可以访问第三方SD-WAN设备公网IP地址。

    #本文场景中port1接口映射公网IP地址121.XX.XX.211,因此配置默认路由指向port1网关。
    config router static
        edit 1
            set device "port1"
            set distance 5
            set gateway 192.168.100.253
        next
    end
    
    #您可以通过以下命令查看路由信息。
    FortiGate-VM64-KVM # get router info routing-table all
    S*      0.0.0.0/0 [5/0] via 192.168.100.253, port1
  3. 执行以下命令,添加IPsec-VPN连接一阶段配置。

    config vpn ipsec phase1-interface
        edit "hz_sp"
            set interface "port1"                           #使用"port1"接口与第三方SD-WAN设备建立IPsec-VPN连接
            set ike-version 2                               #使用IKE v2版本
            set peertype any
            set net-device disable                          #关闭该功能
            set proposal des-sha1                           #配置一阶段加密算法和认证算法
            set localid "hzoffice1"
            set dpd on-idle
            set wizard-type spoke-fortigate-auto-discovery
            set auto-discovery-receiver enable               #在Spoke节点开启本功能,以便接收Hub节点发送的直连隧道信息。
            set network-overlay enable
            set network-id 1
            set remote-gw 42.XX.XX.129                       #指定Hub节点的公网IP地址 
            set psksecret fddsFF456****                      #配置预共享密钥,需和Hub节点保持一致
            set add-route disable                            #关闭自动添加路由的功能
        next
    end                            
  4. 执行以下命令,添加IPsec-VPN连接二阶段配置。

    config vpn ipsec phase2-interface
        edit "hz_sp"
            set phase1name "hz_sp"
            set proposal des-sha1                         #配置二阶段加密算法和认证算法
            set auto-negotiate enable                     #开启自动协商    
        next
    end
                                    
  5. 执行以下命令,配置IPsec-VPN隧道IP地址。

    
    config system interface
        edit "hz_sp"
            set vdom "root"
            set ip 169.254.10.10 255.255.255.255           #配置隧道IP地址
            set allowaccess ping
            set type tunnel                                #指定隧道接口类型
            set remote-ip 169.254.10.254 255.255.255.0     #配置隧道对端IP地址
            set interface "port1"                          #指定隧道关联的物理接口为"port1" 
        next
    end
     
    config system interface                                #新建loopback接口,用于模拟本地IDC1中的客户端。
        edit "loopback"
           set vdom "root"
           set ip 192.168.254.100 255.255.255.0            
           set allowaccess ping
           set type loopback
      next
    end
  6. 执行以下命令,在本地网关设备1上配置安全策略,允许本地IDC之间、本地IDC与阿里云互相访问。

    config firewall policy
        edit 3
            set name "hz_sp_remote"                    #配置去往本地IDC1方向的安全策略     
            set srcintf "hz_sp"  "loopback" "port1"    #源接口为"port1" 、"hz_sp"、"loopback"
            set dstintf "loopback" "hz_sp" "port1"     #目的接口为"port1" 、"hz_sp"、"loopback"
            set action accept                #允许流量通行
            set srcaddr "all"                #匹配所有源网段的流量
            set dstaddr "all"                #匹配所有目的网段的流量
            set schedule "always"
            set service "ALL"
        next
    end  
  7. 执行以下命令,添加BGP配置。

    config router bgp
        set as 65534                                         #指定本地网关设备1的BGP AS号
        set network-import-check disable                     #关闭发布路由的检查
        config neighbor
            edit "169.254.10.1"                              #与第三方SD-WAN设备建立iBGP邻居关系
                set remote-as 65534                          #指定第三方SD-WAN设备的BGP AS号
                set additional-path receive
            next
        end
        config network
            edit 1
                set prefix 192.168.254.100 255.255.255.255   #宣告本地IDC1中客户端的地址,用于与VPC、本地IDC2互通
            next
        end
    end                              

本地网关设备2配置示例

  1. 登录本地网关设备2的命令行配置界面。

  2. 添加默认路由,确保本地网关设备1可以访问第三方SD-WAN设备公网IP地址。

    #本文场景中port1接口映射公网IP地址121.XX.XX.78,因此配置默认路由指向port1网关。
    config router static
        edit 1
            set device "port1"
            set distance 5
            set gateway 192.168.99.253
        next
    end
    
    #您可以通过以下命令查看路由信息。
    FortiGate-VM64-KVM # get router info routing-table all
    S*      0.0.0.0/0 [5/0] via 192.168.99.253, port1
  3. 执行以下命令,配置IPsec-VPN一阶段参数:

    
    config vpn ipsec phase1-interface                        
        edit "hz_sp1"
            set interface "port1"                           #使用"port1"接口与第三方SD-WAN设备建立IPsec-VPN连接
            set ike-version 2                               #使用IKE v2版本
            set peertype any
            set net-device disable                          #关闭该功能
            set proposal des-sha1                           #配置一阶段加密算法和认证算法
            set localid "hzoffice2"
            set dpd on-idle
            set wizard-type spoke-fortigate-auto-discovery  
            set auto-discovery-receiver enable               #在Spoke节点开启本功能,以便接收Hub节点发送的直连隧道信息。
            set network-overlay enable
            set network-id 1
            set remote-gw 42.XX.XX.129                       #指定Hub节点的公网IP地址
            set psksecret fddsFF456****                      #配置预共享密钥,需和Hub节点保持一致
            set add-route disable                            #关闭自动添加路由的功能 
        next
    end
                                    
  4. 执行以下命令,配置IPsec-VPN二阶段参数。

    config vpn ipsec phase2-interface
        edit "hz_sp1"
            set phase1name "hz_sp1"
            set proposal des-sha1                         #配置二阶段加密算法和认证算法
            set auto-negotiate enable                     #开启自动协商    
        next
    end
                                    
  5. 执行以下命令,配置IPsec-VPN隧道IP地址。

    config system interface
        edit "hz_sp1"
            set vdom "root"
            set ip 169.254.10.11 255.255.255.255           #配置隧道IP地址
            set allowaccess ping
            set type tunnel                                #指定隧道接口类型
            set remote-ip 169.254.10.254 255.255.255.0     #配置隧道对端IP地址
            set interface "port1"                          #指定隧道关联的物理接口为"port1" 
        next
    end
    
    config system interface                                #新建loopback接口,用于模拟本地IDC2中的客户端。
        edit "loopback"
             set vdom "root"
             set ip 192.168.100.104 255.255.255.0
             set allowaccess ping
             set type loopback
    end
  6. 执行以下命令,在本地网关设备2上配置安全策略,允许本地IDC之间、本地IDC与阿里云互相访问。

    config firewall policy
        edit 3
            set name "hz_sp1_remote"                  #配置去往本地IDC2方向的安全策略     
            set srcintf "hz_sp1" "loopback" "port1"   #源接口为"port1" 、"hz_sp1"、"loopback"
            set dstintf "loopback" "hz_sp1" "port1"   #目的接口"port1" 、"hz_sp1"、"loopback"
            set action accept                         #允许流量通行
            set srcaddr "all"                         #匹配所有源网段的流量
            set dstaddr "all"                         #匹配所有目的网段的流量
            set schedule "always"
            set service "ALL"
        next
    end                              
  7. 执行以下命令,添加BGP配置。

    config router bgp
        set as 65534                                          #指定本地网关设备2的BGP AS号
        set network-import-check disable                      #关闭发布路由的检查
        config neighbor
            edit "169.254.10.1"                               #与第三方SD-WAN设备建立iBGP邻居关系
                set remote-as 65534                           #指定第三方SD-WAN设备的BGP AS号
                set additional-path receive                                
            next
        end
        config network
            edit 1
                set prefix 192.168.254.104 255.255.255.255    #宣告本地IDC2中的客户端,用于与VPC、本地IDC1互通
            next
        end
    end                            

步骤六:测试连通性

完成上述配置后,本地IDC和VPC之间已经可以实现互相通信。以下内容介绍如何测试各个站点之间的网络连通性。

说明

验证测试前,请确保您已经了解所有VPC中ECS实例所应用的安全组规则以及本地IDC中使用的访问控制策略,并确保ECS实例安全组规则和本地IDC访问控制策略允许本地IDC之间、本地IDC与ECS实例、ECS实例与ECS实例之间相互通信。关于安全组规则的操作,请参见查询安全组规则添加安全组规则

  1. 测试本地IDC1与服务VPC1、服务VPC2、本地IDC2的连通性。

    1. 登录本地IDC1下客户端的命令行界面。

    2. 在客户端中执行ping命令,尝试访问服务VPC1下的ECS1、服务VPC2下的ECS1和本地IDC2下的客户端。

      SD-WAN-IDC1TOremot如上图所示,如果本地IDC1下的客户端可以收到响应报文,则表示本地IDC1可以成功访问服务VPC1、服务VPC2和本地IDC2下的资源。

  2. 测试本地IDC2与服务VPC1、服务VPC2、本地IDC1的连通性。

    1. 登录本地IDC2下客户端的命令行界面。

    2. 在客户端中执行ping命令,尝试访问服务VPC1下的ECS1、服务VPC2下的ECS1和本地IDC1下的客户端。

      SD-WAN-IDC2TOremote如上图所示,如果本地IDC2下的客户端可以收到响应报文,则表示本地IDC2可以成功访问服务VPC1、服务VPC2和本地IDC1下的资源。

  3. 测试服务VPC1与本地IDC1、本地IDC2的连通性。

    1. 登录服务VPC1下的ECS1实例。具体操作,请参见ECS远程连接操作指南

    2. 在ECS1实例中执行ping命令,尝试访问本地IDC1和本地IDC2下的客户端。

      ping <本地IDC客户端的IP地址>

      SD-WAN-VPC1TOIDC

      如上图所示,如果ECS1实例可以收到响应报文,则表示服务VPC1可以成功访问本地IDC1和本地IDC2下的资源。

  4. 测试服务VPC2与本地IDC1、本地IDC2的连通性。

    1. 登录服务VPC2下的ECS1实例。具体操作,请参见ECS远程连接操作指南

    2. 在ECS1实例中执行ping命令,尝试访问本地IDC1和本地IDC2下的客户端。

      ping <本地IDC客户端的IP地址>

      SD-WAN-VPC2toIDC

      如上图所示,如果ECS1实例可以收到响应报文,则表示服务VPC2可以成功访问本地IDC1和本地IDC2下的资源。

  5. 测试服务VPC1和服务VPC2之间的连通性。

    1. 登录服务VPC1下的ECS1实例。具体操作,请参见ECS远程连接操作指南

    2. 在ECS1实例中执行ping命令,尝试访问服务VPC2下的ECS1实例。

      ping <ECS实例的IP地址>

      SD-WAN-VPC1TOVPC2

      如上图所示,如果服务VPC1下的ECS1实例可以收到响应报文,则表示服务VPC1可以成功访问服务VPC2下的资源。

    3. 登录服务VPC2下的ECS1实例。具体操作,请参见ECS远程连接操作指南

    4. 在ECS1实例中执行ping命令,尝试访问服务VPC1下的ECS1实例。

      ping <ECS实例的IP地址>

      SD-WAN-VPC2TOVPC1

      如上图所示,如果服务VPC2下的ECS1实例可以收到响应报文,则表示服务VPC2可以成功访问服务VPC1下的资源。