Je viens de créer une machine virtuelle à l'aide de qemu-kvm. L’hôte et l’invité sont Ubuntu 16.04 LTS. Cependant, l'invité n'a pas accès à Internet. Je peux envoyer un ping à l'invité d'un invité ou un invité à un ping de l'hôte. Voici le résultat de ifconfig de l'hôte
eno1 Link encap:Ethernet HWaddr 6c:0b:84:98:06:a3
inet addr:10.7.202.66 Bcast:10.7.202.255 Mask:255.255.255.0
inet6 addr: fe80::5388:4cd6:d475:94ca/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:41093 errors:0 dropped:0 overruns:0 frame:0
TX packets:100041 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7514291 (7.5 MB) TX bytes:117854779 (117.8 MB)
Interrupt:20 Memory:f7c00000-f7c20000
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:65536 Metric:1
RX packets:377404 errors:0 dropped:0 overruns:0 frame:0
TX packets:377404 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1034501784 (1.0 GB) TX bytes:1034501784 (1.0 GB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:3539 errors:0 dropped:0 overruns:0 frame:0
TX packets:953 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:240370 (240.3 KB) TX bytes:141550 (141.5 KB)
Et voici le résultat de virsh net-dumpxml default
:
<network>
<name>default</name>
<uuid>f4a19eaf-dbfa-46a5-bc9a-ccdc809363be</uuid>
<forward dev='eno1' mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
<interface dev='eno1'/>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:3e:46:10'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
Et sortie de l'hôte route -n
:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.7.202.251 0.0.0.0 UG 100 0 0 eno1
10.7.202.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
10.22.224.196 10.7.202.251 255.255.255.255 UGH 100 0 0 eno1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eno1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
J'ai également activé net.ipv4.ip_forward=1
dans /etc/sysctl.conf
.
Quelqu'un peut-il suggérer autre chose à faire?
Vous devez configurer un macvtap à partir de votre hôte pour permettre à l’invité de votre machine virtuelle d’avoir une connexion Internet. Dans votre cas, vous n’avez que votre configuration NAT pour la connexion d’hôtes à invité.
De plus, je vous ai conseillé de faire installer virt-manager pour connaître graphiquement le concept de base et les configurations de KVM, pour pouvoir ensuite le faire pour la CLI la prochaine fois.
Pour votre information, j'ai une connexion d'hôte à invité, cette configuration est NAT avec virtio.
Maintenant, pour que votre invité VM ait une connexion qui configure le macvtap, vous devez d’abord créer une connexion de pont séparée ici, puis le macvtap.
Au moment où vous le configurez, vous devriez avoir cette configuration réseau.
Un autre fichier serait le fichier XML invité qui se trouvait dans /etc/libvirt/qemu/guest.xml - Mais ne modifiez pas le fait qu'il ne sert que de référence
Je ne suis pas un expert de la CLI, mais voici ce que j'ai fait pour que cette affaire fonctionne.
J'espère que cela t'aides.