web-dev-qa-db-fra.com

Spécifiez quelle interface réseau utiliser pour nfsroot

Je suis sous un serveur (Ubuntu 16.04) qui a deux cartes réseau eno1 et eno2 .

  • eno1 est connecté à l'extérieur et reçoit une adresse IP ( publique sur dhcp
  • eno2 est connecté à un réseau privé et reçoit une adresse IP privée sur dhcp (disons 192.168.0.2 pour plus de simplicité)

Le serveur démarre en réseau et reçoit tout d'un deuxième serveur sur le réseau privé (par exemple 192.168.0.1). J'ai suivi le Diskless Ubuntu HowTo et tout fonctionne plutôt bien.

  • le serveur obtient 192.168.0.2 comme adresse ip
  • puis il charge le noyau et initramfs sur tftp (à partir de 192.168.0.1) et continue
  • plus tard, il monte / qui se trouve également sur 192.168.0.1

La dernière étape pose toutefois un problème. Plus ou moins simultanément, le système tente d'obtenir les adresses IP à la fois eno1 et eno2, et parfois eno1 se termine en premier. Ensuite, le système essaie de trouver 192.168.0.1 à travers eno1, ce qu’il ne peut bien sûr pas et expire.

Comme indiqué dans le tutoriel, j’ai inclus iface eno2 inet manual dans mon /etc/network/interfaces, afin d’empêcher eno2 de perdre son adresse, mais cela ne semble pas aider.

Toute idée sur la façon de le forcer à utiliser eno2 au lieu de l’interface réseau à utiliser en premier

2
mbeyss

Pour une réponse longue, regardez le documentation de nfsroot .

Le comportement par défaut consiste à utiliser la première interface configurée pour nfsroot. Dans votre cas, c'est quelque peu aléatoire, puisque vous avez deux interfaces connectées à deux réseaux différents.

Vous pouvez forcer l'interface réseau utilisée pour nfsroot en l'ajoutant à la ligne de commande du noyau: ip=:::::eno2:dhcp.

Dans le cas du didacticiel de démarrage réseau, cela se trouve dans le fichier /tftboot/pxelinux.cfg/default de la ligne APPEND. (Remplace le ip=dhcp)

2
pim