3.10. 가상 네트워크 인터페이스 카드

가상 네트워크 인터페이스 카드(vNIC)는 호스트의 물리적 NIC를 기반으로 하는 가상 네트워크 인터페이스입니다. 각 호스트에는 여러 NIC가 있을 수 있으며 각 NIC는 여러 vNIC의 기반이 될 수 있습니다.

가상 머신에 vNIC를 연결하면 Red Hat Virtualization Manager는 vNIC가 연결된 가상 머신, vNIC 자체, vNIC를 기반으로 하는 물리적 호스트 NIC 간에 여러 연관을 생성합니다. 특히 vNIC가 가상 머신에 연결된 경우 vNIC를 기반으로 하는 물리적 호스트 NIC에 새로운 vNIC 및 MAC 주소가 생성됩니다. 그런 다음 vNIC를 연결한 후 가상 시스템을 처음 시작하면 libvirt 에서 vNIC에 PCI 주소를 할당합니다. MAC 주소와 PCI 주소는 가상 시스템에서 vNIC(예: eth0)의 이름을 가져오는 데 사용됩니다.

MAC 주소를 할당하고 이러한 MAC 주소를 PCI 주소와 연결하는 프로세스는 템플릿 또는 스냅샷을 기반으로 가상 머신을 생성할 때 약간 다릅니다.

  • 템플릿 또는 스냅샷에 대해 PCI 주소가 이미 생성된 경우 해당 템플릿 또는 스냅샷을 기반으로 생성된 가상 시스템의 vNICs가 이러한 PCI 주소에 따라 정렬됩니다. 그런 다음 MAC 주소가 해당 순서대로 vNIC에 할당됩니다.
  • 템플릿에 대해 PCI 주소가 아직 생성되지 않은 경우 해당 템플릿을 기반으로 생성된 가상 머신의 vNICs가 알파벳순으로 정렬됩니다. 그런 다음 MAC 주소가 해당 순서대로 vNIC에 할당됩니다.
  • 스냅샷에 대해 PCI 주소가 아직 생성되지 않은 경우 Red Hat Virtualization Manager는 해당 스냅샷을 기반으로 가상 머신의 vNICs에 새 MAC 주소를 할당합니다.

생성된 vNICs는 네트워크 브리지 장치에 추가됩니다. 네트워크 브리지 장치는 가상 시스템을 가상 논리적 네트워크에 연결합니다.

가상화 호스트에서 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

명령의 콘솔 출력에는 여러 장치가 표시됩니다. 하나의 루프 백 장치(lo), 이더넷 장치 1개(eth0), 1개의 무선 장치(wlan0), 1개의 VDSM dummy 장치(;vdsmdummy;), 5개의 본딩 장치( bond0 ,bond4,bond1, bond2 ), 네트워크 브리지 (bond0, bond4 ,bond2, bond2, bond3)및 네트워크 브리지가 있습니다.

vNICs는 네트워크 브리지 장치 및 논리적 네트워크의 모든 멤버입니다. Bridge 멤버십은 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 vNICs가 NetNamespace 브리지의 멤버임을 보여줍니다. vNICs가 연결된 모든 가상 머신은 NetNamespace 논리 네트워크에 연결됩니다. eth0 NIC는 RuntimeClass 브리지의 멤버이기도 합니다. eth0 장치는 호스트 이외의 연결을 제공하는 스위치에 연결할 수 있습니다.