IBM Cloud Docs
ネットワーク・インターフェースの管理

ネットワーク・インターフェースの管理

仮想サーバー・インスタンスを作成した後、2 つのスタイルの新規ネットワーク・インターフェース (子ネットワーク・インターフェースと仮想ネットワーク・インターフェース) を追加したり、インスタンスに既に関連付けられているインターフェースを編集したりすることができます。 ネットワーク・インターフェースを編集する場合は、ネットワーク・インターフェースの名前変更、浮動 IP アドレスの関連付けの設定/解除、インターフェースに関連付けられたセキュリティー・グループへのアクセスを行えます。

ネットワーク・インターフェースについて

ネットワーク・インターフェースは、仮想サーバー・インスタンスをネットワークに接続します。 仮想サーバー・インスタンスの作成時に、ネットワーク・インターフェースを使用して複数の IP アドレスを割り当てることができます。

ネットワーク・インターフェースがインスタンスでどのような動作をするのかについて、主立った点を以下に示します。

  • 各仮想サーバーインスタンスに対して、複数のネットワークインターフェースを作成し、割り当てることができます。 仮想サーバー・インスタンスに割り当てることができるネットワーク・インターフェースの数は、インスタンスのプロビジョンに使用される プロファイル に含まれる vCPU 数によって異なります。
    • 2 - 16 vCPUs: 最大 5 つのネットワーク・インターフェース
    • 17 - 48 vCPUs: 最大10ネットワーク・インターフェイス
    • 49 個以上の vCPUs: 最大 15 個のネットワーク インターフェース
  • ネットワーク・インターフェースごとに同じゾーンの別のサブネットに接続できます。
  • 各ネットワークには、変更できない固有のメディア・アクセス制御 (MAC) アドレスが割り当てられ、サブネット範囲からプライベート IP アドレスを受信します。
  • 仮想サーバーインスタンス上の各ネットワークインターフェースに、1つのフローティングIPアドレスを割り当てることができます。 データパスでは、フローティングIPアドレスとネットワークインターフェースのプライマリIPアドレスの間にネットワークアドレス変換(NAT)が適用されます。
  • IBM Cloud のコンソールでは、デフォルトの 1 次インターフェースは eth0 になります。 セカンダリインターフェースは、デフォルトでは eth1eth2 などです。
  • 各ネットワーク・インターフェースにセキュリティー・グループを割り当てることができます。
  • 既存のネットワーク・インターフェースの名前を変更することができます。

帯域幅は、仮想サーバー・インスタンスに接続されたネットワーク・インターフェース間に配分されます。 詳しくは、 帯域幅の割り当て を参照してください。

仮想サーバーインスタンスが稼働中に新しいネットワークインターフェースを割り当てる場合は、そのインスタンスが使用するネットワークインターフェースを設定する必要があります。 インスタンスを停止してから再始動するか、ゲスト・オペレーティング・システムでインターフェースを手動で構成します。 例えば、 Linux ベースのオペレーティングシステムでは、 ip link set dev <interface> up を使用してインターフェースのIPアドレス構成を取得することができます。

ネットワーク・インターフェースの追加または編集

仮想サーバー・インスタンスに関連付けられているネットワーク・インターフェースを追加または編集するには、以下の手順を実行します。

  1. IBM Cloud コンソールで、 ナビゲーションメニュー アイコンメニューアイコン > インフラストラクチャVPCアイコン > コンピューティング > 仮想サーバーインスタンスに移動します。
  2. 編集するネットワーク・インターフェースが含まれている仮想サーバー・インスタンスの名前をクリックします。 または、仮想サーバーインスタンスにネットワークインターフェースを追加することもできます。
  3. インスタンスの詳細ページで、**「ネットワーク・インターフェース」**セクションを見つけます。
  4. 浮動 IP アドレスやネットワーク・インターフェースを追加するための具体的な手順については、以下のセクションを参照してください。

浮動 IP アドレスの追加

インターネットからのトラフィックが仮想サーバー・インスタンスにアクセスできるようにするために浮動 IP アドレスをネットワーク・インターフェースに追加する場合は、以下の手順を実行します。

  1. 仮想サーバーインスタンスに浮動小数点IPアドレスを初めて追加する場合は、 インスタンス詳細ページの 「ネットワークインターフェース」セクションでネットワークインターフェースを特定します。 通常、インスタンスのプライマリネットワークインターフェースは、フローティングIPの割り当てに使用されます。 デフォルトでは、ゲストOS上の最初のインターフェースは eth0 という名前になります。 最初は 1 次ネットワーク・インターフェースに浮動 IP アドレスを関連付けて、データ・パスを確立できるようにします。 その後、インスタンス上の別のネットワークインターフェイスにフローティングIPを関連付けたり、セカンダリネットワークインターフェイスに個別のフローティングIPを関連付けることができます。
  2. 編集アイコン 編集アイコン をクリックして、プライマリネットワークインターフェースを編集します。
  3. **「ネットワーク・インターフェースの編集」ページで、「浮動 IP アドレス」**フィールドを見つけます。 **「新しい浮動 IP の予約 (Reserve a new floating IP)」**を選択するか、既存の浮動 IP アドレスを選択できます。
  4. 選択したら、**「保存」**をクリックします。

