libvirt의 KVM/QEMU 네트워크 TAP 문제
문제
kvm/qemu vms를 관리하기 위해 virsh와 함께 libvirt를 사용하려고 합니다.내가 가진 문제는 공용 IP로 작동시키는 것입니다.서버가 우분투 8.04를 실행 중입니다.
libvirt는 계속해서 다음과 같이 실행하려고 합니다.
/usr/bin/kvm -M pc -m 256 -smp 3 -monitor pty -no-acpi \
-drive file=/opt/virtual-machines/calculon/root.qcow2,if=ide,boot=on \
-net nic,vlan=0,model=virtio -net tap,fd=10,vlan=0 -usb -vnc 127.0.0.1:0
부팅되지만 네트워크 액세스가 없습니다(핑이 아무데도 가지 않음).fd=10 없이 실행하면 kvm이 필요한 TAP 장치를 생성하고 호스트 내부에서 네트워킹이 작동하여 올바르게 작동합니다.내가 본 모든 설정 가이드는 매스커레이딩 설정에 중점을 두는 반면 저는 단지 간단한 브리지와 필터링되지 않은 인터넷 액세스를 원합니다(게스트와 호스트 모두 공용 IP를 사용해야 함).
호스트에서 ifconfig를 실행하면 /etc/network/interfaces 파일에 브리지가 수동으로 설정됩니다.:
br0 Link encap:Ethernet HWaddr 00:1e:c9:3c:59:b8
inet addr:12.34.56.78 Bcast:12.34.56.79 Mask:255.255.255.240
inet6 addr: fe80::21e:c9ff:fe3c:59b8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3359 errors:0 dropped:0 overruns:0 frame:0
TX packets:3025 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:180646 (176.4 KB) TX bytes:230908 (225.4 KB)
eth0 Link encap:Ethernet HWaddr 00:1e:c9:3c:59:b8
inet6 addr: fe80::21e:c9ff:fe3c:59b8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6088386 errors:0 dropped:0 overruns:0 frame:0
TX packets:3058 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:680236624 (648.7 MB) TX bytes:261696 (255.5 KB)
Interrupt:33
어떤 도움이라도 대단히 감사하겠습니다.
해결책
브리지 네트워킹 가이드를 따랐습니다. https://help.ubuntu.com/community/KVM /etc/network/interfaces에 다음이 있습니다:
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
libvirt 네트워크 설정을 변경하지 않았으며 kvm 이미지는 다음과 같이 부팅됩니다.
/usr/bin/kvm -M pc -no-kqemu -m 256 -smp 1 -monitor pty -boot c -hda \
/libvirt/apt.img -net nic,macaddr=00:16:3e:77:32:1d,vlan=0 -net \
tap,fd=11,script=,vlan=0 -usb -vnc 127.0.0.1:0
그런 다음 kvm 이미지의 정적 네트워크 설정을 정상적으로 지정합니다.가이드를 따른 이후로 모두 정상적으로 작동했습니다.
장치 아래에는 /etc/libvirt/qemu/의 XML 파일에 다음 설정이 있습니다.
<interface type='bridge'>
<mac address='00:16:3e:77:32:1d'/>
<source bridge='br0'/>
</interface>
다른 팁
귀하의 탭 장치가 ifconfig에 표시되어야 한다고 생각합니다.
"brctl show"를 실행하세요.
브리지 및 터널 장치 연결이 표시됩니다.
모든 패킷이 브리지를 통해 라우팅된다는 것을 보여주기 위해 iptable 항목을 입력해야 할 수도 있습니다.
iptables -I 입력 -i br0 -j 수락