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

仮想ネットワークインターフェースカードは、ホストの物理ネットワークインターフェースカードをベースとした仮想ネットワークインターフェースです。各ホストには、複数のネットワークインターフェースカードが搭載されていますが、各ネットワークインターフェースカードを、複数の仮想ネットワークインターフェースカードのベースとして設定することができます。
仮想ネットワークインターフェースカードを仮想マシンにアタッチすると、Red Hat Virtualization Manager により、仮想ネットワークインターフェースカードのアタッチ先の仮想マシン、仮想ネットワークインターフェースカード自体、仮想ネットワークインターフェースカードのベースとなる物理ホストのネットワークインターフェースカードの間で複数の関連付けが作成されます。具体的には、仮想ネットワークインターフェースカードが仮想マシンにアタッチされると、仮想ネットワークインターフェースカードがベースとする物理ホストのネットワークインターフェースカード上で、新しい仮想ネットワークインターフェースカードと MAC アドレスが作成されます。そして、仮想ネットワークインターフェースカードのアタッチ後、初めて仮想マシンを起動すると、libvirt により、仮想ネットワークインターフェースカードに PCI アドレスが割り当てられます。次に、この MAC アドレスと PCI アドレスを使用して、仮想マシンの仮想ネットワークインターフェースカードの名前 (例: eth0) が取得されます。
テンプレートやスナップショットをベースに仮想マシンを作成する場合は、MAC アドレスを割り当てるプロセス、およびこれらの MAC アドレスと PCI アドレスを関連付けるプロセスが若干異なります。テンプレートやスナップショット用に PCI アドレスがすでに作成されている場合は、そのテンプレートやスナップショットをベースに作成した仮想マシン上の仮想ネットワークインターフェースカードは PCI アドレスの順に整理され、MAC アドレスがこの順に割り当てられます。一方、テンプレート用に PCI アドレスが作成されていない場合は、そのテンプレートをベースに作成した仮想マシン上の仮想ネットワークインターフェースカードには、その名前順に MAC アドレスが割り当てられます。スナップショット用に PCI アドレスが作成されていない場合は、そのスナップショットをベースに作成した仮想マシン上の仮想ネットワークインターフェースカードには、Red Hat Virtualization Manager が新しい MAC アドレスを割り当てます。
作成が済むと、ネットワークインターフェースカードがネットワークブリッジデバイスに追加されます。ネットワークブリッジデバイスは、仮想マシンを仮想マシン論理ネットワークに接続する手段です。
仮想化ホスト上で ip addr show を実行すると、そのホスト上の仮想マシンに関連付けられた仮想ネットワークインターフェースカードすべてが表示されます。また、論理ネットワークを強化するために作成されたネットワークブリッジや、ホストで使用されるネットワークインターフェースカードなどが表示されます。
[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
このコマンドでは、複数のデバイス (ループバックデバイス (lo) 1 つ、Ethernet デバイス 1 つ (eth0)、ワイヤレスデバイス 1 つ (wlan0)、VDSM ダミーデバイス 1 つ (;vdsmdummy;)、ボンディングデバイス 5 つ (bond0bond4bond1bond2bond3)、ネットワークブリッジ (ovirtmgmt) 1 つ) がコンソールに出力されます。
仮想ネットワークインターフェースカードはすべて、論理ネットワークのネットワークブリッジデバイスのメンバーです。ブリッジのメンバーシップは 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 仮想ネットワークインターフェースカードが ovirtmgmt ブリッジのメンバーであることが分かります。仮想ネットワークインターフェースカードが関連付けられている仮想マシンはすべて、ovirtmgmt 論理ネットワークに接続されています。eth0 のネットワークインターフェースカードは ovirtmgmt ブリッジのメンバーでもあります。eth0 デバイスは、ホスト外部への接続を提供するスイッチに接続されています。