3.10. 仮想ネットワークインターフェイスカード

仮想ネットワークインターフェイスカード (vNIC) は、ホストの物理 NIC に基づく仮想ネットワークインターフェイスです。各ホストは複数の NIC を持つことができ、各 NIC は複数の vNIC のベースになることができます。

vNIC を仮想マシンに接続すると、Red Hat Virtualization Manager は、vNIC が接続されている仮想マシン、vNIC 自体、および vNIC のベースとなる物理ホスト NIC の間にいくつかの関連付けを作成します。具体的には、vNIC が仮想マシンに接続されると、vNIC のベースとなる物理ホスト NIC に新しい vNIC と MAC アドレスが作成されます。次に、vNIC がアタッチされた後に仮想マシンの初回起動時に、libvirt は PCI アドレスを vNIC に割り当てます。次に、MAC アドレスおよび PCI アドレスは、仮想マシンの vNIC の名前 (例: eth0) の取得に使用されます。

テンプレートまたはスナップショットに基づいて仮想マシンを作成する場合、MAC アドレスを割り当ててそれらの MAC アドレスを PCI アドレスに関連付けるプロセスは少し異なります。

  • テンプレートまたはスナップショットに対して PCI アドレスがすでに作成されている場合、そのテンプレートまたはスナップショットに基づいて作成された仮想マシン上の vNIC は、それらの PCI アドレスに従って順序付けられます。次に、MAC アドレスがこの順序で vNIC に割り当てられます。
  • テンプレートの PCI アドレスがまだ作成されていない場合、そのテンプレートに基づいて作成された仮想マシン上の vNIC はアルファベット順に並べられます。次に、MAC アドレスがこの順序で vNIC に割り当てられます。
  • スナップショットの PCI アドレスがまだ作成されていない場合、Red Hat Virtualization Manager は、そのスナップショットに基づいて仮想マシン上の vNIC に新しい MAC アドレスを割り当てます。

作成されると、vNIC はネットワークブリッジデバイスに追加されます。ネットワークブリッジデバイスは、仮想マシンを仮想論理ネットワークに接続します。

仮想化ホストで ip addr show コマンドを実行すると、そのホスト上の仮想マシンに関連付けられているすべての vNIC が表示されます。また、論理ネットワークをバックアップするために作成されたネットワークブリッジ、およびホストによって使用される NIC も表示されます。

[root@rhev-host-01 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:21:86:a2:85:cd brd ff:ff:ff:ff:ff:ff
    inet6 fe80::221:86ff:fea2:85cd/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:21:6b:cc:14:6c brd ff:ff:ff:ff:ff:ff
5: ;vdsmdummy;: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
    link/ether 4a:d5:52:c2:7f:4b brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
7: bond4: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
8: bond1: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
9: bond2: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
10: bond3: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
11: ovirtmgmt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
    link/ether 00:21:86:a2:85:cd brd ff:ff:ff:ff:ff:ff
    inet 10.64.32.134/23 brd 10.64.33.255 scope global ovirtmgmt
    inet6 fe80::221:86ff:fea2:85cd/64 scope link
       valid_lft forever preferred_lft forever

コマンドからのコンソール出力は、1 つのループバックデバイス (lo)、1 つのイーサネットデバイス (eth0)、1 つのワイヤレスデバイス (wlan0)、1 つの VDSM ダミーデバイス (;vdsmdummy;)、5 つのボンディングデバイス (bond0bond4bond1bond2bond3)、および 1 つのネットワークブリッジ (ovirtmgmt)) が表示されます。

vNIC は、すべてネットワークブリッジデバイスと論理ネットワークのメンバーです。ブリッジメンバーシップは、brctl show コマンドを使用して表示できます。

[root@rhev-host-01 ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
ovirtmgmt		8000.e41f13b7fdd4	no		vnet002
							vnet001
							vnet000
							eth0

brctl show コマンドの出力は、virtio vNIC が ovirtmgmt ブリッジのメンバーであることを示しています。vNIC が割り当てられているすべての仮想マシンが ovirtmgmt 論理ネットワークに接続されています。eth0 NIC は ovirtmgmt ブリッジのメンバーでもあります。eth0 デバイスはスイッチに接続され、ホスト外の接続を提供します。