J’ai récemment fait la location d’un VPS Debian 11 de l’hébergeur OVH. La configuration par défaut dispose d’une adresse ipv4 et d’une adresse ipv6 obtenues via DHCP. Je n’aime pas trop cela car en cas de défaillance du DHCP, la machine ne se verra pas attribuée d’adresse IP en cas de redémarrage. Nous allons voir dans cet article comment configurer une adresse ipv4 statique . Petit disclaimer, je ne suis pas un expert Linux même si je connais plutôt bien le système d’exploitation.
Infrastructure
Configuration d’exemple :
- Adresse de la machine : 192.168.1.12
- Adresse de la passerelle par défaut : 192.168.1.1
- Nom de la machine : machine.vps.ovh.net
Désactivation des services
La génération de la configuration de ces adresses est faite via les service systemd cloud-*. Afin de fonctionner intégralement de façon statique, il est nécessaire de désactiver ces services.
1 2 3 4 5 6 7 8 9 | sudo systemctl stop cloud-init sudo systemctl stop cloud-init-local sudo systemctl stop cloud-config sudo systemctl stop cloud-final sudo systemctl disable cloud-init sudo systemctl disable cloud-init-local sudo systemctl disable cloud-config sudo systemctl disable cloud-final |
La configuration initialement générée par cloud-init se trouve dans /etc/network/interfaces.d/50-cloud-init. Nous allons la supprimer afin d’éviter qu’elle soit surchargée en cas de redémarrage des services et à des fins de simplification.
1 | sudo rm /etc/network/interfaces.d/50-cloud-init |
Configuration des interfaces réseaux
Afin d’être chargé correctement, il est nécessaire de modifier le fichier /etc/network/interfaces. Je ne comprends pas encore pourquoi mais la directive source-directory ne fonctionne pas chez moi. Si quelqu’un a une réponse à cet énigme, je suis preneur.
1 2 | sudo sed -i 's/source-directory \/etc\/network\/interfaces.d/source \/etc\/network\/interfaces.d\/*/g' /etc/network/interfaces sudo sed -i 's/source-directory \/run\/network\/interfaces.d/source \/run\/network\/interfaces.d\/*/g' /etc/network/interfaces |
Attention, Proxmox n’est pas en mesure de récupérer les configurations d’interfaces présentes dans */etc/network/interfaces.d/**. J’ai dû toutes les mettre dans le fichier /etc/network/interfaces.
Configuration de l’interface de loopback
Nous allons maintenant configurer l’interface de loopback de façon statique.
1 2 3 4 | <em># sudo vim /etc/network/interfaces.d/localhost</em> auto lo iface lo inet loopback dns-nameservers 9.9.9.9 |
L’adresse ip associée à la directive dns-nameservers est celle qui sera utilisée comme dns dans le fichier /etc/resolv.conf.
Configuration de l’interface principale
Il est maintenant nécessaire de configre l’interface principale, ici nommée ens3, en ipv4. Préalablement à sa configuration, il nous est nécessaire de connaitre l’adresse de la passerelle par défaut.
1 2 3 | ip route | awk '/default/ {print $3; exit}' <em># 192.168.1.1</em> |
Une fois l’adresse de la passerelle par défaut notée, 192.168.1.1 dans notre exemple. Il est nécessaire de connaître l’adresse IP qui nous a été allouée dynamiquement.
1 2 3 4 5 6 7 8 9 10 | /sbin/ip -o -4 addr list ens3 | awk '{print $4}' | cut -d/ -f1 <em># 192.168.1.12</em> sudo vim /etc/network/interfaces.d/ens3 auto ens3 iface ens3 inet static <em># mask is added at the end of the IP to allow Proxmox to detect the interface properly</em> address 192.168.1.12/32 gateway 192.168.1.1 |
Configuration du fichier host
Nous allons maintenant configurer le fichier /etc/hosts en ajoutant l’adresse IP relative à la machine. C’est-à-dire, dans notre exemple, l’adresse 192.168.1.12 associé à machine.vps.ovh.net
1 2 3 4 5 6 7 | <em># sudo vim /etc/hosts</em> 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.1.12 machine.vps.ovh.net machine |
On peut maintenant redémarrer la machine.
1 | sudo reboot |
Vérifications
Afin de s’assurer que tout est ordre, on va procéder à quelques vérifications.
1 2 3 4 5 6 7 8 9 10 11 | hostname --ip-address <em># 192.168.1.12</em> /sbin/ip -o -4 addr list ens3 | awk '{print $4}' | cut -d/ -f1 <em># 192.168.1.12</em> ip r <em># default via 192.168.1.1 dev ens3 proto kernel onlink</em> cat /etc/resolv.conf <em># nameserver 9.9.9.9</em> |
Conclusions
J’espère que ce petit tutoriel vous aura été utile.