Private Service Connect インターフェースのルーティングを構成する

このページでは、仮想 Private Service Connect インターフェースと動的 Private Service Connect インターフェースの両方のルーティングを構成する方法について説明します。

Private Service Connect インターフェースを介してトラフィックをルーティングする

Private Service Connect インターフェースを作成したら、インターフェースの VM でゲスト オペレーティング システム(ゲスト OS)を構成して、インターフェースを介してトラフィックをルーティングする必要があります。

SSH 接続を許可する

ファイアウォール ルールが、Private Service Connect インターフェースの VM への上り(内向き)SSH 接続を許可するように構成されていることを確認します。

Private Service Connect インターフェースの Trusted Cloud by S3NS 名を確認する

ルーティングを構成するには、Private Service Connect インターフェースの Trusted Cloud by S3NS 名が必要です。

動的 Private Service Connect インターフェースの Trusted Cloud by S3NS 名を確認するには、Google Cloud CLI を使用します。

コンソール

  1. Trusted Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. Private Service Connect インターフェースを持つ VM の名前をクリックします。

  3. [ネットワーク インターフェース] セクションで、仮想 Private Service Connect インターフェースの名前(nic1 など)を見つけてメモします。

gcloud

  1. gcloud compute instances describe コマンドを使用します。

    gcloud compute instances describe VM_NAME \
        --zone=ZONE
    

    次のように置き換えます。

    • VM_NAME: Private Service Connect インターフェースを持つ VM の名前
    • ZONE: VM のゾーン
  2. コマンドの出力で、Private Service Connect インターフェースの Trusted Cloud by S3NS 名を見つけてメモします。

    • 仮想 Private Service Connect インターフェースの場合、名前は nic[interface_number] の形式になります(nic0nic1 など)。
    • 動的 Private Service Connect インターフェースの場合、名前は nic[parent_interface_number.VLAN_ID] の形式になります(nic0.10nic1.42 など)。

動的 Private Service Connect インターフェースの自動管理を構成する

動的 Private Service Connect インターフェースのルーティングを構成する場合は、動的ネットワーク インターフェースの自動管理を有効にします。この操作は VM ごとに 1 回だけ行う必要があります。

Private Service Connect インターフェースのゲスト OS 名を確認する

ルーティングを構成するには、Private Service Connect インターフェースのゲスト OS 名が必要です。これは、 Trusted Cloud by S3NSのインターフェース名とは異なります。

Debian VM でインターフェースの名前を確認するには、次の操作を行います。他のオペレーティング システムを搭載した VM については、オペレーティング システムの公開ドキュメントをご覧ください。

  1. Private Service Connect インターフェースの VM に接続します。
  2. 次のコマンドを実行します。

    ip address
    

    ネットワーク インターフェースのリストで、Private Service Connect インターフェースの IP アドレスに関連付けられているインターフェース名を見つけてメモします。たとえば、Linux ゲスト エージェントが VM のネットワーク インターフェースを管理している場合、名前は次の形式になります。

    • 仮想 Private Service Connect インターフェース: ens[number](例: ens5)。
    • 動的 Private Service Connect インターフェース: gcp.ens[parent_interface_number].[VLAN_ID]gcp.ens5.10 など)。

Private Service Connect インターフェースのゲートウェイ IP アドレスを確認する

ルーティングを構成するには、Private Service Connect インターフェースのデフォルト ゲートウェイの IP アドレスが必要です。

  1. Private Service Connect インターフェースの VM に接続します。
  2. インターフェースの VM から、関連するメタデータ サーバーGET リクエストを送信します。

    • 仮想 Private Service Connect インターフェースの場合は、次のリクエストを送信します。

      curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway -H "Metadata-Flavor: Google" && echo
      

      INTERFACE_NUMBER は、インターフェースのインデックスに置き換えます。たとえば、Private Service Connect インターフェースのTrusted Cloud by S3NS 名nic1 の場合は、値 1 を使用します。

    • 動的 Private Service Connect インターフェースの場合は、次のリクエストを送信します。

      curl http://metadata.google.internal/computeMetadata/v1/instance/vlan-network-interfaces/PARENT_INTERFACE_NUMBER/VLAN_ID/gateway -H "Metadata-Flavor: Google" && echo
      

      次のように置き換えます。

      • PARENT_INTERFACE_NUMBER: 動的 Private Service Connect インターフェースの親 vNIC のインデックス

        たとえば、Private Service Connect インターフェースのTrusted Cloud by S3NS 名nic1.5 の場合は、値 1 を使用します。

      • VLAN_ID: 動的 Private Service Connect インターフェースの VLAN ID

        たとえば、Private Service Connect インターフェースの Trusted Cloud by S3NS 名が nic1.5 の場合は、値 5 を使用します。

    リクエストの出力に、ゲートウェイの IP アドレスが表示されます。

