仮想ネットワーク・インターフェースについて
仮想ネットワーク・インターフェース (VNI) は、サブネット内のネットワーク・インターフェースの論理抽象化です。 ターゲット・リソースに接続して、そのリソースにネットワーク接続を提供することができます。 CRN を持つ最上位リソースとして、VNI のライフサイクルは、付加先のターゲット・リソースから独立しています (ただし、 auto_delete
が true
に設定されている場合を除きます)。 さらに、独自の IAM 権限のセットもあります。
VNI には、ネットワーキング・ポリシーを定義する以下のプロパティーがあります。
- 1 次 IP と 2 次 IP
- セキュリティー・グループ
- IP スプーフィング
- インフラストラクチャー NAT
- プロトコル状態のフィルタリング
これらのポリシーは、VNI がターゲットから切り離され、別のターゲットに接続されるときに保持されます。 プロパティーを変更する許可は、VNI のターゲットではなく、VNI で設定されます。
浮動 IP およびフロー・ログ・コレクターは、VNI に接続できるリソースです。 これらの接続されたリソースは、VNI があるターゲットから別のターゲットに接続を切り替えると、VNI に接続されたままになります。 さらに、以下を行います。
- VNI に接続された浮動 IP への参照は、VNI の子コレクションとして取得できます。
- VNI に接続されているフロー・ログ・コレクターを取得するには、フロー・ログ・コレクターをリストし、
target.id
でフィルタリングし、VNI のid
を指定します。
サポートされるすべてのターゲット・リソースがすべての VNI ポリシーをサポートするわけではありません。 詳しくは、既知の制限事項を参照してください。
主な利点と機能
仮想ネットワーク・インターフェースのハイライトは以下のとおりです。
- VPC サブネットから複数の 2 次プライベート IPv4 IP アドレスを割り当てる機能。
- ネットワーク・セキュリティーの制御を強化するために、セキュリティー・グループおよび固有の IAM ポリシーを定義して適用するオプション。
- 高可用性ソリューションのスケーラビリティーと柔軟性。
- サーバーに接続されていない存在、およびあるインスタンスまたはリソースから別のインスタンスまたはリソースに移動するオプション。これにより、フェイルオーバー時間が短縮されます。
- 浮動 IP、1 次/2 次予約 IP、およびセキュリティー・グループを接続する機能。
計画関連事項
VNIを作成する前に、以下の事項を確認してください
-
子ネットワーク・インターフェースを使用したリソースの作成は引き続きサポートされますが、2 次 IP アドレスなどの新しいネットワーキング機能は、仮想ネットワーク・インターフェースでのみサポートされます。
-
仮想ネットワーク・インターフェース上のすべての IP アドレスは、同じサブネット内になければなりません。
-
インスタンスまたはベア・メタル・サーバーではインターフェース・タイプを混在させることはできませんが、サブネットでは、インスタンスとベア・メタル・サーバーを混在させることができます。子ネットワーク・インターフェースを持つものと、仮想ネットワーク・インターフェースを持つものがあります。
-
仮想ネットワーク・インターフェースの作成時には、1 次 IP アドレスを構成する必要があります。 仮想ネットワーク・インターフェースの作成時に追加の (2 次) 予約 IP アドレスを構成することも、後で 2 次 IP アドレスを個別に追加することもできます。 すべての 2 次 IP アドレスは、1 次 IP アドレスと同じサブネット内になければなりません。
-
インフラストラクチャー NAT は、浮動 IP を介して割り当てられたパブリック IP アドレスからの宛先アドレスを、仮想サーバー・インスタンスのプライベート IP アドレスに変換します。 インフラストラクチャー NAT が有効になっている仮想ネットワーク・インターフェースでは、1 つの浮動 IP アドレスを構成できます。 このように構成された仮想ネットワーク・インターフェースは、インスタンスまたはベア・メタル・サーバーで使用できます。
-
IP スプーフィングを許可し、インフラストラクチャー NAT を無効にした仮想ネットワーク・インターフェースの場合は、複数の浮動 IP アドレスを構成できます。 この方法で構成された仮想ネットワーク・インターフェースは、ベア・メタル・サーバーでのみ使用できます。
-
仮想ネットワーク・インターフェースの
auto-delete
プロパティーがfalse
に設定されている場合、仮想サーバー・インスタンスを削除しても、仮想ネットワーク・インターフェースは残ります。 その後、仮想ネットワーク・インターフェースを別のターゲット・リソースに接続できます。 -
VNI がターゲットから切り離された後、それを以下のいずれかに再接続することができます。
- 新規共有マウント・ターゲット (ip-spoofing が無効になっていて、2 次 IP がなく、インフラストラクチャー NAT が
true
に設定されており、プロトコル状態のフィルタリングが無効になっていない場合) - インスタンス上の新規ネットワーク接続 (インフラストラクチャー NAT が
true
に設定されている場合) - ベア・メタル・サーバー上の新規ネットワーク接続 (ベア・メタルがサポートされている場合)
- 新規共有マウント・ターゲット (ip-spoofing が無効になっていて、2 次 IP がなく、インフラストラクチャー NAT が
プロトコル状態フィルター・モード
プロトコル状態フィルタリングは、仮想ネットワーク・インターフェース (VNI) を介して流れる各ネットワーク接続をモニターし、現在の接続状態およびプロトコルに基づいて無効なパケットをドロップします。 デュアル仮想ネットワーク機能 (VNF) で Active/Active HA 構成用に構成された経路など、両方向 ECMP 経路を使用する場合は、パケット・ロスを回避するためにフィルタリングを無効にすることができます。 フィルター操作を無効にすると、セキュリティー・グループ・ルールおよびネットワーク ACL によって許可されるパッケージが許可されますが、各 TCP 接続が RFC 793 TCP プロトコルと一致するように強制されることはありません。
VNI を 作成 または 更新 するときに、プロトコル状態フィルター・モード (auto
、 enable
、 disable
) を選択できます。 デフォルト
(auto
) では、VNI のターゲット・リソース・タイプに基づいてフィルタリングを有効または無効にします。 ターゲット・タイプがベア・メタル・サーバーの場合、フィルタリングは無効になります。仮想サーバー・インスタンスまたはファイル共有マウントの場合、フィルタリングは有効になります。
プロトコル状態フィルター・モードは、VNI でのみ使用可能です。 古いスタイルのネットワーク・インターフェースでは、モードは表示されず、動作は常に auto
に設定されます。
仮想ネットワーク・インターフェースの概要
VNI を使用して、ターゲット・リソースに依存しないライフサイクルを持つ別のリソースで IP アドレスとセキュリティー・グループを管理できます。
-
VPC とサブネットが接続されていることを確認します。 詳しくは、 IBM Cloud コンソールを使用した VPC リソースの作成 、または CLI と API を使用した作成 を参照してください。
-
計画に関する考慮事項 および 既知の問題と制限事項 を確認します。
-
VNI を作成するための適切な IAM 権限 があることを確認します。
-
プライベート IP アドレス、パブリック IP アドレス、およびセキュリティー・グループを使用して、 仮想ネットワーク・インターフェースを作成します。
-
ターゲットのプロビジョニング時に、サポートされるターゲット・リソースに VNI を接続します。 現在、以下の 3 つのターゲット・タイプがサポートされています。
- 仮想サーバー・インスタンス
- インスタンスをプロビジョニングするときに、VNI を 1 次ネットワーク接続の子リソースに接続します。 仮想サーバー・インスタンスの作成 を参照してください。
- 1 次ネットワーク接続を持つ既存の仮想サーバー・インスタンスがある場合は、VNI を新規ネットワーク接続に接続して、仮想サーバー・インスタンス上に追加のネットワーク接続をプロビジョンできます。 ネットワーク接続の作成 を参照してください。
- ベアメタル・サーバー
- ベア・メタル・サーバーをプロビジョニングする場合は、VNI を 1 次ネットワーク接続の子リソースに接続します。 VPC での Bare Metal Servers の作成 を参照してください。
- 1 次ネットワーク接続を持つ既存のベア・メタル・サーバーがある場合は、VNI を新規ネットワーク接続に接続して、ベア・メタル・サーバー上に追加のネットワーク接続をプロビジョンできます。 ネットワーク接続の作成 を参照してください。
- ファイル・シェアのマウント
- 新規ファイル・シェア・マウントをプロビジョニングする場合は、VNI をファイル・シェア・マウント・ターゲットに接続します。 ファイル共有およびマウント・ターゲットの作成 および ファイル共有のマウント・ターゲット を参照してください。
- 仮想サーバー・インスタンス
これらの各ターゲットをプロビジョニングするコンテキストで VNI を作成することもできます。 言い換えると、事前に VNI を作成する必要はありません。 後で、 --auto-delete
が false
(自動リリース ・スイッチ) であることを確認することによって、インスタンスを削除し、VNI を保持することができます。 その後、同じ VNI を使用して新規インスタンスを作成できます。
ユース・ケース 1: 仮想ネットワーク・インターフェースを使用した高可用性
仮想ネットワーク・インターフェースは、フェイルオーバー・インスタンスへの切り替えに必要な時間を削減します。 仮想ネットワーク・インターフェースを使用しない仮想サーバー・インスタンスでは、フェイルオーバーには、伝搬に数分かかる可能性があるルーティング変更が必要です。 以下の例では、ネットワーク・インターフェースを使用して構成された 1 次仮想サーバー・インスタンスと、独自のネットワーク・インターフェースを持つバックアップ仮想サーバー・インスタンスがあります。 1 次仮想サーバー・インスタンスに障害が発生した場合は、バックアップ仮想サーバー・インスタンスをオンラインにし、バックアップ・インスタンスのネットワーク・インターフェースを使用するように経路を再構成する必要があります。
仮想ネットワーク・インターフェースを使用して、インスタンス間で移動することができます。 仮想ネットワーク・インターフェースの独立したライフサイクルとは、仮想ネットワーク・インターフェースがその IP アドレスを保持し、経路を再構成する必要がないことを意味します。これにより、フェイルオーバー時間が数秒に短縮されます。
ユース・ケース 2: 仮想ネットワーク・インターフェースを持つ 2 次 IP アドレス
アプリケーションの複数のインスタンスを実行する仮想サーバー・インスタンスは、アプリケーションの各インスタンスが独自の IP アドレスを持つようにセグメント化することができます。
この例では、単一の仮想サーバーインスタンスでSQLデータベースアプリケーションの3つのインスタンスが実行されています。 各 SQL インスタンスには、独自の IP アドレスが必要です。 仮想ネットワーク・インターフェースで 2 次 IP アドレスを使用することにより、各アプリケーション・インスタンスに異なる IP アドレスを割り当てることができます。
{: caption="IPアドレス* セカンダリIPアドレスを使用した仮想ネットワークインターフェース
古い API クライアントのサポート
古いクライアントとの互換性を保つために、API 応答では、各ネットワーク接続とそれに関連する仮想ネットワーク・インターフェースを子ネットワーク・インターフェースとして読み取り専用で表現します。
- インスタンス・ネットワーク・インターフェース を取得する場合、プロパティーは以下のように導出されます。
ネットワーク・インターフェース・プロパティー | マップ元 |
---|---|
allow_ip_spoofing |
virtual_network_interface.allow_ip_spoofing |
created_at |
network_attachment.created_at |
floating_ips |
virtual_network_interface.floating_ips |
href |
network_attachment.href (/network_attachments は /network_interfaces に置き換えられます) |
id |
network_attachment.id |
name |
network_attachment.name |
port_speed |
network_attachment.port_speed |
primary_ip |
virtual_network_interface.primary_ip |
resource_type |
"ネットワーク・インターフェース" |
security_groups |
virtual_network_interface.security_groups |
status |
「インスタンス・ネットワーク・インターフェースの状況値」の表を参照してください。 |
subnet |
virtual_network_interface.subnet |
type |
network_attachment.type |
status
値は、以下の表に従って決定されます。
ネットワーク接続 lifecycle_state |
VNI lifecycle_state |
status |
---|---|---|
deleting |
任意 | deleting |
任意 | deleting |
deleting |
failed |
以外のもの deleting |
failed |
以外のもの deleting |
failed |
failed |
pending , suspended , updating , waiting |
以外のもの deleting または failed |
pending |
以外のもの deleting または failed |
pending , suspended , updating , waiting |
pending |
stable |
stable |
available |
- ベア・メタル・サーバーのネットワーク・インターフェースに固有の以下のプロパティーに加えて、 ベア・メタル・サーバーのネットワーク・インターフェース を取得する際にも同じプロパティーが得られます。
ネットワーク・インターフェース・プロパティー | マップ元 |
---|---|
enable_infrastructure_nat |
virtual_network_interface.enable_infrastructure_nat |
mac_address |
virtual_network_interface.mac_address |
interface_type |
network_attachment.interface_type |
allowed_vlans |
network_attachment.allowed_vlans |
vlan |
network_attachment.vlan |
allow_interface_to_float |
network_attachment.allow_interface_to_float |