Un hôte, deux machines virtuelles qui ne peuvent pas se cingler. Comment résoudre


10

Nous avons des machines virtuelles fonctionnant dans l' KVMenvironnement. Nous configurons l'un en tant que serveur de développement fonctionnant Apacheetc., et l'autre en tant Windowsqu'environnement de développement.

Les deux environnements sont configurés et fonctionnent correctement. Cependant, ils ne peuvent pas se cingler. Je me demande s'il y a une solution claire à cela.

Voilà ce qui se passe.

De l'hôte:

  Cannot ping either of 2 VM's (one `Linux`, one `Windows`)

Depuis l'une des machines virtuelles:

  Cannot ping host
  Cannot ping each other

À partir d'autres machines réseau (par exemple, mon ordinateur portable depuis le réseau de mon entreprise)

  Successfully ping host at 192.168.0.64
  Successfully ping VM1 (Linux) 192.168.0.43
  Successfully ping VM2 (Windows) 192.168.0.84

4
Avez-vous plus d'informations sur la configuration réseau de vos machines virtuelles? Êtes-vous entièrement sûr que lorsque vos autres machines réseau pingent vos machines virtuelles, elles ne pingent pas une autre machine aléatoire sur le réseau? (par exemple, pouvez-vous réellement toucher le serveur apache avec un navigateur?).
GregHNZ

Je pense que ce pourrait être votre pont. Les iptables du noyau empêcheront votre machine de se parler à moins que vous: echo "1"> / proc / sys / net / ipv4 / ip_forward; Peut-être de toute façon.
mikeserv

Quelle commande utilisez-vous pour démarrer les machines virtuelles?
jobin

Avez-vous d'autres machines sur le même réseau (qui ne réside pas dans le même hôte)? Ces machines sont-elles capables d'envoyer une requête ping à ces machines?
Sree

1
Utilisez-vous une interface macvtap ( wiki.libvirt.org/page/… ) pour l'invité?
nkms

Réponses:


1

Il est assez évident que les machines communiquent en mode pont, car vous pouvez envoyer une requête ping à l'hôte et aux deux machines virtuelles en dehors de l'environnement KVM.

Votre problème est la protection anti-usurpation dans le noyau, qui supprime les paquets avec une destination autre que l'adresse IP de l'hôte.

Pour l'exécution, procédez comme suit dans la ligne de commande du serveur hôte:

 sudo sysctl -w net.ipv4.conf.default.rp_filter=0
 sudo sysctl -w net.ipv4.conf.all.rp_filter=0

Pour qu'il survive au démarrage, ajoutez les lignes suivantes à /etc/sysctl.conf:

 net.ipv4.conf.default.rp_filter=0
 net.ipv4.conf.all.rp_filter=0

D'après les commentaires sur /etc/sysctl.conf(légèrement modifiés):

rp_filter: active la protection contre l'usurpation (filtre de chemin inverse).

Vérification de l'adresse source dans toutes les interfaces pour éviter certaines attaques d'usurpation


Je sais que la question est ancienne ...
Rui F Ribeiro

0

En général, le type de connexion doit être NAT pour autant que je sache. Ainsi, dans les paramètres du clic droit de la souris sur la machine virtuelle particulière, vous pouvez modifier le type de réseau.

PS: cacher un ordinateur de ping dans le réseau local en particulier, je pense que ce n'est pas possible. Mais ça vaut le coup d'oeil.


Il est possible de masquer les ordinateurs des pings ICMP. Vous désactivez la fonctionnalité dans le noyau ou créez des règles de pare-feu pour la bloquer. J'ai des hôtes Xen et bhyve en mode pont, et ils fonctionnent bien.
Rui F Ribeiro
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.