Network Load Balancer (NLB) は IPv6 ネットワークリクエストを転送できます。このトピックでは、デュアルスタック NLB インスタンスの IPv6 アタッチメントを有効にする方法について説明します。この機能を有効にすると、NLB インスタンスは IPv4 と IPv6 両方の Elastic Compute Service (ECS) インスタンスをバックエンドサーバーとして使用できるようになります。これにより、IPv6 ネットワーク上のクライアントは、NLB インスタンスを介してバックエンドサーバーにデプロイされている IPv4 および IPv6 サービスにアクセスできるようになります。
利用シーン
このトピックでは、NLB インスタンスを使用して IPv6 クライアントからのリクエストを転送し、インターネット経由で Virtual Private Cloud (VPC) 内の IPv4 および IPv6 サービスにアクセスする方法について説明します。IPv4 と IPv6 の両方のアドレスを持つ ECS インスタンス、VPC 内のデュアルスタック NLB インスタンス、および IPv6 アタッチメントが有効化されたサーバーグループを作成します。NLB インスタンスは、IPv6 クライアントからのリクエストを、バックエンド ECS インスタンスにデプロイされた IPv4 および IPv6 サービスにルートします。
制限事項
-
デュアルスタック NLB インスタンスをサポートするリージョンの一覧については、「デュアルスタック NLB をサポートするリージョン」をご参照ください。
-
デュアルスタック機能を使用するには、VPC のゾーンにある vSwitch で IPv6 を有効にする必要があります。
-
デュアルスタック NLB インスタンスは、IPv6 クライアントからのトラフィックを、IPv4 および IPv6 のバックエンドサービスに転送できます。
-
既存の IPv4 インスタンスをデュアルスタックインスタンスにアップグレードすることはできません。新しいデュアルスタックインスタンスを作成する必要があります。
-
IPv4 NLB インスタンスのリスナーを作成する場合、IPv6 アタッチメントが有効になっているサーバーグループを追加することはできません。
前提条件
-
China (Shanghai) リージョンに VPC1 という名前の VPC を作成し、VPC の IPv6 CIDR ブロックを有効化してあること。 これにより、IPv6 ゲートウェイが自動的に作成されます。
-
China (Shanghai) リージョンのゾーン E に vSwitch1 という名前の vSwitch、ゾーン G に vSwitch2 という名前の vSwitch を作成してあること。 両方の vSwitch で IPv6 を有効化してあること。
NLB インスタンスが必要に応じてスケールできるようにするには、NLB インスタンスをデプロイする各 vSwitch で少なくとも 8 つの IP アドレスを予約してください。
ステップ 1:ECS インスタンスの作成と設定
- VPC コンソールにログインします。
-
左側のナビゲーションペインで、vSwitch をクリックします。
-
vSwitch があるリージョンを選択します。このトピックでは、例として China (Shanghai) を使用します。
-
vSwitch ページで、目的の vSwitch を探し、操作 列でを選択します。
-
Elastic Compute Service (ECS) ページの [カスタム起動] タブで、2 つの ECS インスタンスを作成します。IPv4 インスタンスに ECS01、IPv6 インスタンスに ECS02 という名前を付けます。ECS インスタンスに関連付けられたセキュリティグループで、ポート 80 のトラフィックが許可されていることを確認してください。詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
-
ECS01 および ECS02 インスタンスにリモート接続します。詳細については、「接続方法」をご参照ください。
-
ECS01 で、次のコマンドを実行して Nginx サービスをデプロイします。
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! this is ipv4 rs." > index.html -
ECS02 で、次のコマンドを実行して Nginx サービスをデプロイします。
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! this is ipv6 rs." > index.html -
ECS02 インスタンスの IPv6 アドレスを設定します。詳細については、「IPv6 通信」をご参照ください。
説明ECS02 インスタンスが Alibaba Cloud Linux 3.2104 LTS 64-bit イメージを使用しており、インスタンス作成時に [ネットワークとセキュリティグループ] セクションの [IPv6] パラメーターで [IPv6 アドレスを無料で割り当て] を選択した場合は、このステップをスキップできます。
-
VPC 内の ECS02 インスタンスにリモート接続します。
-
IPv6 アドレスを設定します。
ip addr | grep inet6またはifconfig | grep inet6コマンドを実行します。次のような出力が返された場合、IPv6 アドレスはすでに設定されており、以降の手順はスキップできます。
[root@iZbpxxx fxe4Z ~]# ip addr | grep inet6 inet6 ::1/128 scope host inet6 2408:4005:xxx:xxx:7cd5:aa9c/128 scope global dynamic noprefixroute inet6 fe80::xxx:cc1c/64 scope link noprefixroute-
コマンドの出力に
inet6が含まれない場合、インスタンスの IPv6 サービスは有効になっていません。まず、IPv6 サービスを有効にする必要があります。 -
inet6の出力は返されたものの、scope globalを含む行がない場合は、IPv6 アドレスの設定に進むことができます。
-
-
ステップ 2: IPv6 セキュリティグループルールの設定
IPv6 クライアントからのインバウンドリクエストを許可するには、ECS02 インスタンスに IPv6 セキュリティグループルールを設定する必要があります。
ECS コンソールにログインします。
左側メニューで、 を選択します。
-
上部メニューで、セキュリティグループが属するリージョンを選択します。 このトピックでは China (Shanghai) を使用します。
-
セキュリティグループ ページで、対象のセキュリティグループを見つけ、操作 列の ルールの管理 をクリックします。
-
セキュリティグループの詳細 ページで、アクセスルール セクションの インバウンド タブをクリックし、ルールを追加 をクリックします。
-
セキュリティグループルールの作成 ページで、次のパラメーターを使用して IPv6 セキュリティグループルールを設定し、送信 をクリックします。
パラメーター
説明
[ポリシー]
トラフィックを許可するか拒否するかを指定します。 このトピックでは、許可 を選択します。
[優先順位]
セキュリティグループルールの優先度です。 値が小さいほど、優先度が高くなります。 有効な値の範囲は 1~100 です。
このトピックでは、デフォルト値の 1 を使用します。
[プロトコル]
トラフィックのプロトコルタイプです。 このトピックでは、[すべての ICMP-IPv6] を選択します。
[送信元]
タイプに IPv6 を選択し、::/0 と入力して、すべての IPv6 アドレスからのアクセスを許可します。
説明このトピックで設定するソースは、デモ用です。 ビジネス要件に基づいて、特定の IPv6 CIDR ブロックからのアクセスを許可できます。
宛先 (このインスタンス)
トラフィックの宛先 IP アドレスとポートです。
プロトコル を [すべての ICMP-IPv6] に設定した場合、このパラメーターはデフォルトで すべて (-1/-1) になり、変更できません。
ステップ 3: NLB インスタンスの作成
- NLBコンソールにログインします。
-
インスタンス ページで、NLB の作成 をクリックします。
-
購入ページで、次のパラメーターを設定し、[今すぐ購入] をクリックして、画面の指示に従ってインスタンスを作成します。
このトピックでは、このシナリオに関連するパラメーターのみを説明します。その他のパラメーターはデフォルト値を使用してください。詳細については、「NLB インスタンスの作成と管理」をご参照ください。
-
デフォルトでは、新しいパブリックデュアルスタック NLB インスタンスには、プライベート IPv6 アドレスが割り当てられます。これをパブリックアドレスに変更するには、次の手順を実行します。
-
インスタンス ページに戻り、対象の NLB インスタンスを見つけて、その ID をクリックします。
-
インスタンスの詳細 タブの 基本情報 セクションで、ネットワーク を見つけます。次に、プライベート IPv6 の右側にある ネットワークタイプの変更 をクリックします。
-
ネットワークタイプの変更 ダイアログボックスで、OK をクリックします。
変更が完了すると、IPv6 のネットワークタイプがプライベートからパブリックに変更されます。
-
ステップ 4:サーバーグループの作成
上部のナビゲーションバーで、NLBインスタンスがデプロイされています。
-
サーバーグループ ページで、サーバーグループの作成 をクリックします。
-
サーバーグループの作成 ダイアログボックスで、次のパラメーターを設定し、作成 をクリックします。
このセクションでは、主要なパラメーターのみを説明します。その他のパラメーターには、デフォルト値を使用します。詳細については、「サーバーグループの作成」をご参照ください。
パラメーター
説明
[サーバーグループタイプ]
サーバーグループに追加するバックエンドサーバーのタイプ。このトピックでは、サーバータイプ を選択します。
[サーバーグループ名]
サーバーグループのカスタム名を入力します。
VPC
サーバーグループが属する VPC。
説明選択した VPC で IPv6 が有効になっており、それが NLB インスタンスの作成時に選択した VPC と同じであることを確認してください。
[バックエンドサーバープロトコル]
バックエンドサーバープロトコルを選択します。このトピックでは、[TCP] を選択します。
[スケジューリングアルゴリズム]
スケジューリングアルゴリズムを選択します。このトピックでは、重み付きラウンドロビン を選択します。
[IPv6 のマウント]
IPv6 アタッチメントを有効にするかどうかを指定します。このトピックでは、IPv6 のマウント を有効にする必要があります。
[ヘルスチェック]
ヘルスチェックを有効または無効にします。このトピックでは、デフォルト設定を使用します。
-
サーバーグループの [操作] 列で、バックエンドサーバーの変更 をクリックし、次に バックエンドサーバーの追加 をクリックします。
-
バックエンドサーバーの追加 パネルで、サーバータイプ を ECS/ENI に設定し、作成した ECS01 および ECS02 インスタンスを選択し、IP 列で、ECS01 の IPv4 アドレスと ECS02 の IPv6 アドレスを選択します。次に、次へ をクリックします。
-
ポート/重み ページで、ECS01 および ECS02 インスタンスの重みとポートを設定し、次に OK をクリックします。
このトピックでは、ECS インスタンスのポートを 80 に、重みをデフォルト値の 100 に設定します。
ステップ 5: リスナーの設定
左側のナビゲーションウィンドウで、を選択します。
-
[インスタンス]ページでターゲットインスタンスを探し、[操作] 列 の [リスナーの作成] をクリックします。
-
[リスナーの設定]ページで、次のパラメーターを設定し、[次へ] をクリックします。
このトピックでは、このシナリオに関連するパラメーターのみを説明します。その他のパラメーターはデフォルト値を使用してください。リスナーの設定方法の詳細については、「TCP リスナーの追加」をご参照ください。
パラメーター
説明
[リスナープロトコルの選択]
リスナーのプロトコルです。このトピックでは、TCP を選択します。
[リスナーポート]
リクエストを受信してバックエンドサーバーに転送するためのリスナーポートです。このトピックでは、80 と入力します。
[リスナー名]
リスナーのカスタム名を入力します。
[詳細設定]
デフォルト設定を使用します。[変更] をクリックして変更することもできます。
-
サーバーグループ 設定ウィザードで、サーバータイプ と、サーバータイプ の下の対象のサーバーグループを選択し、バックエンドサーバー情報を表示して、次へ をクリックします。
-
[確定]ページで、設定内容を確認し、[送信] をクリックします。
-
[OK] をクリックして [リスナー]タブに戻ります。リスナーの [ヘルスチェックステータス]が [正常]に変わることは、バックエンドサーバー ECS01 および ECS02 が NLB インスタンスの転送するリクエストを処理できることを示します。
ステップ 6:DNS 解決の設定
本番環境では、CNAME レコードを追加して、ドメイン名を NLB インスタンスのドメイン名にマッピングすることを推奨します。
-
左側のナビゲーションウィンドウで、 を選択します。
-
インスタンス ページで、作成された NLB インスタンスの DNS 名をコピーします。
-
CNAME レコードを追加します。
説明-
Alibaba Cloud DNS コンソールにログインします。
-
Add Record パネルで、CNAME レコードに次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
レコードタイプ
ドロップダウンリストから CNAME を選択します。
ホストレコード
ドメイン名のプレフィックス。このトピックでは、@ を入力します。
説明ルートドメインの場合、ホスト名を @ に設定します。
DNS リクエストソース
デフォルトを選択します。
レコード値
ドメイン名の CNAME アドレスを入力します。これは、ご利用の NLB インスタンスの DNS 名です。
TTL
Time to Live (TTL) は、DNS サーバーがレコードをキャッシュする期間を指定します。デフォルト値を使用します。
-
ステップ 7: 結果の検証
-
NLB インスタンスの可用性をテストします。
説明テストを開始する前に、クライアントが IPv6 サービスをサポートしていることを確認してください。
-
IPv6 サービスにアクセスできる任意の Linux クライアントを使用します。CentOS システムに telnet がインストールされていない場合は、
yum install -y telnetコマンドを実行してインストールします。 -
telnet <domain_name> <port>コマンドを実行します。Connected to nlb-... を含むレスポンスが返された場合、NLB インスタンスがバックエンドサーバーにリクエストを転送していることを確認できます。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'ブラウザで
http://<domain_name>にアクセスします。次のコンテンツが表示された場合、NLB インスタンスがバックエンドサーバーにリクエストを転送できることを示します。ページには
Hello World ! this is ipv6 rs.というテキストが表示されます。
-
-
(オプション) 障害をシミュレートします。
-
ECS01 で、
systemctl stop nginx.serviceコマンドを実行してアプリケーションを停止します。 -
数分待ってから、クライアントから再度
telnet <domain_name> <port>コマンドを実行します。Connected to nlb-... を含むレスポンスメッセージが引き続き返されます。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'ブラウザで
http://<domain_name>にアクセスします。次のコンテンツが表示された場合、NLB インスタンスが引き続き正常なバックエンドサーバーにリクエストを転送していることを示します。ページには
Hello World ! this is ipv4 rs.というテキストが表示され、検証が成功したことを示します。 -
ECS01 で、
systemctl start nginx.serviceコマンドを実行してアプリケーションを再起動します。ECS02 で、systemctl stop nginx.serviceコマンドを実行してアプリケーションを停止します。 -
数分待ってから、クライアントから再度
telnet <domain_name> <port>コマンドを実行します。Connected to nlb-... を含むレスポンスメッセージが引き続き返されます。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'ブラウザで
http://<domain_name>にアクセスします。次のコンテンツが表示された場合、NLB インスタンスが正常なバックエンドサーバーにリクエストを転送していることを示します。レスポンステキスト
Hello World ! this is ipv6 rs.が返され、リクエストが IPv6 バックエンドサーバーに正常に転送されたことを示します。 -
単一のバックエンドサーバーの障害は、NLB インスタンスの可用性に影響しません。
-
リソースのリリース
-
ECS、セキュリティグループやその他のリソースをクリーンアップします。
-
ECS01 インスタンスとそのセキュリティグループを削除します。
-
上記の手順に従って、ECS02 インスタンスとそのセキュリティグループを削除します。
-
-
DNS レコードを削除します。
詳細については、「DNS レコードの削除」をご参照ください。
-
NLB リソースをクリーンアップします。
-
VPC リソースをクリーンアップします。
-
VPC コンソールにログインします。上部メニューで、インスタンスがデプロイされているリージョンを選択します。
-
インスタンスの [操作] 列で 削除 をクリックします。表示されるダイアログボックスで、強制削除のオプションを選択して VPC と vSwitch を削除します。
-
関連ドキュメント
-
NLB のユースケースやコンポーネントなどについては、「NLB とは」をご参照ください。
-
NLB の機能については、「機能」をご参照ください。
-
NLB のクォータとその引き上げ方法については、「制限」をご参照ください。
-
NLB をサポートするリージョンについては、「NLB のリージョンとゾーン」をご参照ください。
-
NLB の課金方法については、「課金」をご参照ください。