
Google Cloud でホストされているインスタンスのインターフェースの IP 転送を有効にしようとしています。
- Google Compute Engine に f1 マイクロ VM インスタンスがあります。
- gcloudでIP転送ルールを作成しましたここ.
コマンドはcompute forwarding-rules describe myrulenamehere
ルールの説明を表示します。 - VM インスタンスの詳細ページを開くと、IP 転送がオフとマークされており、[編集] ボタンで変更できません。
転送ルールがすでに作成されている場合、インターフェイスの IP 転送をオンにするにはどうすればよいですか?
答え1
この値は変更できません。読み取り専用すでに作成されたインスタンスの値。Googleの公式ドキュメントから確認できるここ:
canIpForward フィールドはインスタンス作成時にのみ設定できます。インスタンスの作成後、フィールドは読み取り専用になります。
したがって、現時点では、仮想マシン、ターゲット インスタンス、および転送ルールを再度作成するしか選択肢はないと思います。作成時にフラグを使用して IP 転送を有効にすることができます。--can-ip-forward
例:
gcloud compute instances create instance-name --can-ip-forward
インスタンスの作成時に、コンソールのネットワーク インターフェース メニューから有効にすることもできます。
同じ転送ルールを維持し、ターゲットインスタンスを更新する実行中のみ:
gcloud compute forwarding-rules set-target ...
答え2
GCP では、VM インスタンスを再作成せずに IP_FORWARDING を更新するオプションが追加されました。
gcloud compute instances update-from-file INSTANCE_NAME
詳細については インスタンスプロパティの更新。
答え3
@Ivan が述べたように、GCP では作成後に canIpForward を設定できるようになりました。ただし、GCP を初めて使用する場合は、クラウド シェル/ターミナルからこれを行う方法が直感的ではありません。
コンソールを開き、次のコマンドを発行します。
gcloud compute instances export $myInstanceName --project $myProjectId --zone $instanceZone --destination=config_old.txt
設定ファイルは、ローカルワークステーションではなく、シェルインスタンスのストアに保存されます(ドキュメンテーション(と語っています)。
ターミナルのすぐ上にある縦に並んだ 3 つのドットをクリックし、ダウンロードをクリックします。 zip ファイルを解凍し、config_old.txt を見つけます。 変更する属性 (canIpForward: true) を編集し、ファイルを config_new.txt として保存します。縦に並んだ 3 つのドットをクリックし、アップロード -> ファイル -> ブラウザー -> アップロードの順にクリックします。
アップロードしたら、次のコマンドを発行します。
gcloud compute instances update-from-file $myInstanceName --project $myProjectId --zone $instanceZone --source=/home/some_folder/config_new.txt --most-disruptive-allowed-action=REFRESH
インスタンスのネットワークインターフェースを確認します。IP転送がオンになっています
値の例:
gcloud compute instances export server1-example-com --project example-project --zone us-west4-c --destination=config_old.txt
gcloud compute instances update-from-file server1-example-com --project example-project --zone us-west4-c --source=/home/some_folder/config_new.txt --most-disruptive-allowed-action=REFRESH