ネットワーク・インターフェースの追加

インスタンス・プロファイルに含まれる vCPU 数に応じて、最大 15 個のネットワーク・インターフェースを仮想サーバー・インスタンスに追加できます。 ネットワーク・インターフェースごとに固有の IP アドレスを 1 つ設定できるので、複数の IP アドレスを仮想サーバー・インスタンスで使用することが可能になります。 インターフェースを追加する前に、 新しいネットワークインターフェースに関連付ける固有のサブネットを作成したことを確認してください。 各ネットワークインターフェースは、同じゾーン内の異なるサブネット上に配置する必要があります

仮想サーバーインスタンスにネットワークインターフェースを追加するには、以下の手順に従います。

  1. インスタンス詳細ページの ネットワークインターフェースセクション、「新しいインターフェース」 をクリックします。
  2. **「新規ネットワーク・インターフェース」**ページでは、デフォルトのインターフェース名は番号が増えていきます。 このインスタンスがプライマリインターフェースに続く最初の新しいインターフェースである場合、デフォルト名は eth1 です。 この名前は必要に応じて変更できます。
  3. 既存のネットワークインターフェースに割り当てられているサブネットの中から、固有のサブネットを選択します。
  4. ネットワーク・インターフェースに関連付けるセキュリティー・グループを選択します。
  5. 「作成」 をクリックします。
  6. ネットワークインターフェースを追加した際に仮想サーバーインスタンスが稼働していた場合、そのインスタンスのネットワークインターフェースを設定する必要があります。 インスタンスを停止してから再始動するか、ゲスト・オペレーティング・システムでインターフェースを手動で構成します。 例えば、 Linux ベースのオペレーティングシステムでは、 ip link set dev <interface> up を使用してインターフェースのIPアドレス構成を取得することができます。

仮想ネットワークインターフェースの追加

仮想ネットワーク・インターフェースは、ターゲットに接続せずに作成できます。 仮想ネットワーク・インターフェースは、そのターゲットが除去されても存在することができます。 詳しくは、 仮想ネットワーク・インターフェースの操作 を参照してください。

仮想ネットワーク・インターフェースは、新しい仮想サーバー・インスタンスに接続することができ、子ネットワーク・インターフェースを持つ既存の仮想サーバー・インスタンスに追加することはできません。

![仮想](images/vni-vsi-arch.svg "※ネットワークアタッチメント付き仮想サーバーインスタンス※仮想ネットワーク" caption-side="bottom"}に接続されたネットワークアタッチメント付き仮想サーバーインスタンスの"){: caption="※ネットワークアタッチメント付き仮想サーバーインスタンスの図

  1. IBM Cloud コンソールで、 ナビゲーションメニュー アイコンメニューアイコン > インフラストラクチャVPCアイコン > コンピューティング > 仮想サーバーインスタンスに移動します。
  2. 「作成」 をクリックして、仮想ネットワーク・インターフェースを使用できる新規仮想サーバー・インスタンスの作成を開始します。
  3. 「ネットワーキング」 セクションで、以下のいずれかを作成するかどうかを選択します。
    • 仮想ネットワーク・インターフェースとのネットワーク接続: 2 次 IP アドレスや作成する仮想サーバー・インスタンスとは別のライフサイクルなどの追加機能を持つネットワーク・インターフェース。
    • インスタンス・ネットワーク・インターフェース: 子ネットワーク・インターフェース。

仮想サーバー・インスタンスに複数のインターフェースを構成する

例えば、通信の目的に応じて異なるサブネットを使用するために、仮想サーバー・インスタンス間の通信に複数のネットワーク・インターフェースを使用する場合があります。 データ通信のためのサブネットと、管理用通信のためのサブネットが必要になることがあります。 仮想サーバー・インスタンスには、1 次ネットワーク・インターフェースに関連付けられたデフォルトの経路が 1 つだけ構成されるので、その他のインターフェースでは最初は通信できない可能性があります (セキュリティ目的のIPスプーフィングチェックは、プライマリ以外のネットワークインターフェース上の通信フローも防止できます。)

