仮想ネットワークインターフェースの作成
仮想ネットワーク・インターフェースは、ターゲットに接続せずに作成できます。 したがって、仮想ネットワーク・インターフェースは、そのターゲットが除去されても存在することができます。
例えば、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)」 を選択して、要求される情報を入力します。
浮動 IP が接続されている場合、仮想ネットワーク・インターフェースはファイル共有マウント・ターゲットとして受け入れられません。 インフラストラクチャーNATが有効な場合、最大1つのフローティングIPをアタッチできる。
-
「2 次 IP」セクション (オプション) で、 「接続」 をクリックします。 予約方法を選択し、自動解放を有効にするかどうかを指定します。
セカンダリIPがアタッチされている仮想ネットワークインターフェイスは、ファイル共有のマウントターゲットとして受け入れられません。
-
Security groups(セキュリティ・グループ)セクションでは、ネットワーク・レベルでトラフィックを制御するセキュリティ・グループを最低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-nat
true
の場合、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-f26330b9eod1
ibmcloud 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 11caaa983d9c4beb82690daab08717e9
ibmcloud 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 Default
ibmcloud 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 11caaa983d9c4beb82690daab08717e9
ibmcloud 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レジストリを参照。