使用企业版转发路由器实现跨地域VPC间的IPv6网络通信

企业版转发路由器实例创建后默认支持转发IPv6流量、学习并传播IPv6路由。本文介绍如何使用企业版转发路由器实现跨地域VPC间的IPv6网络通信。

说明

本教程所含示例代码支持一键运行,您可以直接运行代码。一键运行

场景示例

image

本文以上图场景为例。某企业在阿里云华东1(杭州)地域拥有VPC1(IPv4)、在华东2(上海)地域拥有VPC2(IPv4)。VPC实例下均使用云服务器 ECS(Elastic Compute Service)产品部署了相关应用。因业务发展,企业希望VPC之间可以实现IPv6网络通信。

操作步骤

本文提供控制台和Terraform两种配置方式,请按需选择。

控制台

准备工作

  • 您已经在阿里云华东1(杭州)地域、华东2(上海)地域分别创建了一个VPC实例(IPv4),VPC实例中均使用ECS部署了相关应用。具体操作,请参见搭建IPv4专有网络

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

步骤一:为VPC实例开启IPv6功能

VPC实例需开启IPv6功能后才支持IPv6网络通信。根据以下步骤,分别为VPC1VPC2开启IPv6功能。

重要

创建VPC实例时支持为VPC实例和交换机实例开启IPv6功能,如果您创建的VPC实例和交换机实例已经开启了IPv6功能并分配了IPv6地址段,可跳过本步骤。

  1. 登录专有网络管理控制台

  2. 在顶部菜单栏,选择VPC实例的地域。

  3. 专有网络页面,找到目标VPC实例,在IPv6网段列单击开通IPv6

  4. 开通IPv6对话框中,IPv6网段类型选择分配BGP(多线),并选中自动开启VPC内所有交换机IPv6功能,然后单击确定

    • 如果您未选中自动开启VPC内所有交换机IPv6功能,您需要为每个交换机单独开通IPv6网段。具体操作,请参见交换机开通IPv6

    • VPC实例和交换机实例开启IPv6功能后,系统会为VPC实例和交换机实例分配IPv6网段,您可以在专有网络交换机页面的IPv6网段列查看已分配的IPv6网段信息。下图展示如何查看VPC实例的IPv6网段,交换机实例的IPv6网段查看方式与VPC实例类似,此处不再展示。ipV6网段

步骤二:为ECS实例配置IPv6地址

在进行IPv6网络互通前,请确保要互通的资源已经拥有IPv6地址。本文场景中需要为ECS1ECS2分别配置IPv6地址,ECS1ECS2均使用Alibaba Cloud Linux 3.2104 LTS 64位操作系统。

  1. ECS实例分配IPv6地址。具体操作,请参见为已有实例分配IPv6地址

    说明

    如果您在创建ECS实例时已经为其分配了IPv6地址,可跳过本步骤。

  2. ECS实例配置IPv6地址。具体操作,请参见IPv6通信

    配置完成后,ECS1ECS2IPv6地址如下图所示。

    ECS1IPv6地址

    ECS1-IPv6

    ECS2IPv6地址

    ECS2-IPv

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

在云企业网实例下,分别在华东1(杭州)地域和华东2(上海)地域创建转发路由器实例,以便通过转发路由器实现VPC实例间的跨地域互通。

  1. 登录云企业网管理控制台
  2. 云企业网实例页面,找到目标云企业网实例,单击目标实例ID。
  3. 基本信息 > 转发路由器页签,单击创建转发路由器

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

    创建转发路由器实例时仅需要配置地域,其余配置项保持默认状态。更多信息,请参见创建转发路由器实例

步骤四:创建VPC连接

在实现VPC实例跨地域互通前,您需要先将VPC实例连接至转发路由器中。

  1. 登录云企业网管理控制台
  2. 云企业网实例页面,找到目标云企业网实例,单击目标实例ID。
  3. 基本信息 > 转发路由器页签,找到步骤三中创建的任意一个转发路由器实例,在操作列单击创建网络实例连接

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

    根据下表信息,将VPC1连接至华东1(杭州)地域的转发路由器、将VPC2连接至华东2(上海)地域的转发路由器。以下仅列举本文强相关的配置项,其余配置项保持默认状态。更多信息,请参见创建VPC连接

    配置项

    说明

    VPC1

    VPC2

    实例类型

    选择专有网络(VPC)

    地域

    选择待连接的网络实例所在的地域。

    选择华东1(杭州)

    选择华东2(上海)

    IPv6支持

    选择是否为VPC连接开启IPv6功能。系统默认关闭该功能。

    如果VPC实例需通过企业版转发路由器实现IPv6网络通信,则需开启本功能。

    说明

    对于已经创建的VPC连接,支持单独开启IPv6功能。具体操作,请参见VPC连接单独开启IPv6功能

    选择开启IPv6功能。

    选择开启IPv6功能。

    转发路由器

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

    资源归属UID

    选择待连接的网络实例所属的账号类型。

    选择同账号

    选择同账号

    网络实例

    选择待连接的VPC实例。

    选择VPC1。

    选择VPC2。

    交换机

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

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

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

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

    如果您在对应的可用区没有交换机实例,需新建交换机实例。具体操作,请参见创建交换机

    高级配置

    本文保持默认配置,即选择开启三种高级功能。