以下のどちらかのオプションを使用して、2 次ネットワーク・インターフェースの通信を確立できます。 これらの例は、Ubuntu などの Linux プラットフォームについての例です。

  • 2 つ目のサブネットのために静的経路を追加する
  • 2 つ目のサブネットのために別個のルーティング・テーブルを追加する

仮想サーバー・インスタンスのルーティング・テーブルは、インスタンスのプロビジョン時にデフォルトで生成されます。 生成されたルーティング・テーブルの変更は、単純な作業ではありません。 仮想サーバー・インスタンスのルーティング・テーブルを変更する必要がある場合は、インスタンスをプロビジョンするときに、インスタンスのルーティング・テーブルを記述して再構成するためのユーザー・データを含めることができます。 もう 1 つの選択肢は、カスタム・イメージを使用してインスタンスをプロビジョンし、複数のネットワーク・インターフェースに対して何が作成されるかを制御することです。 デフォルト・イメージを使用してインスタンスをプロビジョンすると、ネットワーク構成が自動的に作成されます。 生成されるものの制御は制限されています。

これ以降のセクションで、これらの解決方法について詳しく説明します。

仮想サーバーのセットアップ例:

  • 2つの仮想サーバー(Virtual-server-1Virtual-server-2 )は、両方とも同じVPCに属しています。

  • 各仮想サーバーに、2 つのサブネットに属する 2 つのインターフェースがあります。

    • Virtual-server-1 には、net_1_0 に属するインターフェース eth0net_1_1 に属するインターフェース eth1 があります。
    • Virtual-server-2 には、net_2_0 に属するインターフェース eth0net_2_1 に属するインターフェース eth1 があります。
  • 各仮想サーバーの net_*_0 にはデフォルトの経路が設定されています。

  • 各サブネットのゲートウェイ IP と CIDR は既知です。

    ここでは英字の名前を使用しています。 実際には、ゲートウェイ ID は 192.168.100.1、CIDR は 192.168.100.0/24、IP アドレスは 192.168.100.6 のようになります。

複数のインターフェイスを持つ仮想サーバー・インスタンスの例
サブネット ゲートウェイ IP サブネット CIDR インターフェース IP
net_1_0 gw_ip_1_0 cidr_1_0 ip_1_0
net_1_1 gw_ip_1_1 cidr_1_1 ip_1_1
net_2_0 gw_ip_2_0 cidr_2_0 ip_2_0
net_2_1 gw_ip_2_1 cidr_2_1 ip_2_1

2 つ目のインターフェースのために静的経路を追加する

この解決方法では、1 つ目のサブネットを (仮想サーバー・インスタンスの作成によって自動的に) デフォルトのゲートウェイにして、2 つ目のサブネットのために静的経路を追加します。

  • Virtual-server-1 側:

    ip route add cidr_2_1 via gw_ip_1_1 dev eth1
    
  • Virtual-server-2 側:

    ip route add cidr_1_1 via gw_ip_2_1 dev eth1
    

2 つ目のインターフェースのために別個のルーティング・テーブルを追加する

  • Virtual-server-1 側:
   echo 201 eth1tab >> /etc/iproute2/rt_tables
   ip route add cidr_1_1 dev eth1 proto kernel scope link src ip_1_1 table eth1tab
   ip route add default via gw_1_1 dev eth1 table eth1tab
  • Virtual-server-2 側:
echo 201 eth1tab >> /etc/iproute2/rt_tables
ip route add cidr_2_1 dev eth1 proto kernel scope link src ip_2_1 table eth1tab
ip route add default via gw_2_1 dev eth1 table eth1tab
ip rule add from ip_2_1 table eth1tab

この方法は、静的経路を追加するよりも若干複雑ですが、インターフェースごとにルーティング・ポリシーをカスタマイズすることができます。

CLI からの仮想ネットワークインターフェースの作成

仮想ネットワーク・インターフェースは、新しい仮想サーバー・インスタンスに接続することができ、子ネットワーク・インターフェースを持つ既存の仮想サーバー・インスタンスに追加することはできません。

コマンド・ライン・インターフェース (CLI) を使用して仮想ネットワーク・インターフェースを作成できます。 機能、計画の考慮事項、概要、およびユース・ケースについて詳しくは、 仮想ネットワーク・インターフェースについて を参照してください。

CLI を使用して仮想ネットワーク・インターフェースを作成するには、 ibmcloud is virtual-network-interface-create コマンドを使用します。

