저는 AMD64 노트북에서 Gentoo Linux를 실행하고 있으며 KVM에서 호스트 네트워킹을 설정하는 데 극도의 어려움을 겪고 있습니다. 이미 KVM, libvirtd, virt-manager, 가상화 작동에 필요한 커널 모듈이 있고 다음에 따라 새로운 구성 옵션으로 커널을 다시 빌드했습니다.이 가이드는 여기에 있습니다, 여전히 호스트 네트워크를 작동시킬 수 없는 것 같습니다.
virt-manager를 사용하여 가상 머신을 생성할 수 있지만 가상 머신에 연결할 네트워크 인터페이스를 선택할 수 없습니다. virt-manager 고급 옵션 아래의 마지막 대화 상자에서 "네트워크 없음"을 제외한 드롭다운 상자의 모든 옵션이 비활성화됩니다. " 및 "공유 장치 이름 지정". 인터넷 송신이 Wi-Fi NIC를 통해 이루어지기 때문에 브리지 네트워킹을 사용할 수 없습니다.
여전히 KVM에서 네트워킹을 실행할 수 없습니다. 과거에 Oracle VM VirtualBox를 사용하는 데 많은 문제가 있었기 때문에 사용하고 싶지 않습니다. 내가 놓친 게 무엇입니까?
답변1
나는 간단한 스크립트를 사용하여 개인 브리지(인터넷 종료 없음)에 내 qemu 장치를 설정하고 호스트의 트래픽을 위장합니다.
/usr/sbin/brctl addbr qemu1
NET=10.116.64 # any private address you like
GW=1
BASE=0
MASK=24
ip addr add $NET.$GW/$MASK dev qemu1
ip link set qemu1 up
if iptables -t nat -L POSTROUTING -n | grep ^MASQUERADE | awk '{print $4}' | cut -d/ -f1 | grep "$NET.$BASE" >/dev/null
then
echo "IP masquerading already set up"
else
echo "Setting up IP masquerading"
iptables -t nat -A POSTROUTING -s "$NET.$BASE"/"$MASK" \! -d "$NET.$BASE"/"$MASK" -j MASQUERADE
fi
sysctl net.ipv4.ip_forward=1
exit 0
각 머신에 대해 설정하기 위해 또 다른 간단한 스크립트를 사용합니다.USER를 사용자로 사용하여 가상 머신을 시작하십시오.
#!/bin/sh
BRCTL=/usr/sbin/brctl
regif=$($BRCTL show $2|awk '/^\t/ { print $1; }' |grep "$1")
if [ x"$3" = "xstop" ]
then if [ x"$regif" != "x" ]
then
ip link set $1 down
/usr/sbin/openvpn --rmtun --dev $1
fi
elif [ x"$regif" = "x" ]
then
/usr/sbin/openvpn --mktun --dev $1 --user USER
ip link set $1 promisc on
ip link set $1 up
$BRCTL addif $2 $1
elif [ x"$3" = "xrestart" ]
then
$0 $1 $2 stop # recursive call
$0 $1 $2 # recursive call
fi
exit 0
qemu-newif NAME_FOR_THE_TAP_DEVICE qemu1
각 기계에 탭 장치를 설정하여 호출됩니다 .