このセクションでは、GCP で NSX Advanced Load Balancer によってサポートされるネットワーク トポロジーについて説明します。
使用されるネットワークには、次のタイプがあります。
- フロントエンド データ ネットワーク
-
このネットワークは、VIP を SE に接続します。すべての VIP トラフィックは、このネットワークを介して SE に到達します。
- バックエンド データ ネットワーク
-
このネットワークは、SE をアプリケーション サーバに接続します。SE とアプリケーション サーバ間のすべてのトラフィックは、このネットワークを通過します。
- 管理ネットワーク
-
このネットワークは、すべての管理操作のために SE をコントローラに接続します。
GCP のプロジェクト間で VPC ネットワークを共有できます。共有 VPC の詳細については、「共有 VPC」ガイドを参照してください。
GCP では、同じ VPC から 2 つの NIC(VPC に複数のサブネットがある場合でも)を単一の仮想マシンに関連付けることができません(複数のネットワーク インターフェイスを持つ VM を作成するを参照)。そのため、データ NIC と管理 NIC の両方を別々の VPC に含める必要があります。
GCP ロード バランサは、仮想マシンの最初のインターフェイスにのみトラフィックを転送します。
ネットワーク構成モード
ネットワーク構成モードには、次のタイプがあります。
インバンド管理
専用管理を備えたワンアーム
専用管理を備えた 2 アーム モード
インバンド管理
インバンド管理の機能は次のとおりです。
SE は 1 つの VPC サブネットにのみ接続されます。
データ(フロントエンドとバックエンド)と管理トラフィックの間にネットワーク隔離はありません。両方とも同じ VPC サブネットを通過するためです。
SE サブネット VPC は、VPC ピアリングを必要とせず、異なるプロジェクトにコントローラ、SE、およびサーバを柔軟に配置できる共有 VPC にすることができます。
インバンド管理では、SE 仮想マシン用に少なくとも 1 つの vCPU が必要です。
インバンド管理を次の図で示します。
ユーザー インターフェイスを介した GCP クラウドの構成
NSX Advanced Load Balancer バージョン 22.1.3 以降では、ユーザー インターフェイスを使用して共有 VPC を構成できます。GCP クラウドを構成するには、次の手順を実行します。
[作成] ドロップダウン メニューから [Google Cloud Platform] を選択します。
の順に移動します。一般的な詳細を指定し、[認証情報の設定] をクリックして GCP 認証情報を設定します。[サービス エンジンのプロジェクト ID] を指定します。デフォルトのサービス アカウントとして [デフォルトのサービス アカウントとしてのコンピューティング アカウント] チェック ボックスを選択するか、ドロップダウン メニューから認証情報を選択します。
次の管理詳細を指定します。
管理 VPC プロジェクト ID
管理 VPC ネットワーク名
管理 VPC サブネット名
[ターゲット タグ] を指定します。必須ではありません。
[Cloud Storage ID] や [Cloud Storage バケット名] などのストレージの詳細を指定します。
暗号化キーの詳細を次のように指定します。ただし、これは必須ではありません。
サービス エンジン イメージの暗号化キー ID
サービス エンジン ディスクの暗号化キー ID
GCS バケットの暗号化キー ID
GCS オブジェクトの暗号化キー ID
VIP 割り当ては、ルートまたは ILB を介して設定できます。
IP アドレス管理または DNS プロファイルの詳細を指定します。状態ベースの DNS 登録を有効にするには、[状態ベースの DNS 登録の有効化] チェック ボックスを選択します。
[タグ] セクションにキーと値を追加します。
必要な詳細を指定した後、[保存] をクリックしてクラウドを保存します。
CLI を使用した GCP クラウドの構成
gcp_configuration
の network_config
フィールドを inband_management
に設定します。インバンド オブジェクトでは、次のフィールドを設定する必要があります。
vpc_project_id
:SE 仮想マシンに接続する必要があるネットワークの VPC プロジェクト ID。デフォルトでは、SE プロジェクト ID が使用されます。vpc_network_name
:SE 仮想マシンに接続する必要があるネットワークの VPC 名。vpc_subnet_name
:SE インターフェイス IP アドレスの割り当て元となる VPC サブネット名。
例
[admin:controller]: > configure cloud gcp-cloud-inband [admin:controller]: cloud> vtype cloud_gcp [admin:controller]: cloud> gcp_configuration [admin:controller]: cloud:gcp_configuration> se_project_id service-engine-project [admin:controller]: cloud:gcp_configuration> region_name us-central1 [admin:controller]: cloud:gcp_configuration> zones us-central1-a [admin:controller]: cloud:gcp_configuration> zones us-central1-b [admin:controller]: cloud:gcp_configuration> network_config config inband_management [admin:controller]: cloud:gcp_configuration:network_config> inband [admin:controller]: cloud:gcp_configuration:network_config:inband> vpc_network_name network-shared [admin:controller]: cloud:gcp_configuration:network_config:inband> vpc_project_id network-project [admin:controller]: cloud:gcp_configuration:network_config:inband> vpc_subnet_name subnet-1 [admin:controller]: cloud:gcp_configuration:network_config:inband> save [admin:controller]: cloud:gcp_configuration:network_config> save [admin:controller]: cloud:gcp_configuration> save [admin:controller]: cloud> save +------------------------------+----------------------------------------+ | Field | Value | +------------------------------+----------------------------------------+ | uuid | cloud-ce377a7b-965f-4714-be1a-7b6c0e64c22f| | name | gcp-cloud-inband | | vtype | CLOUD_GCP | | apic_mode | False | | gcp_configuration | | | region_name | us-central1 | | zones[1] | us-central1-a | | zones[2] | us-central1-b | | se_project_id | service-engine-project | | network_config | | | config | INBAND_MANAGEMENT | | inband | | | vpc_subnet_name | subnet-1 | | vpc_project_id | network-project | | vpc_network_name | network-shared | | vip_allocation_strategy | | | mode | ROUTES | | dhcp_enabled | True | | mtu | 1500 bytes | | prefer_static_routes | False | | enable_vip_static_routes | False | | license_type | LIC_CORES | | state_based_dns_registration | True | | ip6_autocfg_enabled | False | | dns_resolution_on_se | False | | enable_vip_on_all_interfaces | False | | tenant_ref | admin | | license_tier | ENTERPRISE_18 | | autoscale_polling_interval | 60 seconds | +------------------------------+----------------------------------------+ [admin:10-138-10-31]: >
ユーザー インターフェイスを介したインバンド
[ネットワーク] セクションで [インバンド] オプションを選択した場合は、VPC プロジェクトとネットワーク名を指定する必要があります。
専用管理を備えたワンアーム
専用管理を備えたワンアームの機能は次のとおりです。
SE は 2 つの VPC サブネットに接続されています。1 つ目は管理トラフィック用、2 つ目はデータ トラフィック用です。
データと管理トラフィック間のネットワーク隔離が提供されますが、フロントエンド データとバックエンド データは同じネットワークを経由します。
SE の最初のインターフェイスはデータ ネットワークに接続されます。
以前の NSX Advanced Load Balancer バージョンでは、共有 VPC は最初の NIC でのみサポートされていました。そのため、データ NIC のみを共有 VPC に含めることができます。
共有 VPC は、複数の NIC でサポートされています。そのため、データ NIC と管理 NIC の両方を共有 VPC から取得できます。
SE とコントローラが異なるプロジェクトにある場合は、管理 VPC を他のプロジェクト VPC とピアリングする必要があります。
SE 仮想マシンには少なくとも 1 つの vCPU が必要です。
以下は、専用管理を備えたワンアームの図式です。
CLI を使用した GCP クラウドの構成
gcp_configuration
の network_config
フィールドを one_arm_mode
に設定します。one_arm
オブジェクトでは、次のフィールドを設定する必要があります。
data_vpc_project_id
:サービス エンジン仮想マシンに接続する必要があるデータ ネットワークの VPC プロジェクト ID。デフォルトでは、サービス エンジンのプロジェクト ID が使用されます。data_vpc_network_name
:サービス エンジン仮想マシンに接続する必要があるデータ ネットワークの VPC ネットワーク名。data_vpc_subnet_name
:サービス エンジン データ インターフェイスの IP アドレスの割り当て元となる VPC サブネット名。management_vpc_network_name
:サービス エンジン仮想マシンに接続する必要がある管理ネットワークの VPC ネットワーク名。management_vpc_subnet_name
:サービス エンジン管理インターフェイスの IP アドレスの割り当て元となる VPC サブネット名。management_vpc_project_id
:サービス エンジン管理ネットワークのプロジェクト ID。デフォルトでは、サービス エンジンのプロジェクト ID が使用されます。
例
[admin:controller]: > configure cloud gcp-cloud-onearm [admin:controller]: cloud> vtype cloud_gcp [admin:controller]: cloud> gcp_configuration [admin:controller]: cloud:gcp_configuration> se_project_id service-engine-project [admin:controller]: cloud:gcp_configuration> region_name us-central1 [admin:controller]: cloud:gcp_configuration> zones us-central1-a [admin:controller]: cloud:gcp_configuration> zones us-central1-b [admin:controller]: cloud:gcp_configuration> network_config config one_arm_mode [admin:controller]: cloud:gcp_configuration:network_config> one_arm [admin:controller]: cloud:gcp_configuration:network_config:one_arm> data_vpc_project_id data-network-project-id [admin:controller]: cloud:gcp_configuration:network_config:one_arm> data_vpc_network_name data-network [admin:controller]: cloud:gcp_configuration:network_config:one_arm> data_vpc_subnet_name data-subnet [admin:controller]: cloud:gcp_configuration:network_config:one_arm> management_vpc_network_name management-network [admin:controller]: cloud:gcp_configuration:network_config:one_arm> management_vpc_subnet_name management-subnet [admin:controller]: cloud:gcp_configuration:network_config:one_arm> management_vpc_project_id management-vpc-project-id [admin:controller]: cloud:gcp_configuration:network_config:one_arm> save [admin:controller]: cloud:gcp_configuration:network_config> save [admin:controller]: cloud:gcp_configuration> save [admin:controller]: cloud> save +-----------------------------------+-----------------------------------+ | Field | Value | +-----------------------------------+-----------------------------------+ | uuid | cloud-d9e4f50b-eab8-40a1-be1f-b6a90e597ac8 | | name | gcp-cloud-onearm | | vtype | CLOUD_GCP | | apic_mode | False | | gcp_configuration | | | region_name | us-central1 | | zones[1] | us-central1-a | | zones[2] | us-central1-b | | se_project_id | service-engine-project | | network_config | | | config | ONE_ARM_MODE | | one_arm | | | data_vpc_subnet_name | data-subnet | | data_vpc_project_id | data-network-project-id | | management_vpc_subnet_name | management-subnet | | data_vpc_network_name | data-network | | management_vpc_network_name | management-network | | management_vpc_project_id | management-vpc-project-id | | vip_allocation_strategy | | | mode | ROUTES | | dhcp_enabled | True | | mtu | 1500 bytes | | prefer_static_routes | False | | enable_vip_static_routes | False | | license_type | LIC_CORES | | state_based_dns_registration | True | | ip6_autocfg_enabled | False | | dns_resolution_on_se | False | | enable_vip_on_all_interfaces | False | | tenant_ref | admin | | license_tier | ENTERPRISE_18 | | autoscale_polling_interval | 60 seconds | +-----------------------------------+-----------------------------------+ [admin:admin:controller]: >
専用管理を備えた 2 アーム モード
専用管理を備えた 2 アーム モードの機能は次のとおりです。
SE は、フロントエンド データ トラフィック、管理トラフィック、バックエンド データ トラフィック用にそれぞれ 1 つずつ、合わせて 3 つの VPC サブネットに接続されます。
管理、フロントエンド データ、バックエンド データ ネットワーク間の分離を提供します。
SE の最初のインターフェイスは、フロントエンド データ ネットワークに接続されます。
共有 VPC は、複数の NIC でサポートされています。したがって、3 つの NIC はすべて共有 VPC から取得できます。
以前のバージョンの NSX Advanced Load Balancer では、共有 VPC は最初の NIC でのみサポートされていました。そのため、フロントエンド データ NIC のみを共有 VPC に含めることができます。
SE とコントローラが異なるプロジェクトにある場合は、管理 VPC を他のプロジェクト VPC とピアリングする必要があります。
SE の 3 番目のインターフェイスは、バックエンド データ ネットワークに接続されます。
SE 仮想マシン用に、少なくとも 4 つの vCPU が必要です。
ServiceEngineGroup
プロパティに 4 つ以上の vCPU を持つフレーバーを追加できます。
以下は、専用管理を備えた 2 アーム モードの図式です。
CLI を使用した GCP クラウドの構成
gcp_configuration
の network_config
フィールドを two_arm_mode に設定します。two_arm オブジェクトでは、次のフィールドを設定する必要があります。
frontend_data_vpc_project_id
:サービス エンジン仮想マシンに接続する必要があるフロントエンド データ ネットワークの VPC プロジェクト ID。デフォルトでは、SE プロジェクト ID が使用されます。frontend_data_vpc_network_name
:SE 仮想マシンに接続する必要があるフロントエンド データ ネットワークの VPC ネットワーク名。frontend_data_vpc_subnet_name
:SE フロントエンド データ インターフェイス IP アドレスの割り当て元となる VPC サブネット名。management_vpc_network_name
:SE 仮想マシンに接続する必要がある管理ネットワークの VPC ネットワーク名。management_vpc_subnet_name
:SE 管理インターフェイス IP アドレスの割り当て元となる VPC サブネット名。backend_data_vpc_network_name
:SE 仮想マシンに接続する必要があるバックエンド データ ネットワークの VPC ネットワーク名。backend_data_vpc_subnet_name
:SE バックエンド データ インターフェイス IP アドレスの割り当て元となる VPC サブネット名。management_vpc_project_id
:SE 管理ネットワークのプロジェクト ID。デフォルトでは、SE プロジェクト ID が使用されます。backend_data_vpc_project_id
:SE バックエンド データ ネットワークのプロジェクト ID。デフォルトでは、SE プロジェクト ID が使用されます。
例
[admin:controller]: > configure cloud gcp-cloud-twoarm [admin:controller]: cloud> vtype cloud_gcp [admin:controller]: cloud> gcp_configuration [admin:controller]: cloud:gcp_configuration> se_project_id service-engine-project [admin:controller]: cloud:gcp_configuration> region_name us-central1 [admin:controller]: cloud:gcp_configuration> zones us-central1-a [admin:controller]: cloud:gcp_configuration> zones us-central1-b [admin:controller]: cloud:gcp_configuration> network_config config two_arm_mode [admin:controller]: cloud:gcp_configuration:network_config> two_arm [admin:controller]: cloud:gcp_configuration:network_config:two_arm> frontend_data_vpc_project_id frontend-data-network-project [admin:controller]: cloud:gcp_configuration:network_config:two_arm> frontend_data_vpc_network_name frontend-data-network-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> frontend_data_vpc_subnet_name frontend-data-subnet-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> management_vpc_network_name management-network-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> management_vpc_subnet_name management-subnet-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> management_vpc_project_id management-vpc-project-id [admin:controller]: cloud:gcp_configuration:network_config:two_arm> backend_data_pc_project_id backend-data-pc-project-id [admin:controller]: cloud:gcp_configuration:network_config:two_arm> backend_data_vpc_network_name backend-data-network-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> backend_data_vpc_subnet_name backend-data-subnet-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> save [admin:controller]: cloud:gcp_configuration:network_config> save [admin:controller]: cloud:gcp_configuration> save [admin:controller]: cloud> save +--------------------------------------+--------------------------------+ | Field | Value | +--------------------------------------+--------------------------------+ | uuid | cloud-500d70f5-0457-467c-b796-7652c701e2c7 | | name | gcp-cloud-twoarm | | vtype | CLOUD_GCP | | apic_mode | False | | gcp_configuration | | | region_name | us-central1 | | zones[1] | us-central1-a | | zones[2] | us-central1-b | | se_project_id | service-engine-project | | network_config | | | config | TWO_ARM_MODE | | two_arm | | | frontend_data_vpc_subnet_name | frontend-data-subnet-name | | frontend_data_vpc_project_id | frontend-data-network-project | | management_vpc_subnet_name | management-subnet-name | | backend_data_vpc_subnet_name | backend-data-subnet-name | | frontend_data_vpc_network_name | frontend-data-network-name | | management_vpc_network_name | management-network-name | | management_vpc_project_id | management-vpc-project-id | | backend_data_pc_project_id | backend-data-pc-project-id | | backend_data_vpc_network_name | backend-data-network-name | | vip_allocation_strategy | | | mode | ROUTES | | dhcp_enabled | True | | mtu | 1500 bytes | | prefer_static_routes | False | | enable_vip_static_routes | False | | license_type | LIC_CORES | | state_based_dns_registration | True | | ip6_autocfg_enabled | False | | dns_resolution_on_se | False | | enable_vip_on_all_interfaces | False | | tenant_ref | admin | | license_tier | ENTERPRISE_18 | | autoscale_polling_interval | 60 seconds | +--------------------------------------+--------------------------------+ [admin:controller]: > Configuring ServiceEngineGroup via CLI You can set GCP n2-standard-4 machine type in the Service Engine group as follows: [admin:controller]: > configure serviceenginegroup Default-Group [admin:controller]: serviceenginegroup> instance_flavor n2-standard-4 [admin:controller]: serviceenginegroup> save
バックエンド サーバの到達可能性のためのスタティック ルートの構成
バックエンド サーバがクラウドで構成された SE バックエンド データ サブネット以外のサブネットにある場合は、スタティック ルートが必要です。
スタティック ルートは、次の方法で構成する必要があります。
バックエンド サーバのサブネット プレフィックスに設定された宛先範囲。
SE に接続されている GCP バックエンド データ サブネットのゲートウェイに設定されたネクスト ホップ。
次の構成では、10.152.134.192/26 はサーバ サブネットのサブネット プレフィックスであり、10.152.134.1 はバックエンド サブネット VPC 内の SE に接続されたサブネットのゲートウェイです。
例
[admin:controller]: > configure vrfcontext global Multiple objects found for this query. [0]: vrfcontext-0390ab9e-510c-49ab-8906-7f6eb72ef7f9#global in tenant admin, Cloud Default-Cloud [1]: vrfcontext-ef6ae4f4-42c2-4225-9194-cec7ae294979#global in tenant admin, Cloud gcp-cloud-twoarm Select one: 1 [admin:controller]: vrfcontext> static_routes New object being created [admin:controller]: vrfcontext:static_routes> prefix 10.152.134.192/26 [admin:controller]: vrfcontext:static_routes> next_hop 10.152.134.1 [admin:controller]: vrfcontext:static_routes> route_id 1 [admin:controller]: vrfcontext:static_routes> save [admin:controller]: vrfcontext> save +------------------+-------------------------------------------------+ | Field | Value | +------------------+-------------------------------------------------+ | uuid | vrfcontext-ef6ae4f4-42c2-4225-9194-cec7ae294979 | | name | global | | static_routes[1] | | | prefix | 10.152.134.192/26 | | next_hop | 10.152.134.1 | | route_id | 1 | | system_default | True | | tenant_ref | admin | | cloud_ref | gcp-cloud-twoarm | +------------------+-------------------------------------------------+ [admin:admin:controller]: >
すべてのインターフェイスの VIP
GCP クラウドで VIP を構成して、すべての SE データ インターフェイスを一覧表示できます。この機能を使用すると、フロントエンドとバックエンドの両方のデータ VPC から VIP にアクセスできます。
この機能は、次の NSX Advanced Load Balancer クラウド構成でのみ使用できます。
vip_allocation_strategy
はルートに設定されます。VIP の GCP ルートは、フロントエンド データとバックエンド データ VPC の両方に作成されます。GCP のさまざまな VIP 割り当て方法については、「GCP の IP アドレス管理の構成」を参照してください。network_config
モードは two_arm です。
この機能を有効にするには、NSX Advanced Load Balancer クラウド構成の enable_vip_on_all_interfaces フィールドを設定します。サービス エンジン グループ内のすべての SE が、すべてのデータ インターフェイスに一覧表示されます。
NSX Advanced Load Balancer クラウドの仮想サービスと SE がすでに存在する場合は、このフィールドを変更できません。
GCP の GCP IP アドレス管理はサポートされていません。
CLI を使用した構成
次のコマンドを使用して、CLI を使用して VIP を構成できます。
[admin:admin:controller]: > configure cloud gcp-cloud-twoarm-all-interfaces [admin:controller]: cloud> vtype cloud_gcp [admin:controller]: cloud> gcp_configuration [admin:controller]: cloud:gcp_configuration> se_project_id service-engine-project [admin:controller]: cloud:gcp_configuration> region_name us-central1 [admin:controller]: cloud:gcp_configuration> zones us-central1-a [admin:controller]: cloud:gcp_configuration> zones us-central1-b [admin:controller]: cloud:gcp_configuration> network_config config two_arm_mode [admin:controller]: cloud:gcp_configuration:network_config> two_arm [admin:controller]: cloud:gcp_configuration:network_config:two_arm> frontend_data_vpc_project_id frontend-data-network-project [admin:controller]: cloud:gcp_configuration:network_config:two_arm> frontend_data_vpc_network_name frontend-data-network-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> frontend_data_vpc_subnet_name frontend-data-subnet-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> management_vpc_network_name management-network-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> management_vpc_subnet_name management-subnet-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> backend_data_vpc_network_name backend-data-network-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> backend_data_vpc_subnet_name backend-data-subnet-name [admin:controller]: cloud:gcp_configuration:network_config:two_arm> save [admin:controller]: cloud:gcp_configuration:network_config> save [admin:controller]: cloud:gcp_configuration> save [admin:controller]: cloud> enable_vip_on_all_interfaces [admin:controller]: cloud> save +--------------------------------------+--------------------------------+ | Field | Value | +--------------------------------------+--------------------------------+ | uuid | cloud-cd70e433-a85f-49db-bfbe-b9db6a938ba6 | | name | gcp-cloud-twoarm-all-interfaces| | vtype | CLOUD_GCP | | apic_mode | False | | gcp_configuration | | | region_name | us-central1 | | zones[1] | us-central1-a | | zones[2] | us-central1-b | | se_project_id | service-engine-project | | network_config | | | config | TWO_ARM_MODE | | two_arm | | | frontend_data_vpc_subnet_name | frontend-data-subnet-name | | frontend_data_vpc_project_id | frontend-data-network-project | | management_vpc_subnet_name | management-subnet-name | | backend_data_vpc_subnet_name | backend-data-subnet-name | | frontend_data_vpc_network_name | frontend-data-network-name | | management_vpc_network_name | management-network-name | | backend_data_vpc_network_name | backend-data-network-name | | vip_allocation_strategy | | | mode | ROUTES | | dhcp_enabled | True | | mtu | 1500 bytes | | prefer_static_routes | False | | enable_vip_static_routes | False | | license_type | LIC_CORES | | state_based_dns_registration | True | | ip6_autocfg_enabled | False | | dns_resolution_on_se | False | | enable_vip_on_all_interfaces | True | | tenant_ref | admin | | license_tier | ENTERPRISE_18 | | autoscale_polling_interval | 60 seconds | +--------------------------------------+--------------------------------+ [admin:controller]: >
GCP サービス アカウントには、すべての VPC プロジェクトで次の権限を持つロールが必要です。
network_project_role.yaml
詳細については、「ロールと権限(GCP フル アクセス)」を参照してください。
VIP ルートの優先度
現在、GCP でデフォルトの優先度が 2000 の VIP へのルートを作成し、ルートの優先順位を構成できます。仮想サービスがクラウドにない場合、またはすべての仮想サービスが無効な状態の場合にのみ、VIP ルートの優先度を変更できます。ルートの優先度は、[VIPAllocationMode] で [ルート] を選択した場合にのみ設定できます。新しく作成されたすべてのルートは、新しい値 route_priority で作成されます。