KVM 게스트에게 네트워크 연결을 제공하는 방법은 무엇입니까?

KVM 게스트에게 네트워크 연결을 제공하는 방법은 무엇입니까?

저는 KVM과 가상화에 대한 전체 아이디어를 완전히 처음 접했지만 며칠 동안 이에 대해 읽고 지난 몇 시간 동안 가지고 놀았습니다.

생성, 설치, 복제 등 모든 것이 훌륭해 보입니다. 하지만 내가 만든 게스트는 8.8.8.8에 ping을 시도할 때 "네트워크에 연결할 수 없음"이라는 메시지가 표시됩니다.

저는 호스트와 게스트 모두 CentOS 6.5를 사용하고 있습니다.

게스트의 ifconfig:

lo    Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

아마도 이것이 문제가 있는 곳이라는 점에 감사드립니다. 제가 생각하는 eth0 장치가 있어야 할까요? 왜 없나요?

설치 코드:

virt-install \
--virt-type kvm \
--name sebweb2 \
--ram 16384 \
--cdrom /var/ISOs/CentOS-6.5-x86_64-minimal.iso \
--disk /var/lib/libvirt/images/sebweb2.img,format=qcow2 \
--network bridge=br0 \
--nographics \
--os-type linux \
--os-variant rhel6 \
--vcpus 12

호스트의 ifconfig:

br0   Link encap:Ethernet  HWaddr 16:AC:2D:A6:98:40
      inet addr:xxx.yyy.zzz.217  Bcast:xxx.yyy.zzz.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:92172 errors:0 dropped:0 overruns:0 frame:0
      TX packets:58463 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:5428257 (5.1 MiB)  TX bytes:71953860 (68.6 MiB)

eth0  Link encap:Ethernet  HWaddr 16:AC:2D:A6:98:40
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:117592 errors:0 dropped:0 overruns:0 frame:0
      TX packets:79097 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:8766798 (8.3 MiB)  TX bytes:73073312 (69.6 MiB)
      Memory:fbc00000-fbd00000

lo    Link encap:Local Loopback
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:92 errors:0 dropped:0 overruns:0 frame:0
      TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:8172 (7.9 KiB)  TX bytes:8172 (7.9 KiB)

virbr0 Link encap:Ethernet  HWaddr 51:54:00:39:CA:A7
      inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:128 (128.0 b)  TX bytes:0 (0.0 b)

vnet0 Link encap:Ethernet  HWaddr 54:FE:00:F1:31:95
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:256 errors:0 dropped:0 overruns:1 carrier:0
      collisions:0 txqueuelen:500
      RX bytes:0 (0.0 b)  TX bytes:20835 (20.3 KiB)

vnet1 Link encap:Ethernet  HWaddr 54:FE:00:CD:CD:C4
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:11 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1307 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:500
      RX bytes:2722 (2.6 KiB)  TX bytes:110215 (107.6 KiB)

제가 제공해야 할 다른 관련 정보가 있습니까?

감사해요!

답변1

게스트의 "ifconfig -a"가 eth0을 표시하지 않으면 호스트에서 "virt-manager"를 실행하여 명령줄에서 수행하는 대신 가상 머신의 매개변수를 편집하기 위한 멋진 GUI를 얻습니다. 필요한 경우 해당 GUI를 통해 네트워크 인터페이스를 추가할 수 있습니다.

게스트에 eth0이 있으면 /etc/sysconfig/network-scripts/ifcfg-eth0 파일에서 인터페이스 매개변수를 지정해야 합니다. "GATEWAY" 키워드를 사용하여 기본 게이트웨이를 지정해야 합니다. 다음은 매개변수를 수동으로 지정하기 위한 샘플 ifcfg 스크립트입니다(DHCP 사용과 반대). 물론 네트워크에 대해 올바른 IPADDR, NETWORK, NETMASK 및 GATEWAY 값을 제공해야 합니다.

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.110
NETWORK=192.168.1.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

ifcfg-eth0에 대한 변경 사항을 적용하려면 "service network restart"를 실행하세요.

답변2

호스트에서 "brctl show" 수행

귀하의 VM이 브릿지 br0에 연결되어 있는지 확인하고 br0에 공용 IP가 있으므로(귀하가 댓글을 달았기 때문에 가정함) 적절한 게이트웨이를 사용하여 게스트 VM에 공용 IP를 할당합니다.

또는

br0에서 가상 인터페이스를 제거하고 virbr0에 추가하세요.

호스트에서

brctl delif br0 vifname 

brctl addif virbr0 vifname 

설정하여 게스트에서 DHCP를 활성화하십시오.BOOTPROTO=dhcp.

192.168.122.0에서 IP 주소를 얻게 되며 libvirt에서 생성한 올바른 NAT 규칙이 있는 경우 외부에 액세스할 수 있어야 합니다.

관련 정보