このページでは、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 セッションを作成する手順は次のとおりです。
プラットフォーム 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。
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 ```
VPNBGPPeer
は VPNTunnel
にアタッチする必要があります。この手順は、VPN トンネルを作成するで説明します。