Accès au réseau pour toutes les machines virtuelles
Par défaut, les machines virtuelles sont "enfermées" sur le serveur. Si vous souhaitez leur autoriser un accès à internet, quelques manipulations sont à réaliser.
Tout d'abord, ajoutez ceci dans la configuration du parefeu (/etc/pf.conf) pour autoriser le flux sortant des machines virtuelles:
# utilisation d'un resolveur DNS public pass in quick proto { tcp udp } from 100.64.0.0/10 to any port domain \ rdr-to 9.9.9.9 port domain match out on egress from 100.64.0.0/10 to any nat-to (egress)
Ici, on utilise un résolveur DNS public pour les machines virtuelles.
Vous voudrez sans doute modifier cette partie, notamment "9.9.9.9" par un résolveur qui vous convient peut-être davantage.
# Utilisation du résolveur unwind(8) de l'hôte pour les VM pass in proto { tcp udp } from 100.64.0.0/10 to any port domain \ rdr-to localhost port domain match out on egress from 100.64.0.0/10 to any nat-to (egress)
Si vous avez configuré votre parefeu de façon à ce qu'il bloque tout par défaut, vous devrez ajouter ceci afin d'autoriser l'interface servant à communiquer avec les machines virtuelles :
pass on tap0 from 127.0.0.1 to any pass on tap0 from 100.64.0.0/10 to any
Dans tous les cas, il faudra activer l'"ip forwarding" dans le fichier "/etc/sysctl.conf" :
net.inet.ip.forwarding=1 net.inet6.ip6.forwarding=1
Ainsi, les requêtes sont correctement redirigées vers (ou depuis) les machines virtuelles.
Après avoir pris en compte ces modifications, c'est tout bon 😊.