VPN トンネルの作成

このページでは、ある VPN ゲートウェイから別の VPN ゲートウェイに VPN トンネルを追加する方法について説明します。

VPN トンネルは、組織のネットワークとリモート ネットワーク間の暗号化された IPsec トンネルです。VPNGateway インターフェースを PeerGateway インターフェースに接続し、VPNBGPPeer リソースを使用してトンネル経由でルーティング情報を交換します。

始める前に

VPN トンネルを作成するには、次のものが必要です。

  • 既存の VPN ゲートウェイと VPN ピア ゲートウェイ リソース。詳細については、VPN ゲートウェイとピア ゲートウェイを作成するをご覧ください。
  • 既存の VPN BGP ピア オブジェクト。詳細については、VPN BGP セッションを作成するをご覧ください。
  • 既存のシークレット。詳細については、PSK を使用してシークレットを作成するをご覧ください。
  • 必要な ID とアクセスロール:

    • VPN 管理者: VPN 関連のすべてのリソースに対する読み取り / 書き込み権限があります。組織の IAM 管理者に、VPN 管理者(vpn-admin)ロールを付与するよう依頼します。
    • VPN 閲覧者: VPN 関連のすべてのリソースに対する読み取り権限があります。組織の IAM 管理者に、VPN 閲覧者(vpn-viewer)ロールを付与するよう依頼します。
    • 詳細については、ロールの定義をご覧ください。

VPN トンネルの作成

前の手順で作成した VPNGatewayPeerGatewayVPNBGPPeerSecret リソースを参照して、トンネルを作成します。

VPN トンネルを作成する手順は次のとおりです。

  1. VPNTunnel オブジェクトを作成します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER create -n platform -f - <<EOF
    apiVersion: networking.gdc.goog/v1
    kind: VPNTunnel
    metadata:
      name: VPN_TUNNEL_NAME
    spec:
      vpnInterface:
        name: VPN_GW_NAME
        namespace: platform
        interface: VPN_INTERFACE_NAME
      peerInterface:
        name: PEER_GW_NAME
        namespace: platform
        interface: PEER_INTERFACE_NAME
      vpnBGPPeer:
        name: VPN_BGP_PEER_NAME
        namespace: platform
      ikeKey:
        name: PSK_NAME
        namespace: platform
    EOF
    

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

    • MANAGEMENT_API_SERVER: ゾーン API サーバーの kubeconfig パス。ターゲット ゾーンの API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインで詳細を確認してください。
    • VPN_TUNNEL_NAME: 使用されている VPN トンネルの名前。
    • VPN_GW_NAME: VPN ゲートウェイの名前。
    • VPN_INTERFACE_NAME: VPN インターフェースの名前。
    • PEER_GW_NAME: ピア VPN ゲートウェイの名前。
    • PEER_INTERFACE_NAME: ピア VPN ゲートウェイ インターフェースの名前。
    • VPN_BGP_PEER_NAME: VPN BGP ピアの名前。詳細については、VPN BGP セッションを作成するをご覧ください。
    • PSK_NAME: PSK を使用して Secret を作成するで作成した PSK の名前。
  2. Status フィールドを調べて、VPN_TUNNEL_NAME オブジェクトが正しく調整されたことを確認します。VPN トンネルの詳細を取得します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpntunnel VPN_TUNNEL_NAME
    

    出力を確認します。次の例のようになっている必要があります。

    Status:
      Conditions:
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Reconciled
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Ready
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Tunnel is established.
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  TunnelEstablished
      State:                   Established
    
  3. VPNGatewayPeerGatewayVPNBGPPeer オブジェクトは、VPNTunnel によって参照された後、ステータスが更新されている必要があります。たとえば、VPNBGPPeer が正しく調整されたことを確認すると、更新されたステータス値が表示されます。VPNBGPPeer オブジェクトの詳細を取得します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpnbgppeer VPN_BGP_PEER_NAME
    

    出力を調べます。ステータス値が更新されています。

    Status:
      Advertised:
        Prefix:  10.0.0.16/28
        Prefix:  10.0.1.32/27
        Prefix:  172.16.0.0/14
        Prefix:  172.20.0.0/17
        Prefix:  172.20.128.0/17
        Prefix:  2002:4860:100e:fa00::/58
      Conditions:
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ValidIPs
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  TunnelsAttached
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Reconciled
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  AdvertisedRoutesReady
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ReceivedRoutesValid
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ReceivedRoutesReady
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Ready
      Received:
        Prefix:  192.168.100.0/24
        Prefix:  193.188.200.0/24
      State:     Established
    

次のステップ