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
Jay Lepore
la source
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

Rui F Ribeiro
la source
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.

rɑːdʒɑ
la source
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