步骤五:创建跨地域连接

VPC实例连接至企业版转发路由器后,您还要创建跨地域连接才能实现VPC实例间的跨地域互通。

  1. 登录云企业网管理控制台
  2. 云企业网实例页面,找到目标云企业网实例,单击目标实例ID。
  3. 基本信息 > 转发路由器页签下,找到步骤三中创建的任意一个转发路由器实例,在转发路由器实例的操作列单击创建网络实例连接

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

    以下仅列举本文强相关的配置项,其余配置项保持默认状态。更多信息,请参见使用企业版转发路由器创建跨地域连接

    配置项

    说明

    实例类型

    选择跨地域连接

    地域

    选择要互通的地域。

    本文选择华东1(杭州)

    对端地域

    选择要互通的对端地域。

    本文选择华东2(上海)

    带宽分配方式

    选择跨地域连接的带宽分配方式。

    本文选择按流量付费,系统将按照跨地域连接实际使用的流量计费。

    带宽

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

    按流量付费的带宽分配方式下,该配置项表示跨地域连接的限速带宽值。

    默认链路类型

    选择跨地域连接的链路类型。

    本文保持默认值。链路类型说明,请参见链路类型

    高级配置

    本文保持默认配置,即选择开启三种高级功能。

步骤六:开启路由同步

企业版转发路由器默认不向VPC实例传播IPv6路由,您需要分别为VPC1连接和VPC2连接开启路由同步功能,使企业版转发路由器可以向VPC实例传播IPv6路由。

  1. 登录云企业网管理控制台

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

  3. 基本信息 > 转发路由器页签,找到华东1(杭州)地域的转发路由器实例,单击转发路由器实例ID。

  4. 地域内连接管理页签,找到VPC1连接,在路由同步列为网络实例开启路由同步。

  5. 执行相同的操作,在华东2(上海)地域的转发路由器实例下为VPC2连接开启路由同步功能。

    网络实例连接开启路由同步后, 企业版转发路由器将自动向网络实例同步路由。您可以在路由同步列单击详情,跳转至网络实例路由信息页签查看路由同步情况。

    VPC1的路由条目

    image

    VPC2的路由条目

    image

步骤七:测试连通性

完成上述步骤后,VPC1VPC2之间已经可以实现IPv6网络通信了。以下内容介绍如何测试VPC实例间的IPv6网络连通性。

重要

默认情况下,安全组规则不允许IPv6网络通信。在执行以下操作前,请确保ECS1ECS3所属的安全组规则允许IPv6网络通信。具体操作,请参见查询安全组规则添加安全组规则

例如安全组入方向开放ICMP(IPv6)协议,授权::/0网段,用于测试IPv6网络连通性。

  1. 登录VPC1下的ECS1实例。具体操作,请参见ECS远程连接方式概述

  2. 执行以下命令,尝试使用ECS1IPv6地址访问VPC2下的ECS3实例,验证通信是否正常。

    ping6 <ECS3IPv6地址>

    如果ECS1可以收到如下所示的回复报文,则证明VPC实例之间已经可以进行IPv6网络通信了。

    IPv

Terraform

您可以使用Terraform搭建本文示例环境,关于Terraform的安装和配置,请参考Provider 使用

下面步骤以Linux主机运行Terraform v1.9.8为例进行介绍,操作前请确保您已经完成Terraform 身份认证

说明

本教程示例包含的部分资源会产生一定费用,请在不需要时及时进行释放或退订。

