予約 IP について
VPC の予約済み IP 機能を使用すると、リソースで使用する IP アドレスを予約できます。 特定のアドレスを指定することも、システムに任意の使用可能なアドレスを選択させることもできます。 また、アドレスをバインドするターゲットの有無にかかわらず、新しい IP 予約を行うこともできます。
開始前に
予約済み IP は、サブネットのサブリソースです。 Identity and Access Management (IAM) は現在、サブリソースをサポートしていないため、予約済み IP はサブネットから権限を「継承」します。
予約済み IP に必要な IAM 許可を確認するには、サブネット呼び出しを参照してください。
VPC はフラグメント化された IP パケットをサポートしません。 フラグメント化されたパケットは、エッジでドロップされます。
予約済み IP の既知の問題
以下の問題は、予約済み IP に適用されます。 これらの問題は、今後のリリースで解決される予定です。
問題: VPNゲートウェイ、IKSワーカーノード、またはDNSサービスインスタンスにバインドされている予約済みIPアドレスについて、ターゲットがないように表示される(予約済みIPリソースを取得する際、 target プロパティが含まれていない)。
その結果、こうした予約済みIPアドレスは、バインドされていないように見える場合があります。 一見すると制限がないように見えますが、これらの予約済みIPアドレスは、対象となるリソースが削除されるまで削除することはできません。
コンソール上で、「unbound」と表示されている予約済みIPアドレスは、表示できないリソースにバインドされている可能性があります。
問題点: メタデータAPIは現在、予約済みIPアドレスに対応していません。
回避策: インスタンス上の各ネットワーク・インターフェースの IP アドレスを取得するには、引き続き primary_ipv4_address プロパティーを使用します。 VPC メタデータ API を参照してください。
問題: VPC API を使用して [ベアメタルサーバーのネットワークインターフェースにフローティングIPを一覧表示する](/docs/apis/vpc#list-bare-metal-server-network-interface-floating-) を実行すると、ベアメタルサーバーのネットワークインターフェースに関連付けられているフローティングIP アドレスのリストが不完全になる場合があります。
ベア・メタル・ネットワーク・インターフェースに関連付けられた浮動 IP は、ネットワーク・インターフェース status が availableになるまで使用できません。
回避策:
- ベアメタルサーバーのネットワークインターフェースが「
available」の状態になるまで待ってから、そのインターフェースに割り当てフローティングIP アドレスを一覧表示してください。 - すべての浮動 IP をリストします。まだ
availableではないベア・メタル・サーバー・インターフェースに関連付けられているものを表示します。
コンソールで予約IPを作成する
予約 IP を作成するには、以下の手順を実行します。
- 「 IBM Cloud 」メニューから、「 Infrastructure 」>「 Network 」>「 Subnets 」を選択します。
- 既存のサブネットを選択するか、新しいサブネットを作成します。
- 「予約済み IP」タブをクリックします。
- **作成 +**をクリックします。
以下のセクションでは、異なる属性を持つ予約済み IP アドレスの処理について説明します。
関連付けられていない予約済み IP の作成
関連付けられていない予約済み IP を作成するには、以下の手順を実行します。
- 予約 IP の名前を入力します。 名前には必ず、スペースを含まない小文字の英数字を使用してください。
- システムで自動的に予約 IP を選択するか、既存の予約 IP のリストから選択するか、自分で入力するかを選択します。
- 特定の IP アドレスが必要な場合は、アドレスを選択します (オプション)。
- **「IP の予約」**をクリックします。
予約済み IP の削除
UI を使用して予約済み IP を削除(解放)するには、 [Subnets]>[Reserved IPs]に移動し、削除したい予約済み IP の横にある![アクションメニュー をクリックします。 「 リリース 」を選択してください。
CLI からの予約済み IP アドレスの操作
CLI を使用して、予約済み IP アドレスを作成、更新、および削除できます。
開始する前に、 CLI 環境をセットアップします。
CLI から予約済み IP アドレスを作成する
CLI を使用して VPC プライベート IP アドレスを予約するには、以下のコマンドを実行します。
ibmcloud is subnet-reserved-ip-create SUBNET [--vpc VPC] [--name NAME] [--address IPADDRESS] [--auto-delete true | false] [--target TARGET] [--output JSON] [-q, --quiet]
ここで、
- SUBNET はサブネットの ID です。
- --vpc は、VPC の ID または名前です。 このオプションは、この VPC 内で固有のリソースを名前で指定する場合にのみ必要です。
- --name は、この予約 IP のユーザー定義名です。 名前は、予約済み IP が存在するサブネット内で固有である必要があります。
ibm-で始まる名前は、プロバイダー所有のリソース用に予約されています。 - --address は予約する IP アドレスです。このアドレスは、そのサブネット上で既に予約されていないものでなければなりません。 指定しない場合、サブネット上の使用可能なアドレスが自動的に選択されます。
- --auto-delete は、自動削除機能の設定方法を決定します。
trueに設定されている場合、この予約 IP は、ターゲットが削除されると自動的に削除されます。true、falseのいずれか (デフォルト:true)。 - --target は、予約 IP のターゲットです。
- --output は出力形式を指定します。JSON のみがサポートされます。
- -q, --quiet は、詳細な出力を非表示にします。
CLI から予約済み IP アドレスを更新する
CLI から予約済み IP アドレスを更新するには、次のコマンドを実行します
ibmcloud is subnet-reserved-ip-update SUBNET RESERVED_IP [--vpc VPC] [--name NEW_NAME] [--auto-delete true | false] [--output JSON] [-q, --quiet]
ここで、
- SUBNET はサブネットの ID です。
- RESERVED_IP は、予約済み IP の ID です。
- --vpc は、VPC の ID または名前です。 これは、この VPC 内で固有のリソースを名前で指定する場合にのみ必要です。
- --name は、予約 IP の新しい名前です。
- --auto-delete は、自動削除機能の設定方法を決定します。
trueに設定されている場合、この予約 IP は、ターゲットが削除されると自動的に削除されます。true、falseのいずれか (デフォルト:true)。 - --output は出力形式を指定します。JSON のみがサポートされます。
- -q, --quiet は、詳細な出力を非表示にします。
CLI から予約済み IP を削除する
CLI から予約済み IP を削除するには、その予約済み IP のバインドを解除する必要があります。 予約済み IP をアンバインドした後、以下のコマンドを実行して削除します。
ibmcloud is subnet-reserved-ip-delete SUBNET (RESERVED_IP1 RESERVED_IP2 ...) [--vpc VPC] [-f, --force] [--output JSON] [-q, --quiet]
ここで、
- SUBNET はサブネットの ID です。
- RESERVED_IP1 RESERVED_IP2 は、予約 IP の ID です。 1 つ以上を指定できます。
- --vpc は、VPC の ID または名前です。 これは、この VPC 内で固有のリソースを名前で指定する場合にのみ必要です。
- --force, -f は、確認を求めずに操作を強制します。
- --output は出力形式を指定します。JSON のみがサポートされます。
- -q, --quiet は、詳細な出力を非表示にします。
API の使用
API を使用して予約済み IP を作成するには、以下の手順に従ってください
-
API 環境をセットアップします。
-
API コマンドで使用する変数にサブネット ID を保管します。
export SubnetId=<your_subnet_id> -
予約 IP を作成し、オプションで
addressプロパティーにアドレスを指定します。
curl -X POST -sH "Authorization:${iam_token}" \
"$vpc_api_endpoint/v1/subnets/$SubnetId/reserved_ips?version=$api_version&generation=2" \
-d '{"name": "test-reserved-ip", "address": "10.240.0.15"}' | jq
この例では、 MITライセンス の下で提供されているサードパーティ製ツールである jq をパーサーとして使用しています。インスタンスを作成する際に利用可能なすべてのVPCイメージに、 jq がプリインストールされているとは限りません。 使用前に jq をインストールするか、お好みの別のパーサーを使用する必要がある場合があります。
予約済み IP の削除
予約済み IP を削除するには、以下の API を使用します。
curl -X DELETE -sH "Authorization:${iam_token}" \
"$vpc_api_endpoint/v1/subnets/$SubnetId/reserved_ips/$ReservedIpId?version=$api_version&generation=2"
- この API では、1 次ネットワーク・インターフェースにバインドされている予約済み IP を削除することはできません。 仮想サーバー・インスタンスには 1 次ネットワーク・インターフェースが必要であり、すべてのネットワーク・インターフェースには予約 IP が必要です。
- 2 次ネットワーク・インターフェースにバインドされる予約 IP は、以下のようなさまざまなリソースにバインドできますが、これらに限定されるわけではありません。
- ネットワーク・インターフェース
- 仮想プライベート・エンドポイント (VPE)
- ロード・バランサー
- VPN ゲートウェイ
- IKS ワーカー
- DNS Services インスタンス
- 予約 IP をアンバインドすると、自動削除プロパティーが
trueに設定されている場合に予約 IP が削除されます。
自動削除が無効になっている場合
バインドせずに予約済み IP を作成した場合、デフォルトでは自動削除は無効になっています。 アンバインドされた予約済み IP では、自動削除を有効にすることはできません。
自動削除オプションがオフの場合、アンバインドによって予約済み IP はそのまま残りますが、予約済み IP は削除されません。
自動削除が有効になっている場合
予約 IP を指定せずに仮想サーバー・インスタンスを作成すると、システムによって予約 IP が作成され、1 次ネットワーク・インターフェースにバインドされます。 このシナリオでは、自動削除機能はデフォルトで有効になっています。
自動削除オプションがオンの場合、ターゲットから予約 IP をアンバインドすると、予約 IP が削除されます。
予約済み IP が削除されるまでに数分かかる場合があります。