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 トンネルを作成するで説明します。

次のステップ