コンシューマー サブネットのルートを追加する

Private Service Connect インターフェースに接続するコンシューマ サブネットごとに、Private Service Connect インターフェースのデフォルト ゲートウェイへのルートを追加する必要があります。これにより、コンシューマー ネットワークに送信されるトラフィックが Private Service Connect インターフェースを通過します。

以下では、Debian オペレーティング システムを使用する VM のルーティング テーブルを一時的に更新する方法について説明します。テーブルを完全に更新する場合や、別のオペレーティング システムでルートを更新する場合は、オペレーティング システムの公開ドキュメントをご覧ください。

  1. Private Service Connect インターフェースの VM に接続します。

  2. Private Service Connect インターフェースに接続するコンシューマ サブネットごとに次のコマンドを実行します。

    sudo ip route add CONSUMER_SUBNET_RANGE via GATEWAY_IP dev OS_INTERFACE_NAME
    

    次のように置き換えます。

  3. 次のコマンドを実行して、キャッシュ ルートテーブルからすべてのエントリを削除します。先ほど構成したルーティング テーブルで既存のインスタンスを使用している場合は、これが必要になる場合があります。

    sudo ip route flush cache
    

VPC Service Controls で Private Service Connect インターフェースを使用する

VPC Service Controls で Private Service Connect インターフェースを使用できます。これにより、プロデューサー VPC ネットワークはコンシューマー VPC ネットワークを介して Google API とサービスにアクセスし、コンシューマー組織は VPC Service Controls のセキュリティ上のメリットを利用できます。

この構成は、次のセクションで説明する次のいずれかの方法で実装できます。

  • ゲスト OS のルーティングを構成する
  • ネットワーク名前空間または VRF を使用して Private Service Connect インターフェースを分離し、ルーティングを構成する

ゲスト OS のルーティングを構成する

VPC Service Controls で Private Service Connect インターフェースを使用するには、インターフェースの VM のゲスト OS でルーティングを構成します。Google API とサービス宛てのトラフィックを Private Service Connect インターフェース経由で転送します。

以下では、Debian オペレーティング システムを使用する VM のルーティング テーブルを一時的に更新する方法について説明します。テーブルを完全に更新する場合や、別のオペレーティング システムでルートを更新する場合は、オペレーティング システムの公開ドキュメントをご覧ください。

ルーティングを構成するには、次の操作を行います。

  1. Private Service Connect インターフェースの VM への SSH 接続を許可します。
  2. VM に接続します。
  3. Private Service Connect インターフェースのカスタムルートテーブルを作成するには、次のコマンドを実行します。

    echo "1 ROUTE_TABLE_NAME" | sudo tee -a /etc/iproute2/rt_tables
    

    ROUTE_TABLE_NAME は、ルートテーブルの名前に置き換えます。

  4. Google API とサービスへのトラフィックのルートをルートテーブルに追加します。たとえば、restricted.googleapis.com 仮想 IP(VIP)へのトラフィックのルートを追加するには、次のコマンドを使用します。このコマンドは、restricted.googleapis.com の IPv4 アドレス範囲を指定します。

    sudo ip route add 199.36.153.4/30 dev OS_INTERFACE_NAME table ROUTE_TABLE_NAME
    

    OS_INTERFACE_NAME は、Private Service Connect インターフェースのゲスト OS 名ens5gcp.ens5.10 など)に置き換えます。

  5. Private Service Connect インターフェースから送信されるパケットにカスタムルート テーブルを使用するルーティング ルールを追加するには、次のコマンドを使用します。

    sudo ip rule add from INTERFACE_IP table ROUTE_TABLE_NAME
    

    INTERFACE_IP は、Private Service Connect インターフェースの IP アドレスに置き換えます。インターフェースの IP アドレスは、インターフェースの VM の説明を取得することで確認できます。

  6. 次のコマンドを実行して、キャッシュ ルートテーブルからすべてのエントリを削除します。先ほど構成したルーティング テーブルで既存のインスタンスを使用している場合は、これが必要になる場合があります。

    sudo ip route flush cache
    

名前空間または VRF を使用して Private Service Connect インターフェースを分離する

また、ネットワーク Namespace または仮想ルーティングと転送(VRF)を使用して Private Service Connect インターフェースを分離するように VM を構成することもできます。このアプローチは、Google Kubernetes Engine Pod で実行されているワークロードなど、コンテナ化されたワークロードに役立ちます。

インターフェースの分離に使用したのと同じコンテキストを使用してルーティングを構成し、Private Service Connect インターフェースを使用するワークロードが同じコンテキスト内に存在することを確認します。