VPN BGP セッションを作成する

このページでは、VPN Border Gateway Protocol(BGP)セッションが準拠する必要がある仕様と、VPN BGP セッションの作成方法について説明します。

Google Distributed Cloud(GDC)エアギャップ VPN は、各 VPN トンネルの IPv4 BGP セッションを使用して動的ルーティングをサポートしています。BGP セッションにより、リモート ネットワークと GDC 組織の BGP ピアが互いにルートをアドバタイズできます。

始める前に

VPN BGP セッションを作成するには、必要な ID とアクセスロールが必要です。

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

VPN BGP セッションの仕様

組織内の BGP ピアは、BGP キープアライブ間隔 30 秒、ホールド タイマー 90 秒をサポートしています。各 BGP セッションの IPv4 アドレスは、次の要件を満たしている必要があります。

  • 各 BGP IPv4 アドレスは、169.254.0.0/16 範囲内に収まる同じ /30 サブネットに属している必要があります。
  • 各 BGP IPv4 アドレスは、/30 サブネットの最初のホストまたは 2 番目のホストです。サブネットの最初と最後の IP アドレスは、ネットワーク アドレスとブロードキャスト アドレス用に予約されています。
  • BGP セッションの各 BGP アドレス範囲は、組織のすべての VPN BGP セッション間で一意でなければなりません。

MD5 認証はサポートされていません。これは、MD5 ハッシュアルゴリズムを使用してデータの完全性と信頼性を検証する方法です。

VPN BGP セッションを作成する

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

  1. プラットフォーム Namespace の組織管理クラスタに VPNBGPPeer オブジェクトを作成します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER create -n platform -f - <<EOF
    apiVersion: networking.gdc.goog/v1
    kind: VPNBGPPeer
    metadata:
      name: VPN_BGP_PEER_NAME
    spec:
      remote:
        name: REMOTE_PEER_NAME
        ip: REMOTE_PEER_IP
        asn: REMOTE_PEER_ASN
      local:
        name: LOCAL_PEER_NAME
        ip: LOCAL_PEER_IP
        asn: LOCAL_PEER_ASN
    EOF
    

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

    • MANAGEMENT_API_SERVER: ゾーン API サーバーの kubeconfig パス。ターゲット ゾーンの API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインで詳細を確認してください。
    • VPN_BGP_PEER_NAME: VPN BGP ピアの名前。
    • REMOTE_PEER_NAME: リモート ネットワーク内の BGP ピアの名前。
    • REMOTE_PEER_IP: リモート ネットワーク内の BGP ピアの /30 サブネットの BGP IPv4 アドレス。
    • REMOTE_PEER_ASN: リモート ネットワーク用に構成された自律システム番号(ASN)。
    • LOCAL_PEER_NAME: GDC 組織内の BGP ピアの名前。
    • LOCAL_PEER_IP: GDC 組織内の BGP ピアの /30 サブネットの BGP IPv4 アドレス。
    • LOCAL_PEER_ASN: GDC 組織用に構成された ASN。
  2. Status フィールドを調べて、VPN_BGP_PEER_NAME オブジェクトが正しく調整されたことを確認します。VPNBGPPeer オブジェクトの詳細を取得します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpnbgppeer VPN_BGP_PEER_NAME
    

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

      Status:
        Conditions:
          Last Transition Time:  2024-05-10T00:26:13Z
          Message:               Ready
          Observed Generation:   1
          Reason:                Ready
          Status:                True
          Type:                  ValidIPs
          Last Transition Time:  2024-05-10T00:26:00Z
          Message:               Used by 0 VPNTunnels, must be used by a single VPNTunnel
          Observed Generation:   1
          Reason:                GetResourceFailed
          Status:                False
          Type:                  TunnelsAttached
          Last Transition Time:  2024-05-10T00:26:00Z
          Message:               TunnelsAttached or ValidIPs Condition not Ready.
          Observed Generation:   1
          Reason:                Unknown
          Status:                False
          Type:                  Reconciled
          Last Transition Time:  2024-05-10T00:26:01Z
          Message:               ValidIPs or Reconciled Condition not Ready.
          Observed Generation:   1
          Reason:                Unknown
          Status:                False
          Type:                  AdvertisedRoutesReady
          Last Transition Time:  2024-05-10T00:26:13Z
          Message:               Ready
          Observed Generation:   1
          Reason:                Ready
          Status:                True
          Type:                  ReceivedRoutesValid
          Last Transition Time:  2024-05-10T00:26:01Z
          Message:               TunnelsAttached Condition not Ready.
          Observed Generation:   1
          Reason:                Unknown
          Status:                False
          Type:                  ReceivedRoutesReady
          Last Transition Time:  2024-05-10T00:26:01Z
          Message:               Condition "TunnelsAttached" is not ready.
          Observed Generation:   1
          Reason:                NotReady
          Status:                False
          Type:                  Ready
      ```
    

VPNBGPPeerVPNTunnel にアタッチする必要があります。この手順は、VPN トンネルを作成するで説明します。

次のステップ