web-dev-qa-db-fra.com

kvm "default" NAT le réseau ne fonctionne pas

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?

4
Sunnyrain

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.

This is my Host to guest connection

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.

This is the setup for guest connection outside

Au moment où vous le configurez, vous devriez avoir cette configuration réseau.

For your reference

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

This is sample network setup from one of my guest

This is my centos guest network configuration

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.

3
Yien