すべてのプロダクト
Search
ドキュメントセンター

Cloud Enterprise Network:トランジットルーターとのリージョン間IPv6通信の確立

最終更新日:Feb 27, 2025

既定では、Enterprise Editionトランジットルーターは、IPv6トラフィックの転送、IPv6ルートの学習、およびIPv6ルートの通知を行うことができます。 このトピックでは、Enterprise Editionトランジットルーターを使用して、異なるリージョンのVPC間でIPv6通信を確立する方法について説明します。

シナリオ

image

この例では、ある企業が中国 (杭州) リージョンにIPv4 VPC (VPC1) を作成し、中国 (上海) リージョンにIPv4 VPC (VPC2) を作成しました。 どちらのVPCにも、アプリケーションがデプロイされるECS (Elastic Compute Service) インスタンスが含まれています。 ビジネス開発をサポートするために、VPC間でIPv6通信を確立する予定です。

手順

このトピックでは、コンソールとTerraformの2つの設定方法について説明します。 あなたのニーズに合った方法を選択してください。

コンソール

準備

  • 中国 (杭州) と中国 (上海) の各リージョンにIPv4 VPCが作成されています。 アプリケーションはVPCのECSインスタンスにデプロイされます。 詳細については、「IPv4 CIDRブロックを使用したVPCの作成」をご参照ください。

  • Cloud Enterprise Network (CEN) インスタンスが作成されました。 詳細については、「CENインスタンスの作成」をご参照ください。

手順1: VPCのIPv6の有効化

VPCのIPv6通信を確立するには、IPv6機能を有効にする必要があります。 次の手順を実行して、VPC1およびVPC2のIPv6を有効にします。

  1. VPCコンソールにログインします。

  2. 上部のナビゲーションバーで、VPCのリージョンを選択します。

  3. VPCページで、管理するVPCを見つけて、IPv6 CIDRブロック列でIPv6の有効化をクリックします。

  4. IPv6の有効化ダイアログボックスで、IPv6 CIDRブロックタイプBGPの割り当て (マルチISP)に設定し、すべてのvSwitchでIPv6を自動的に有効にするを選択し、OKをクリックします。

    • [すべてのvSwitchでIPv6を自動的に有効にする] を選択しない場合は、各vSwitchにIPv6 CIDRブロックを割り当てる必要があります。 詳細については、「vSwitchのIPv6の有効化」をご参照ください。

    • VPCとvSwitchに対してIPv6を有効にすると、システムはVPCとvSwitchにIPv6 CIDRブロックを割り当てます。 VPCまたはvSwitchページのIPv6 CIDRブロック列にIPv6 CIDRブロックを表示できます。 次の図は、VPCのIPv6 CIDRブロックを表示する方法を示しています。 vSwitchのIPv6 CIDRブロックを表示する手順は似ているため、このセクションでは詳しく説明しません。ipV6网段

ステップ2: ECSインスタンスへのIPv6アドレスの割り当て

リソース間でIPv6通信を確立する前に、リソースにIPv6アドレスが割り当てられていることを確認してください。 この例では、64ビットAlibaba Cloud Linux 3.2104 LTSオペレーティングシステムを使用するECS1およびECS2にIPv6アドレスが割り当てられています。

  1. 各ECSインスタンスにIPv6アドレスを割り当てます。 詳細については、「既存のインスタンスへのIPv6アドレスの割り当て」をご参照ください。

    説明

    ECSインスタンスの作成時にIPv6アドレスが既に割り当てられている場合は、この手順をスキップできます。

  2. ECSインスタンスのIPv6アドレスを設定します。 詳細については、「IPv6通信」をご参照ください。

    ECS1およびECS3のIPv6アドレスを次の図に示します。

    ECS1のIPv6アドレス

    ECS1-IPv6

    ECS3のIPv6アドレス

    ECS2-IPv

ステップ3: トランジットルーターの作成

CENインスタンスの中国 (杭州) と中国 (上海) の各リージョンにトランジットルーターを作成します。 トランジットルーターは、VPC間のリージョン間通信を確立するために使用されます。

  1. CENコンソールにログインします。

  2. インスタンス ページで、管理するCENインスタンスのIDをクリックします。

  3. 基本情報 > トランジットルーターを選択し、トランジットルーターの作成をクリックします。

  4. トランジットルーターの作成ダイアログボックスでパラメーターを設定し、OKをクリックします。

    Regionパラメーターを設定し、他のパラメーターはデフォルト値のままにします。 詳細については、「ルートルーターの作成」をご参照ください。

