C'est un vieux fil, mais voilà.
Il se trouve que j'exécute un certain nombre de machines virtuelles OpenBSD sur un ESXi 6.0 exécuté chez SoYouStart, une filiale d'OVH. La configuration réseau y est la même que chez OVH et je pense, bien qu'étrange, son objectif principal est d'éliminer au maximum le trafic ARP en limitant artificiellement les domaines de diffusion, et sans avoir besoin d'utiliser des VLAN par exemple.
Dans mon cas, j'ai demandé des adresses IP supplémentaires à OVH et elles proviennent d'une gamme complètement différente. Pour la discussion ici, supposons que ce sont mes paramètres :
- mon adresse IP principale (que l'hôte ESXi utilise) :213.0.113.78/32
- la plage d'adresses IP supplémentaires pour les invités VM :192.0.2.64/30
- la passerelle par défaut pour TOUS les éléments ci-dessus :213.0.113.254
- veuillez noter que tous les hébergeurs doivent utiliser un masque de réseau d'hôte (255.255.255.255) en raison de la configuration du réseau OVH
Pour configurer le routage sur l'hôte OpenBSD, voici ce que je dois faire :
ifconfig vmx0 inet 192.0.2.64 255.255.255.255
route add -inet 213.0.113.254 -llinfo -link -static -iface vmx0
route add -inet default 213.0.113.254
Pour que tout cela soit fait au démarrage, j'ignore le /etc/mygate
fichier et mettre ce qui suit dans le /etc/hostname.vmx0
:
inet 192.0.2.64 255.255.255.255
!sleep 2
!route add -inet 213.0.113.254 -llinfo -link -static -iface vmx0
!route add -inet default 213.0.113.254
Vous remarquerez le sleep
commande - pour une raison quelconque, cela est requis sur OpenBSD 5.9 mais ne l'était pas auparavant. Sans le sleep
, le premier des à route
commandes ne seront pas exécutées et donc votre routage ne sera pas configuré correctement.
Cela fonctionne en utilisant l'astuce suivante :
- nous configurons l'adresse IP sur l'interface
- avec le premier
route
commande nous traduisons l'adresse IP de la passerelle (213.0.113.254) en une adresse de lien (adresse MAC); ceci est fait par le-llinfo
option; - dans le même
route
commande, en utilisant le-link
option, nous installons l'adresse du lien vers la table de routage et en utilisant le-iface vmx0
nous indiquons au noyau par quelle interface réseau cette adresse de lien est accessible ; le-static
le commutateur le marque comme une entrée insérée manuellement dans la table de routage - le deuxième
route
la commande peut maintenant réussir, car la route vers la passerelle par défaut est maintenant connue
Une chose que j'ai rencontrée dans la configuration ci-dessus, pour laquelle je n'ai pas encore de solution, est que l'un des quatre hôtes OpenBSD, configuré exactement de la même manière, exécutant exactement la même version du système d'exploitation et la même version du noyau, et même s'exécutant sur le même hôte VMware, toutes les 24 heures environ, semble "perdre" cette route magique de sa table de routage...