第一步:创建资源

  1. 为本文的实践场景创建一个目录,并进入该目录。

    mkdir tf-CenIpv6 && cd tf-CenIpv6
  2. 创建一个main.tf文件,用于定义资源信息。

    touch main.tf
  3. 打开main.tf文件,复制如下代码,粘贴到文件中并保存。此文件包含了本文实践场景中需要用到的资源和对应配置。

    variable "pname" {
      description = "The prefix name for resources"
      type        = string
      default     = "tf-CenIpv6"
    }
    
    variable "default_region_id" {
      description = "The default region id"
      type        = string
      default     = "cn-hangzhou"
    }
    
    variable "hangzhou_region_id" {
      description = "The hangzhou region id"
      type        = string
      default     = "cn-hangzhou"
    }
    
    variable "shanghai_region_id" {
      description = "The shanghai region id"
      type        = string
      default     = "cn-shanghai"
    }
    
    variable "hangzhou_az_list" {
      description = "List of availability zones to use"
      type        = list(string)
      default     = ["cn-hangzhou-j", "cn-hangzhou-k"]
    }
    
    variable "shanghai_az_list" {
      description = "List of availability zones to use"
      type        = list(string)
      default     = ["cn-shanghai-m", "cn-shanghai-n"]
    }
    
    # --- provider ---
    provider "alicloud" { # default hangzhou
      region = var.default_region_id
    }
    
    provider "alicloud" {
      alias  = "hangzhou"
      region = var.hangzhou_region_id
    }
    
    provider "alicloud" {
      alias  = "shanghai"
      region = var.shanghai_region_id
    }
    
    # --- 2 vpc and 4 vsw ---
    resource "alicloud_vpc" "vpc1" {
      provider    = alicloud.hangzhou
      vpc_name    = "${var.pname}-vpc1"
      cidr_block  = "10.0.0.0/16"
      enable_ipv6 = true
    }
    resource "alicloud_vpc" "vpc2" {
      provider    = alicloud.shanghai
      vpc_name    = "${var.pname}-vpc2"
      cidr_block  = "172.16.0.0/16"
      enable_ipv6 = true
    }
    resource "alicloud_vswitch" "vsw1-1" {
      provider             = alicloud.hangzhou
      vpc_id               = alicloud_vpc.vpc1.id
      cidr_block           = "10.0.0.0/24"
      zone_id              = var.hangzhou_az_list[0]
      vswitch_name         = "${var.pname}-vsw1-1"
      enable_ipv6          = true
      ipv6_cidr_block_mask = 1 # existed
    }
    resource "alicloud_vswitch" "vsw1-2" {
      provider             = alicloud.hangzhou
      vpc_id               = alicloud_vpc.vpc1.id
      cidr_block           = "10.0.1.0/24"
      zone_id              = var.hangzhou_az_list[1]
      vswitch_name         = "${var.pname}-vsw1-2"
      enable_ipv6          = true
      ipv6_cidr_block_mask = 2
    }
    resource "alicloud_vswitch" "vsw2-1" {
      provider             = alicloud.shanghai
      vpc_id               = alicloud_vpc.vpc2.id
      cidr_block           = "172.16.0.0/24"
      zone_id              = var.shanghai_az_list[0]
      vswitch_name         = "${var.pname}-vsw2-1"
      enable_ipv6          = true
      ipv6_cidr_block_mask = 3
    }
    resource "alicloud_vswitch" "vsw2-2" {
      provider             = alicloud.shanghai
      vpc_id               = alicloud_vpc.vpc2.id
      cidr_block           = "172.16.1.0/24"
      zone_id              = var.shanghai_az_list[1]
      vswitch_name         = "${var.pname}-vsw2-2"
      enable_ipv6          = true
      ipv6_cidr_block_mask = 4
    }
    
    # --- ecs1 ---
    resource "alicloud_instance" "ecs1" {
      provider             = alicloud.hangzhou
      instance_name        = "${var.pname}-ecs1"
      instance_type        = "ecs.e-c1m1.large"
      security_groups      = [alicloud_security_group.sg1.id]
      vswitch_id           = alicloud_vswitch.vsw1-1.id
      image_id             = "aliyun_3_x64_20G_qboot_alibase_20230727.vhd"
      system_disk_category = "cloud_essd"
      private_ip           = "10.0.0.1"
      ipv6_address_count   = 1
      instance_charge_type = "PostPaid"
      user_data = base64encode(<<-EOT
        #!/bin/bash
        echo ecs_ok > /root/ok.txt
        sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6
      EOT
      )
    }
    
    # --- ecs2 ---
    resource "alicloud_instance" "ecs2" {
      provider             = alicloud.shanghai
      instance_name        = "${var.pname}-ecs2"
      instance_type        = "ecs.e-c1m1.large"
      security_groups      = [alicloud_security_group.sg2.id]
      vswitch_id           = alicloud_vswitch.vsw2-1.id
      image_id             = "aliyun_3_x64_20G_qboot_alibase_20230727.vhd"
      system_disk_category = "cloud_essd"
      private_ip           = "172.16.0.1"
      ipv6_address_count   = 1
      instance_charge_type = "PostPaid"
      user_data = base64encode(<<-EOT
        #!/bin/bash
        echo ecs_ok > /root/ok.txt
        sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6
      EOT
      )
    }
    
    # sg
    resource "alicloud_security_group" "sg1" {
      provider = alicloud.hangzhou
      name     = "${var.pname}-sg1"
      vpc_id   = alicloud_vpc.vpc1.id
    }
    resource "alicloud_security_group_rule" "allow_inbound_ssh1" {
      provider          = alicloud.hangzhou
      type              = "ingress"
      ip_protocol       = "tcp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "22/22"
      priority          = 1
      security_group_id = alicloud_security_group.sg1.id
      cidr_ip           = "0.0.0.0/0"
    }
    resource "alicloud_security_group_rule" "allow_inbound_icmp1" {
      provider          = alicloud.hangzhou
      type              = "ingress"
      ip_protocol       = "icmp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "-1/-1"
      priority          = 1
      security_group_id = alicloud_security_group.sg1.id
      cidr_ip           = "0.0.0.0/0"
    }
    resource "alicloud_security_group_rule" "allow_inbound_ipv6_icmp1" {
      provider          = alicloud.hangzhou
      type              = "ingress"
      ip_protocol       = "all"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "-1/-1"
      priority          = 1
      security_group_id = alicloud_security_group.sg1.id
      ipv6_cidr_ip      = "::/0"
    }
    
    resource "alicloud_security_group" "sg2" {
      provider = alicloud.shanghai
      name     = "${var.pname}-sg2"
      vpc_id   = alicloud_vpc.vpc2.id
    }
    resource "alicloud_security_group_rule" "allow_inbound_ssh2" {
      provider          = alicloud.shanghai
      type              = "ingress"
      ip_protocol       = "tcp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "22/22"
      priority          = 1
      security_group_id = alicloud_security_group.sg2.id
      cidr_ip           = "0.0.0.0/0"
    }
    resource "alicloud_security_group_rule" "allow_inbound_icmp2" {
      provider          = alicloud.shanghai
      type              = "ingress"
      ip_protocol       = "icmp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "-1/-1"
      priority          = 1
      security_group_id = alicloud_security_group.sg2.id
      cidr_ip           = "0.0.0.0/0"
    }
    resource "alicloud_security_group_rule" "allow_inbound_ipv6_icmp2" {
      provider = alicloud.shanghai
    
      type              = "ingress"
      ip_protocol       = "all"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "-1/-1"
      priority          = 1
      security_group_id = alicloud_security_group.sg2.id
      ipv6_cidr_ip      = "::/0"
    }
    
    
    # --- cen and tr ---
    resource "alicloud_cen_instance" "cen1" {
      cen_instance_name = "${var.pname}-cen1"
    }
    resource "alicloud_cen_transit_router" "tr1" {
      provider            = alicloud.hangzhou
      transit_router_name = "${var.pname}-tr1"
      cen_id              = alicloud_cen_instance.cen1.id
    }
    resource "alicloud_cen_transit_router" "tr2" {
      provider            = alicloud.shanghai
      transit_router_name = "${var.pname}-tr2"
      cen_id              = alicloud_cen_instance.cen1.id
    }
    # get tr sys table id
    data "alicloud_cen_transit_router_route_tables" "tr1" { # get tr sys table
      transit_router_id               = alicloud_cen_transit_router.tr1.transit_router_id
      transit_router_route_table_type = "System"
    }
    data "alicloud_cen_transit_router_route_tables" "tr2" {
      transit_router_id               = alicloud_cen_transit_router.tr2.transit_router_id
      transit_router_route_table_type = "System"
    }
    
    # tr-peer
    resource "alicloud_cen_transit_router_peer_attachment" "peer" {
      provider                      = alicloud.hangzhou
      cen_id                        = alicloud_cen_instance.cen1.id
      transit_router_id             = alicloud_cen_transit_router.tr1.transit_router_id
      peer_transit_router_region_id = var.shanghai_region_id
      peer_transit_router_id        = alicloud_cen_transit_router.tr2.transit_router_id
      bandwidth_type                = "DataTransfer"
      bandwidth                     = 1
      auto_publish_route_enabled    = true # default is false
    }
    resource "alicloud_cen_transit_router_route_table_association" "ass_peer1" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr1.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_peer_attachment.peer.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_propagation" "propa_peer1" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr1.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_peer_attachment.peer.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_association" "ass_peer2" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_peer_attachment.peer.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_propagation" "propa_peer2" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_peer_attachment.peer.transit_router_attachment_id
    }
    
    # cidr_list
    variable "cidr_list" {
      description = "The list of Private CIDR block"
      type        = list(string)
      default     = ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
    }
    
    # attach1
    resource "alicloud_cen_transit_router_vpc_attachment" "attach1" {
      provider          = alicloud.hangzhou
      cen_id            = alicloud_cen_instance.cen1.id
      transit_router_id = alicloud_cen_transit_router.tr1.transit_router_id
      vpc_id            = alicloud_vpc.vpc1.id
      zone_mappings {
        zone_id    = var.hangzhou_az_list[0]
        vswitch_id = alicloud_vswitch.vsw1-1.id
      }
      zone_mappings {
        zone_id    = var.hangzhou_az_list[1]
        vswitch_id = alicloud_vswitch.vsw1-2.id
      }
      transit_router_vpc_attachment_name    = "attach1"
      transit_router_vpc_attachment_options = { ipv6Support : "enable" }
      auto_publish_route_enabled            = true # default is false
    }
    resource "alicloud_cen_transit_router_route_table_association" "ass1" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr1.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_propagation" "propa1" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr1.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
    }
    resource "alicloud_route_entry" "vpc1_to_tr1" {
      provider              = alicloud.hangzhou
      count                 = 3
      route_table_id        = alicloud_vpc.vpc1.route_table_id
      destination_cidrblock = var.cidr_list[count.index]
      nexthop_type          = "Attachment"
      nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
    }
    
    # attach2
    resource "alicloud_cen_transit_router_vpc_attachment" "attach2" {
      provider          = alicloud.shanghai
      cen_id            = alicloud_cen_instance.cen1.id
      transit_router_id = alicloud_cen_transit_router.tr2.transit_router_id
      vpc_id            = alicloud_vpc.vpc2.id
      zone_mappings {
        zone_id    = var.shanghai_az_list[0]
        vswitch_id = alicloud_vswitch.vsw2-1.id
      }
      zone_mappings {
        zone_id    = var.shanghai_az_list[1]
        vswitch_id = alicloud_vswitch.vsw2-2.id
      }
      transit_router_vpc_attachment_name    = "attach2"
      transit_router_vpc_attachment_options = { ipv6Support : "enable" }
      auto_publish_route_enabled            = true # default is false
    }
    resource "alicloud_cen_transit_router_route_table_association" "ass2" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_propagation" "propa2" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
    }
    resource "alicloud_route_entry" "vpc2_to_tr2" {
      provider              = alicloud.shanghai
      count                 = 3
      route_table_id        = alicloud_vpc.vpc2.route_table_id
      destination_cidrblock = var.cidr_list[count.index]
      nexthop_type          = "Attachment"
      nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
    }
    
    output "ecs1_login_address" {
      value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.hangzhou_region_id}&instanceId=${alicloud_instance.ecs1.id}"
    }
    
    output "ecs2_login_address" {
      value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.shanghai_region_id}&instanceId=${alicloud_instance.ecs2.id}"
    }
  4. 初始化目录,完成Terraform的初始化配置。

    terraform init
  5. 创建资源。执行后Terraform会先预览将要创建的资源,确认无误后,输入yes正式开始创建。

    terraform apply

第二步:验证测试

完成上述步骤后,VPC1VPC2之间已经可以实现IPv6网络通信了。以下内容介绍如何测试VPC实例间的IPv6网络连通性。

  1. 登录ECS2实例(实例名称为tf-CenIpv6-ecs2)。

    您可以在TerraformOutputs输出中,找到ECS2的登录地址并复制到浏览器打开,登录时注意认证方式选择临时SSH密钥认证

    image

  2. ECS2实例中,输入如下命令查看ECS2IPv6地址

    ifconfig

    ECS2-IPv

  3. 登录ECS1实例(实例名称为tf-CenIpv6-ecs1)。

    您可以在TerraformOutputs输出中,找到ECS1的登录地址并复制到浏览器打开,登录时注意认证方式选择临时SSH密钥认证

    image

  4. 执行以下命令,尝试使用ECS1IPv6地址访问VPC2下的ECS3实例,验证通信是否正常。

    ping6 <ECS2IPv6地址>

    IPv

    如果ECS1可以收到如图所示的回复报文,则证明VPC实例之间已经可以进行IPv6网络通信了。

第三步:释放资源

验证完毕后,如果您不再使用资源,请执行以下命令释放资源,防止继续计费。

terraform destroy --auto-approve