仮想ネットワークインターフェースの作成
仮想ネットワーク・インターフェースは、ターゲットに接続せずに作成できます。 したがって、仮想ネットワーク・インターフェースは、そのターゲットが除去されても存在することができます。
例えば、VPC 内では、インスタンスには、インターネットからアクセスするために使用できるパブリック IP アドレスと、VPC 内の他のインスタンスからアクセスするために使用できるプライベート IP アドレスがあります。 カスタム・セキュリティー・グループ・ルールを使用してインスタンスを構成しました。 インスタンスを削除すると、パブリック IP アドレスとセキュリティー・グループが切り離されます。 プライベート IP アドレスは解放され、別のリソースによって再度予約できます。 削除されたインスタンスと同じパブリック IP アドレス、プライベート IP アドレス、およびセキュリティー・グループを使用して新規インスタンスを作成する場合は、プライベート IP アドレスを再度予約し、前のパブリック IP アドレスとセキュリティー・グループを個別に接続する必要があります。
仮想ネットワーク・インターフェースを使用して、インスタンスから独立したライフサイクルを持つ別個のリソース内の IP アドレスおよびセキュリティー・グループを管理できます。 プライベート IP アドレス、パブリック IP アドレス、およびセキュリティー・グループを使用して仮想ネットワーク・インターフェースを作成します。 次に、この仮想ネットワーク・インターフェースを使用してインスタンスを作成します。 後で、仮想ネットワーク・インターフェースを保持してインスタンスを削除し、同じ仮想ネットワーク・インターフェースを持つ新規インスタンスを作成することができます。
開始前に
仮想ネットワーク・インターフェースを作成するには、以下の前提条件を満たしている必要があります。
- VPC インスタンス
- 仮想ネットワーク・インターフェースを作成するためのサブネット
- 適切な IAM 権限 があることを確認します。 IP スプーフィングおよびインフラストラクチャー NAT を構成するには、IAM 管理者ロール権限が必要です。
仮想ネットワークインターフェイスに関する 計画上の考慮 事項と 既知の問題を 確認する。
仮想ネットワークインターフェースは、コンソール、CLI、API、Terraformで作成できる。
コンソールで仮想ネットワークインターフェースを作成する
コンソールで仮想ネットワークインターフェースを作成するには、以下の手順に従います:
- お使いのブラウザで、 IBM Cloud コンソールを開き、 アカウントにログインしてください。
- ナビゲーション メニュー
を選択し、 インフラストラクチャ
> ネットワーク > 仮想ネットワーク インターフェイスをクリックします。
- 「VPC の仮想ネットワーク・インターフェース (Virtual network interfaces for VPC)」ページで、 「作成」 をクリックします。
- 「ロケーション」セクションで、必要に応じて以下のフィールドを編集します。
- 地理的範囲 :仮想ネットワークインターフェースを作成する地理的範囲を指定します。
- リージョン :仮想ネットワークインターフェースを作成するリージョンを指定します。
- 「詳細」セクションで、以下の情報を入力します。
- 名前: 仮想ネットワーク・インターフェースの固有の名前 (
my-virtual-network-interfaceなど) を入力します。 - リソース・グループ: 仮想ネットワーク・インターフェースのリソース・グループを選択します。
- タグ :(任意)リソースを整理したり見つけたりするのに役立つタグを追加してください。 後でさらにタグを追加できます。 詳しくは、『タグの処理』を参照してください。
- アクセス管理タグ: (オプション) アクセス管理タグをリソースに追加して、アクセス制御関係の編成に役立てます。 サポートされるアクセス管理タグの形式は
key:valueのみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。
- 名前: 仮想ネットワーク・インターフェースの固有の名前 (
- 「ネットワーク設定」セクションで、以下の情報を入力してください:
-
仮想プライベート・クラウド: 仮想ネットワーク・インターフェースを作成する VPC を選択します。 VPC を作成する必要がある場合は、 「VPC の作成」 をクリックします。
-
サブネット: 仮想ネットワーク・インターフェースを作成するサブネットを選択します。 サブネットを作成する必要がある場合は、 「作成」 をクリックします。
-
IP スプーフィングを許可 (Allow IP spoofing): IP スプーフィングを有効または無効にするには、スイッチを選択します。
- IPスプーフィングを無効にすると、トラフィックはネットワークインターフェースで終了することなく、そのインターフェースを通過できるようになります。
- IP スプーフィングは、仮想サーバー・インスタンスとベア・メタル・サーバーのみをサポートします。 ファイル共有はサポートされていません。
-
インフラストラクチャー NAT: インフラストラクチャー NAT を有効または無効にするスイッチを選択します。
IPスプーフィングが有効になっている場合、インフラストラクチャNATも有効になります。
-
「有効」 には、1 つの浮動 IP アドレスが含まれ、仮想サーバー、ベアメタル・サーバー、およびファイル共有をサポートします。
-
「無効」 は、ベアメタル・サーバー上でのみ複数の浮動 IP アドレスをサポートします。 仮想サーバーやファイル共有を仮想ネットワークインターフェースのターゲットとして使用することはサポートされていません。
無効にすると、仮想サーバー・インスタンスは、NAT を使用せずに、ピアによって送信されたトラフィックを受信します。 宛先IPアドレスはフローティングIP アドレスであり、NATの実行はベアメタルサーバーが担当します。
-
-
プロトコル状態フィルター・モード: モードを設定するためのラジオ・ボタンを選択します。
-
自動 (デフォルト): フィルタリングは、仮想ネットワーク・インターフェースのターゲット・リソースに基づいて有効または無効になります。
- ベア・メタル・サーバー (無効)
- 仮想サーバー・インスタンス (有効)
- ファイル共有マウント (有効)
-
有効 : TCP 接続を強制的に標準に合わせ RFC793 パケットは対応するセキュリティグループルールおよびネットワークACLによって許可される。
-
無効: 対応するセキュリティ グループ ルールとネットワーク ACL によってのみパケットが許可されることを許可します。
-
-
- 「プライマリー IP」セクションで、以下の選択を行います。
- 予約方法: 1 次 IP アドレスを作成するかどうか、または手動で指定するかどうかを選択します。 独自の IP アドレスを指定する場合は、仮想ネットワーク・インターフェースの既存の予約 IP アドレスを入力するか、既存の予約 IP リスト・メニューから選択します。
- 自動解放: この仮想ネットワーク・インターフェースの自動解放を有効または無効にするには、スイッチをクリックします。
- 「浮動 IP」セクション (オプション) で、 「添付」 をクリックします。 表示されるサイド・パネルで、既存の浮動 IP アドレスのリストから選択するか、 「新しい浮動 IP の予約 (Reserve new Floating IP)」 を選択して、要求される情報を入力します。
BYOIP (IPv4) Beta新しいフローティングIP予約する際、「 パブリックアドレスのソース 」で 「カスタム承認済みCIDR 」を選択すると、 IBM が管理するプールではなく、ご自身の承認済み範囲からIPを割り当てることができます。 承認済みのCIDRを選択し、予約方法を選択してください。 詳細については、 カスタムで承認されたCIDRからフローティングIP を作成する をご覧ください。
浮動 IP が接続されている場合、仮想ネットワーク・インターフェースはファイル共有マウント・ターゲットとして受け入れられません。 インフラストラクチャNATが有効になっている場合、アタッチできるフローティングIP最大1つまでです。
{: note}
-
「2 次 IP」セクション (オプション) で、 「接続」 をクリックします。 予約方法を選択し、自動解放を有効にするかどうかを指定します。
セカンダリ IP アドレスが割り当てられた仮想ネットワークインターフェイスは、ファイル共有のマウント先として指定することはできません。
-
[セキュリティグループ] セクションで、ネットワークレベルでのトラフィックを制御するために、1つ以上5つ以下のセキュリティグループを選択してください。 リストからセキュリティー・グループを選択するか、 「作成」 をクリックしてセキュリティー・グループを作成することができます。 セキュリティー・グループの作成について詳しくは、 セキュリティー・グループの作成 を参照してください。
-
「要約」パネルで情報を確認し、 「仮想ネットワーク・インターフェースの作成」 をクリックします。
CLI から仮想ネットワークインターフェースを作成する
開始する前に、 CLI 環境をセットアップします。
export IBMCLOUD_IS_FEATURE_VNI_ENABLE_PROTOCOL_STATE_FILTERING=true
CLI から仮想ネットワーク・インターフェースを作成するには、次のコマンドを入力します。
ibmcloud is virtual-network-interface-create [--name NAME] [--allow-ip-spoofing false | true] [--auto-delete false | true] [--enable-infrastructure-nat false | true] [--protocol-state-filtering-mode auto | disabled | enabled] [[--rip RIP | [--rip-address RIP_ADDRESS --rip-auto-delete RIP_AUTO_DELETE --rip-name RIP_NAME]]] [--subnet SUBNET] [--ips RESERVED_IPS_JSON | @RESERVED_IPS_JSON_FILE] [--sgs SGS] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--vpc VPC] [--output JSON] [-q, --quiet]
ここで、
--name- この仮想ネットワーク・インターフェースの名前。
--allow-ip-spoofing- このインターフェースでソース IP スプーフィングを許可するかどうかを示します。
falseの場合、このインターフェースでは送信元IPアドレスの偽装が防止されます。trueの場合、このインターフェースでは送信元 IP アドレスの偽装が許可されます。 以下のいずれか:false、true。 --auto-delete- ターゲットの削除時に、この仮想ネットワーク・インターフェースが自動的に削除されるかどうかを示します。 仮想ネットワークインターフェースがバインドされていない場合は、
falseでなければなりません。 以下のいずれか:false、true。 --enable-infrastructure-nattrueの場合、VPCインフラストラクチャが必要なNAT処理を実行します。falseの場合、パケットはネットワークインターフェースとの間で変更されずに通過するため、ワークロードが必要なNAT操作をすべて実行できるようになります。 以下のいずれか:false、true。--protocol-state-filtering-mode- プロトコル状態フィルター・モードの状況。
auto、enabled、disabledのいずれか。 * 自動 (デフォルト): フィルタリングは、仮想ネットワーク・インターフェースのターゲット・リソースに基づいて有効または無効になります。 * ベア・メタル・サーバー (無効) * 仮想サーバー・インスタンス (有効) * ファイル共有マウント (有効) * 有効 : TCP 接続を強制的に標準に合わせ RFC793 パケットは対応するセキュリティグループルールおよびネットワークACLによって許可される。 * 無効: 対応するセキュリティ グループ ルールとネットワーク ACL によってのみパケットが許可されることを許可します。 --rip- 仮想ネットワーク・インターフェースにバインドする予約済み IP の ID または名前。
--rip-address- 仮想ネットワーク・インターフェースにバインドするための予約済み IP の IP アドレス。
--rip-auto-delete- ターゲットが削除されたとき、または予約済み IP がアンバインドされたときに、この予約済み IP が自動的に削除されるかどうかを示します。
--rip-name- 仮想ネットワーク・インターフェースにバインドするためのこの予約 IP の名前。
--subnet- 関連付けられたサブネット。
--ips ips RESERVED_IPS_JSON | @RESERVED_IPS_JSON_FILE- 仮想ネットワークインターフェースにバインドするための、JSON 形式または JSON ファイル形式のセカンダリ予約済み IP アドレス。 データスキーマについては、APIドキュメントの「IPs」プロパティをご確認ください。
RESERVED_IPS_JSON、@RESERVED_IPS_JSON_FILEのいずれかです。 --sgs- 仮想ネットワーク・インターフェースに使用するセキュリティー・グループの ID または名前。
--resource-group-id- リソース・グループの ID。 このIDは、
--resource-group-nameと互いに排他的です。 --resource-group-name- リソース・グループの名前。 この名前は「
--resource-group-id」と互いに排他的です。 --vpc- このVNIが関連付けられているVPCのIDまたは名前。
--output- 出力フォーマットを指定します。JSON のみがサポートされています。 以下のいずれかです:
JSON。 -q, --quiet- 詳細出力を抑制します。
コマンドの例
ibmcloud is virtual-network-interface-create --subnet 7208-d42716a5-6df2-416c-979d-f26330b9eod1ibmcloud is virtual-network-interface-create --name cli-vni-1 --allow-ip-spoofing true --auto-delete true --enable-infrastructure-nat true --protocol-state-filtering-mode auto --rip 7208-d4c0abbe-3fc2-4696-9fe1-4eb3dc9af976 --ips '[{"id":"7208-d83b7e58-3c3d-47d0-89c5-02d9a20c72fd"},{"address":"10.240.64.13", "auto_delete": false, "name": "srip2"}]' --sgs r006-aa7c7658-e503-4456-b342-8d6a89e05115,r006-4fb388f1-2b6e-4013-b279-7a8748f4d6ca --resource-group-id 11caaa983d9c4beb82690daab08717e9ibmcloud is virtual-network-interface-create --name cli-vni-2 --allow-ip-spoofing true --auto-delete true --enable-infrastructure-nat true --protocol-state-filtering-mode enabled --rip cli-rip-1 --subnet my-subnet --vpc vpc-cli-1 --ips '[{"id":"7208-d83b7e58-3c3d-47d0-89c5-02d9a20c72fd"},{"address":"10.240.64.14", "auto_delete": false, "name": "srip3"}]' --sgs cli-sg,sanctity-contest-only-filing --resource-group-name Defaultibmcloud is virtual-network-interface-create --name cli-vni-4 --allow-ip-spoofing false --auto-delete false --enable-infrastructure-nat false --protocol-state-filtering-mode disabled --subnet 7208-bfe017e7-6e71-415a-8615-0ee787fbeef9 --rip-address 10.240.64.15 --rip-auto-delete false --rip-name primar-ip-1 --ips '[{"id":"7208-2772a45f-c062-4e22-bafb-32ea792da56b"},{"address":"10.240.64.17", "auto_delete": false, "name": "sec-ip-2"}]' --sgs r006-aa7c7658-e503-4456-b342-8d6a89e05115,r006-4fb388f1-2b6e-4013-b279-7a8748f4d6ca --resource-group-id 11caaa983d9c4beb82690daab08717e9ibmcloud is virtual-network-interface-create --name cli-vni-3 --allow-ip-spoofing true --auto-delete false --enable-infrastructure-nat true --protocol-state-filtering-mode auto --subnet my-subnet --vpc vpc-cli-1 --rip-address 10.240.64.18 --rip-auto-delete true --rip-name primar-ip-2 --ips '[{"id":"7208-d42716a5-6df2-416c-979d-f26330b9d0b1"},{"address":"10.240.64.19", "auto_delete": true, "name": "sec-ip-3"}]' --sgs cli-sg,sanctity-contest-only-filing --resource-group-name Default
API を使用した仮想ネットワーク・インターフェースの作成
API を使用して仮想ネットワーク・インターフェースを作成するには、以下の手順を実行します。
-
適切な変数を設定して API 環境をセットアップします。
-
API コマンドで使用する追加の変数を格納します。次に例を示します。
version(string):YYYY-MM-DDの形式の API バージョン。
-
すべての変数が開始されたら、仮想ネットワーク・インターフェースを作成します。
curl -X POST \ "$vpc_api_endpoint/v1/virtual_network_interfaces?version=$version&generation=2" \ -H "Authorization: Bearer $iam_token" \ -d '{ "name": "my-virtual-network-interface", "primary_ip": { "address": "10.0.0.5" }, "protocol_state_filtering_mode": "disabled", "security_groups": [ { "id": "be5df5ca-12a0-494b-907e-aa6ec2bfa271" }, { "id": "032e1387-71ba-4e83-b268-a53edf94af19" } ], "subnet": { "id": "032e1387-71ba-4e83-b268-a53edf94af19" } }'
Terraform を使用した仮想ネットワーク・インターフェースの作成
以下の例では、Terraform を使用して仮想ネットワーク・インターフェースを作成します。
resource "ibm_is_virtual_network_interface" "is_virtual_network_interface_instance" {
allow_ip_spoofing = true
auto_delete = false
enable_infrastructure_nat = true
name = "my-virtual-network-interface"
subnet = "<SubnetId>"
protocol_state_filtering_mode = "auto"
}
詳細については、 Terraformレジストリを参照してください。