2.3. AWS VPN の設定
このサンプルプロセスでは、Amazon Web Services (AWS) Red Hat OpenShift Service on AWS を、お客様のオンサイトのハードウェア VPN デバイスを使用するように設定します。
現時点で AWS VPN は、NAT を VPN トラフィックに適用するための管理オプションを提供しません。詳細は、AWS Knowledge Center を参照してください。
プライベート接続を使用したすべてのトラフィックのルーティング (0.0.0.0/0
など) はサポートされていません。この場合は、SRE 管理トラフィックを無効にするインターネットゲートウェイを削除する必要があります。
ハードウェア VPN デバイスを使用して AWS VPC をリモートネットワークに接続する方法は、Amazon VPC の VPN Connections ドキュメントを参照してください。
2.3.1. VPN 接続の作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Amazon Web Services (AWS) Red Hat OpenShift Service on AWS クラスターを、お客様のオンサイトのハードウェア VPN デバイスを使用できるように設定できます。
前提条件
- ハードウェア VPN ゲートウェイデバイスモデルおよびソフトウェアバージョン (例: Cisco ASA バージョン 8.3 を実行)。Amazon VPC の ネットワーク管理者ガイド を参照して、お使いのゲートウェイデバイスが AWS でサポートされているかどうかを確認します。
- VPN ゲートウェイデバイスのパブリック静的 IP アドレス。
- BGP または静的ルーティング: BGP の場合は、ASN が必要です。静的ルーティングの場合は、1 つ以上の静的ルートを設定する必要があります。
- オプション: VPN 接続をテストするための到達可能なサービスの IP とポート/プロトコル。
2.3.1.1. VPN 接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
手順
- AWS の AWS Account Dashboard で Red Hat OpenShift Service にログインし、VPC Dashboard に移動します。
- Virtual Private Cloud で Your VPCs をクリックし、Red Hat OpenShift Service on AWS クラスターを含む VPC の名前と VPC ID を特定します。
- Virtual private network (VPN) で、Customer gateways をクリックします。
- Create customer gateway をクリックし、わかりやすい名前を付けます。
- BGP ASN フィールドに、カスタマーゲートウェイデバイスの ASN を入力します。
- IP address フィールドに、カスタマーゲートウェイデバイスの外部インターフェイス IP アドレスを入力します。
- Create customer gateway をクリックします。
仮想プライベートゲートウェイが目的の VPC に割り当てられていない場合:
- VPC Dashboard から、Virtual Private Gateway をクリックします。
- Create virtual private gateway をクリックし、わかりやすい名前を付けます。
- Create virtual private gateway をクリックします。Amazon default ASN はそのままにします。
- 新しく作成したゲートウェイを選択します。
- リストから Actions を選択し、Attach to VPC をクリックします。
- Available VPC で、新しく作成したゲートウェイを選択し、Attach to VPC をクリックして、以前に特定したクラスター VPC にゲートウェイを割り当てます。
2.3.1.2. VPN 接続の確立 リンクのコピーリンクがクリップボードにコピーされました!
手順
- VPC Dashboard の Virtual private network (VPN) で、Site-to-Site VPN connections をクリックします。
Create VPN connection をクリックします。
- わかりやすい名前タグを付けます。
- 以前に作成した仮想プライベートゲートウェイを選択します。
- カスタマーゲートウェイに Existing を選択します。
- カスタマーゲートウェイ ID を名前で選択します。
- VPN で BGP を使用する場合は Dynamic を選択します。使用しない場合は Static を選択して静的 IP の CIDR を入力します。複数の CIDR がある場合は、各 CIDR を Another Rule として追加します。
- Create VPN connection をクリックします。
- State で VPN ステータスが Pending から Available に変わるまで、約 5 - 10 分待ちます。
先ほど作成した VPN を選択し、Download configuration をクリックします。
- リストからカスタマーゲートウェイデバイスのベンダー、プラットフォーム、バージョンを選択し、Download をクリックします。
- Generic ベンダー設定は、プレーンテキスト形式で情報を取得する場合にも利用できます。
VPN 接続が確立されたら、Route Propagation をセットアップしてください。セットアップしない場合、VPN が予想通りに機能しない可能性があります。
VPC サブネット情報をメモします。これは、リモートネットワークとして設定に追加する必要があります。
2.3.1.3. VPN ルート伝播の有効化 リンクのコピーリンクがクリップボードにコピーされました!
VPN 接続を設定したら、必要なルートが VPC のルートテーブルに追加されるように、ルートの伝播が有効にされていることを確認する必要があります。
手順
- VPC Dashboard の Virtual private cloud で、Route tables をクリックします。
Red Hat OpenShift Service on AWS クラスターが含まれる VPC に関連付けられたプライベートルートテーブルを選択します。
注記クラスターによっては、特定の VPC に複数のルートテーブルが存在する場合があります。明示的に関連付けられた多数のサブネットを持つプライベートのルートテーブルを選択します。
- Route Propagation タブをクリックします。
表示される表に、以前に作成した仮想プライベートゲートウェイが表示されるはずです。Propagate 列の値を確認します。
- Propagation が No に設定されている場合は、Edit route propagation をクリックし、伝播の Enable チェックボックスをオンにして、Save をクリックします。
VPN トンネルを設定し、AWS がこれを Up として検出すると、静的ルートまたは BGP ルートは自動的にルートテーブルに追加されます。
2.3.2. VPN 接続の検証 リンクのコピーリンクがクリップボードにコピーされました!
ご使用の側から VPN トンネルを設定した後に、そのトンネルが AWS コンソールで稼働していること、およびトンネル全体で接続が機能していることを確認します。
前提条件
- VPN 接続を作成します。
手順
AWS でトンネルが稼働していることを検証します。
- VPC Dashboard の Virtual private network (VPN) で、Site-to-Site VPN connections をクリックします。
- 以前に作成した VPN 接続を選択し、Tunnel details タブをクリックします。
- 少なくとも 1 つの VPN トンネルが Up 状態になっていることがわかります。
接続を検証します。
エンドポイントデバイスへのネットワーク接続をテストする場合のトラブルシューティングツールとしては、
nc
(またはnetcat
) が役に立ちます。これはデフォルトのイメージに含まれ、接続を確立できる場合に迅速かつ明確に出力を提供します。busybox
イメージを使用して一時的な Pod を作成します。これは後で自身をクリーンアップします。oc run netcat-test \ --image=busybox -i -t \ --restart=Never --rm \ -- /bin/sh
$ oc run netcat-test \ --image=busybox -i -t \ --restart=Never --rm \ -- /bin/sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nc
を使用して接続を確認します。正常な接続の結果の例:
/ nc -zvv 192.168.1.1 8080 10.181.3.180 (10.181.3.180:8080) open sent 0, rcvd 0
/ nc -zvv 192.168.1.1 8080 10.181.3.180 (10.181.3.180:8080) open sent 0, rcvd 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 失敗した接続の結果の例:
/ nc -zvv 192.168.1.2 8080 nc: 10.181.3.180 (10.181.3.180:8081): Connection refused sent 0, rcvd 0
/ nc -zvv 192.168.1.2 8080 nc: 10.181.3.180 (10.181.3.180:8081): Connection refused sent 0, rcvd 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
コンテナーを終了します。これにより、Pod が自動的に削除されます。
/ exit
/ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.3. VPN 接続のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
トンネルが接続されていない
トンネル接続がまだ ダウン している場合は、以下を確認できます。
- AWS トンネルは VPN 接続を開始しません。接続の試行はカスタマーゲートウェイから開始する必要があります。
- ソーストラフィックが、設定されたカスタマーゲートウェイと同じ IP から送信されることを確認します。AWS は、ソース IP アドレスが一致しないゲートウェイへのすべてのトラフィックを通知なしでドロップします。
- 設定が AWS でサポートされる 値と一致することを確認します。これには、IKE バージョン、DH グループ、IKE ライフタイムなどが含まれます。
- VPC のルートテーブルを再確認します。伝播が有効で、先にターゲットとして作成した仮想プライベートゲートウェイを持つルートテーブルにエントリーがあることを確認します。
- 中断が発生する可能性があるファイアウォールルールが存在しないことを確認します。
- ポリシーベースの VPN を使用しているかどうかを確認します。これを使用している場合は、その設定によっては複雑な状態が生じる可能性があります。
- トラブルシューティングの手順の詳細は、AWS ナレッジセンター を参照してください。
トンネルが接続状態にならない
トンネル接続を一貫して Up の状態にすることができない場合は、すべての AWS トンネル接続がゲートウェイから開始される必要があることに注意してください。AWS トンネルは トンネリングを開始しません。
Red Hat は、ご使用の側から SLA モニター (Cisco ASA) または一部のデバイスをセットアップすることを推奨しています。これにより、VPC CIDR 範囲内で設定されるすべての IP アドレスで、ping
、nc
、telnet
などの対象 ("interesting") トラフィックが絶えず送信されます。接続が成功したかどうかにかかわらず、トラフィックがトンネルにダイレクトされます。
Down 状態のセカンダリートンネル
VPN トンネルが作成されると、AWS は追加のフェイルオーバートンネルを作成します。ゲートウェイデバイスによっては、セカンダリートンネルが Down 状態として表示される場合があります。
AWS 通知は以下のようになります。
You have new non-redundant VPN connections One or more of your vpn connections are not using both tunnels. This mode of operation is not highly available and we strongly recommend you configure your second tunnel. View your non-redundant VPN connections.
You have new non-redundant VPN connections
One or more of your vpn connections are not using both tunnels. This mode of
operation is not highly available and we strongly recommend you configure your
second tunnel. View your non-redundant VPN connections.