ステップ4: VPC接続の作成

異なるリージョンのVPC間で通信を確立する前に、VPCをトランジットルーターに接続する必要があります。

  1. CENコンソールにログインします。

  2. インスタンス ページで、管理するCENインスタンスのIDをクリックします。

  3. [基本情報] > [トランジットルーター] タブで、手順3で作成したトランジットルーターを見つけ、アクション 列の 接続の作成 をクリックします。

  4. ピアネットワークインスタンスとの接続 ページで、パラメーターを設定し、OK をクリックします。

    VPC1を中国 (杭州) リージョンのトランジットルーターに接続し、VPC2を中国 (上海) リージョンのトランジットルーターに接続します。 次の表では、トピックに強く関連するパラメーターのみを説明します。 他のパラメータはデフォルト値に保たれる。 詳細については、「VPC接続の作成」をご参照ください。

    パラメーター

    説明

    VPC1

    VPC2

    ネットワークタイプ

    [VPC] を選択します。

    リージョン

    ネットワークインスタンスのリージョンを選択します。

    中国 (杭州)

    中国 (上海)

    IPv6

    IPv6を有効にするかどうかを指定します。 IPv6はデフォルトで無効になっています。

    Enterprise Editionトランジットルーターを使用してVPCのIPv6通信を確立する場合は、IPv6を有効にします。

    説明

    既存のVPC接続に対してIPv6を有効にできます。 詳細については、「既存のVPC接続のIPv6の有効化」をご参照ください。

    IPv6を有効にする。

    IPv6を有効にする。

    トランジットルーター

    選択したリージョンのトランジットルーターが自動的に表示されます。

    リソース所有者 ID

    インスタンスが属するAlibaba Cloudアカウントを選択します。

    現在のアカウント

    現在のアカウント

    ネットワークインスタンス

    トランジットルーターに接続するVPCを選択します。

    VPC1

    VPC2。

    vSwitch

    トランジットルーターのゾーンにデプロイされているvSwitchを選択します。

    • Enterprise Editionトランジットルーターが1つのゾーンのみをサポートするリージョンにデプロイされている場合は、そのゾーンで1つのvSwitchを選択します。

    • Enterprise Editionトランジットルーターが複数のゾーンをサポートするリージョンにデプロイされている場合は、少なくとも2つのvSwitchを選択します。 ゾーンディザスタリカバリをサポートするには、2つのvSwitchを異なるゾーンに配置する必要があります。これにより、VPCとトランジットルーター間のデータ転送が中断されません。

      データはより短い距離で送信されるため、ネットワークの待ち時間を短縮し、ネットワークパフォーマンスを向上させるために、各ゾーンでvSwitchを選択することをお勧めします。

    ゾーンにvSwitchが存在しない場合は、vSwitchを作成する必要があります。 詳細については、「vSwitchの作成」をご参照ください。

    詳細設定

    デフォルトでは、高度な機能が有効になっています。 この例では、デフォルト設定は保持されます。

ステップ5: リージョン間接続の作成

VPCがトランジットルーターに接続された後、VPCがリージョン間で相互に通信できるように、リージョン間接続を作成する必要があります。

  1. CENコンソールにログインします。

  2. インスタンス ページで、管理するCENインスタンスのIDをクリックします。

  3. 基本情報 > トランジットルータータブで作成されたトランジットルーターを見つけます。ステップ3をクリックし、アクション列で接続の作成をクリックします。

  4. ピアネットワークインスタンスとの接続ページで、パラメーターを設定し、OKをクリックします。

    次の表に、この例に強く関連するパラメーターを示します。 他のパラメータはデフォルト値に保たれる。 詳細については、「Enterprise Editionトランジットルーターを使用したリージョン間接続の作成」をご参照ください。

    パラメーター

    説明

    ネットワークタイプ

    リージョン間接続 を選択します。

    リージョン

    接続するリージョンの1つを選択します。

    この例では、中国 (杭州) が選択されています。

    ピアリージョン

    接続する他のリージョンを選択します。

    この例では、中国 (上海) が選択されています。

    帯域幅割り当てモード

    リージョン間接続に帯域幅を割り当てる方法を選択します。

    この例では、[ペイ・バイ・データ転送] が選択されています。 リージョン間接続を介したデータ転送の量に基づいて課金されます。

    帯域幅

    リージョン間接続の最大帯域幅値を指定します。 単位:Mbit/s

    [ペイバイデータ転送] を選択した場合、[帯域幅] パラメーターはリージョン間接続の最大帯域幅を指定します。

    デフォルトの行タイプ

    リージョン間接続のラインタイプを選択します。

    この例では、デフォルト値が使用されます。 ラインタイプの詳細については、「ラインタイプ」をご参照ください。

    詳細設定

    デフォルトでは、高度な機能が有効になっています。 この例では、デフォルト設定は保持されます。