ibmcloud is virtual-network-interface-create [--name NAME] [--allow-ip-spoofing false | true] [--auto-delete false | true] [--enable-infrastructure-nat false | true] [[--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]

以下の例では、予約済み IP の設定に基づく仮想ネットワーク・インターフェースを作成します。 仮想ネットワーク・インターフェース名は cli-vni-1 です。 予約済み IP アドレスの ID は 7208-d4c0abbe-3fc2-4696-9fe1-4eb3dc9af976 です。 1 次予約 IP アドレスの ID は 7208-d83b7e58-3c3d-47d0-89c5-02d9a20c72fd です。 2 次予約 IP アドレスは 10.240.64.13 です。 仮想ネットワーク・インターフェースに関連付けるセキュリティー・グループ ID は、 r134-aa7c7658-e503-4456-b342-8d6a89e05115 および r134-4fb388f1-2b6e-4013-b279-7a8748f4d6ca です。 仮想ネットワーク・インターフェースが作成されるリソース・グループの ID は 11caaa983d9c4beb82690daab08717e9 です。

ibmcloud is virtual-network-interface-create --name cli-vni-1 --allow-ip-spoofing true --auto-delete false --enable-infrastructure-nat true --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 r134-aa7c7658-e503-4456-b342-8d6a89e05115,r134-4fb388f1-2b6e-4013-b279-7a8748f4d6ca --resource-group-id 11caaa983d9c4beb82690daab08717e9

詳しくは、VPC CLI リファレンスページの ibmcloud is virtual-network-interface-create を参照してください。

既存の仮想ネットワーク・インターフェースを使用した仮想サーバーの作成

コマンド・ライン・インターフェース (CLI) を使用して、既存の仮想ネットワーク・インターフェースを使用する仮想サーバー・インスタンスを作成できます。

CLI を使用して既存の仮想ネットワーク・インターフェースで仮想サーバー・インスタンスを作成するには、 ibmcloud is instance-create コマンドを使用します。

以下の例では、既存の仮想ネットワーク・インターフェースを含む仮想サーバーを作成します。 仮想サーバー名は my-instance-name です。 VPC の ID は 72b27b5c-f4b0-48bb-b954-5becc7c1dcb8 です。 ゾーン名は us-south-1 です。 仮想サーバーのプロファイルは bx2-2x8 です。 サブネットは 72b27b5c-f4b0-48bb-b954-5becc7c1dcb8 です。 1 次ネットワーク接続名は cli-pnac-1 です。 1 次ネットワーク・インターフェースに関連付けられている仮想ネットワーク・インターフェースの ID は 7322-1293a27a-7178-4e62-ba5b-272623c989aa です。 ネットワーク接続構成には、名前 instance-snac-1 と仮想ネットワーク・インターフェース ID 02h7-56705448-c9d9-43dc-aa11-20d42333cd87 が含まれます。 仮想サーバーのイメージ ID は r123-72b27b5c-f4b0-48bb-b954-5becc7c1dcb8 です。

ibmcloud is instance-create my-instance-name 72b27b5c-f4b0-48bb-b954-5becc7c1dcb8 us-south-1 bx2-2x8 72b27b5c-f4b0-48bb-b954-5becc7c1dcb8 --pnac-name cli-pnac-1 --pnac-vni 7322-1293a27a-7178-4e62-ba5b-272623c989aa --network-attachments [{"name": "instance-snac-1","virtual_network_interface": {"id":"02h7-56705448-c9d9-43dc-aa11-20d42333cd87"}}] --image r123-72b27b5c-f4b0-48bb-b954-5becc7c1dcb8

詳細については、VPC CLI リファレンスページの 「ibmcloud is instance-create」 を参照してください。

API を使用した仮想ネットワーク・インターフェースの作成

仮想ネットワーク・インターフェースは、新しい仮想サーバー・インスタンスに接続することができ、子ネットワーク・インターフェースを持つ既存の仮想サーバー・インスタンスに追加することはできません。

API を使用して仮想ネットワーク・インターフェースを作成できます。 機能、計画の考慮事項、概要、およびユース・ケースについて詳しくは、 仮想ネットワーク・インターフェースについて を参照してください。

API を使用して仮想ネットワーク・インターフェースを作成するには、以下の手順を実行します。

  1. 適切な変数を設定して API 環境をセットアップします。

  2. API コマンドで使用する追加の変数を格納します。次に例を示します。

    • version (string): YYYY-MM-DD という形式の API バージョン。
  3. すべての変数が開始されたら、仮想ネットワーク・インターフェースを作成します。 以下の例には、1 次 IP アドレス、セキュリティー・グループ、およびサブネットに関するサンプル情報が含まれています。

    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"
          },
          "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" "my_virtual_network_interface_instance" {
  allow_ip_spoofing = true
  auto_delete = false
  enable_infrastructure_nat = true
  name = "my-virtual-network-interface"
  subnet = ibm_is_subnet.my_subnet.id
}

詳細については 、Terraformレジストリを参照してください。

仮想ネットワーク・インターフェースを新しい仮想サーバー・インスタンスに接続する場合は、 Terraform レジストリーを参照してください。