ステップ6: ルート同期を有効にする

既定では、Enterprise EditionトランジットルーターはIPv6ルートをVPCにアドバタイズしません。 Enterprise EditionトランジットルーターがIPv6ルートをVPC1およびVPC2にアドバタイズできるようにするには、ルート同期機能を有効にします。

  1. CEN コンソールにログインします。

  2. [インスタンス] ページで、管理するCENインスタンスのIDをクリックします。

  3. [基本情報] > [トランジットルーター] タブで、中国 (杭州) リージョンのトランジットルーターのIDをクリックします。

  4. [イントラリージョン接続] タブで、VPC1接続を見つけ、[ルート同期] 列でルート同期を有効にします。

  5. この手順を繰り返して、中国 (上海) リージョンのトランジットルーターでVPC2のルート同期を有効にします。

    ルート同期を有効にすると、Enterprise Editionトランジットルーターは自動的にルートをネットワークインスタンスに同期します。 [ルート同期] 列の [詳細] をクリックすると、[ネットワークインスタンスルートテーブル] タブでルート同期の詳細を表示できます。

    VPC1のルート

    德国VPC1路由

    VPC2のルート

    菲律宾

ステップ7: ネットワーク接続のテスト

上記の手順を完了すると、VPC1とVPC2はIPv6を介して相互に通信できます。 この手順では、VPC間のIPv6ネットワーク接続をテストします。

重要

デフォルトでは、セキュリティグループルールはIPv6通信を許可しません。 この手順を実行する前に、ECS1およびECS3のセキュリティグループルールがIPv6通信を許可していることを確認してください。 詳細については、「セキュリティグループルールの表示」および「セキュリティグループルールの追加」をご参照ください。

たとえば、インバウンド方向で許可ルールを設定し、プロトコルをICMP (IPv6) に設定し、許可オブジェクトを ::/0に設定します。 次に、このルールを使用してIPv6ネットワーク接続をテストできます。

  1. VPC 1 の ECS インスタンス (ECS 1) にログインします。 詳細については、「ECSリモート接続方法の概要」をご参照ください。

  2. 次のコマンドを実行して、ECS1のIPv6アドレスを使用してVPC2のECS3にアクセスします。

    ping6 <IPv6 address of ECS3>

    ECS1が次のエコー応答パケットを受信すると、VPCはIPv6を介して互いに通信できます。

    IPv

テラフォーム

このトピックでは、Terraformを使用して環境を設定できます。 Terraformのインストールと設定の詳細については、

Terraformをインストールします

次の手順は、LinuxホストでTerraform v1.9.8を実行する方法を示しています。 あなたが完了したことを確認してください

認証を行います。

説明

この例の特定のリソースにはコストがかかる場合があります。 リソースが不要になったときにリソースを解放または解除します。

ステップ1: リソースの作成

  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

ステップ2: 接続をテストする

上記の手順を完了すると、VPC1とVPC2間のIPv6ネットワーク通信が確立されます。 次のセクションでは、VPCインスタンス間のIPv6ネットワーク接続をテストする方法について説明します。

  1. ECS2にログインします (インスタンス名はtf-CenIpv6-ecs2) 。

    ECS2のログオンアドレスはTerraform出力で使用できます。 このアドレスをブラウザにコピーしてアクセスします。 ログオン時に、認証方法として [一時的なSSHキーベース] を選択します。

    image

  2. ECS2で次のコマンドを実行し、IPv6アドレスを表示します。

    ifconfig

    ECS2-IPv

  3. ECS1にログインします (インスタンス名はtf-CenIpv6-ecs1) 。

    ECS1のログオンアドレスはTerraform出力で使用できます。 このアドレスをブラウザにコピーしてアクセスします。 ログオン時に、認証方法として [一時的なSSHキーベース] を選択します。

    image

  4. 次のコマンドを実行して、ECS1のIPv6アドレスを使用してVPC2のECS3にアクセスします。

    ping6 <ECS2的IPv6地址>

    IPv

    ECS1が上の図に示すエコー応答パケットを受信した場合、IPv6通信が成功したことを示します。

ステップ3: リソースのリリース

検証が完了し、リソースが不要になったら、以下のコマンドを実行してリソースをリリースし、課金を停止します。

terraform destroy --auto-approve