Configurer des adresses IPv4 et IPv6 publiques sur un serveur Cloud ou un vServer avec netplan (Ubuntu 22.04)
Veuillez utiliser la fonction « Imprimer » au bas de la page pour créer un PDF.
Pour Serveur Cloud
Dans cet article, nous vous montrons comment ajouter des adresses IPv4 et IPv6 publiques supplémentaires sur un serveur sur lequel Ubuntu 20.04 ou 22.04 est installé.
La configuration du réseau est effectuée dans les images IONOS pour Ubuntu 20.04 et Ubuntu 22.04 via netplan. La configuration du réseau n'est plus contrôlée par le fichier /etc/network/interfaces, mais par des fichiers avec l'extension .yaml, qui se trouvent dans le répertoire /etc/netplan. S'il y a plusieurs fichiers dans ce répertoire, ils sont chargés dans l'ordre lexical.
Remarque
Les articles suivants expliquent comment établir une connexion réseau chiffrée avec votre serveur à l'aide de Secure Shell (SSH) :
Attention
Ces instructions ne sont valables que pour un Serveur Cloud. Pour ajouter des adresses IPv4 et des adresses IPv6 sur un Serveur Dédié, veuillez consulter les articles suivants :
Ajouter une adresse IPv4 publique sur un Serveur Dédié (Ubuntu 20.04)
Ajouter une adresse IPv6 publique sur un Serveur Dédié (Ubuntu 20.04)
La manière de configurer des adresses IPv4 et des adresses IPv6 sur un Serveur Cloud sur lequel Ubuntu 18.04, Ubuntu 20.04, Debian 10, 11 ou Debian 12 est installé est décrite dans l'article suivant :
Voici comment configurer d'autres adresses IPv4 et IPv6 publiques dans Ubuntu 20.04 et 22.04 :
Conditions préalables
Vous avez attribué une ou plusieurs adresses IPv4 et/ou IPv6 publiques supplémentaires à votre serveur dans Cloud Panel.
Vous avez ouvert une session sur le serveur.
Vous avez noté les adresses IPv4 et les adresses IPv6 du serveur.
Vérifier si netplan est utilisé pour la configuration du réseau
Pour vérifier si votre serveur utilise déjà netplan pour la configuration du réseau, saisissez la commande suivante :
Pour vérifier si le paquet netplan.io est installé sur ton système Ubuntu ou Debian, saisissez la commande suivante :
[root@localhost ~]# dpkg -l | grep netplan.io
Si le paquet netplan.io est installé, vous obtiendrez par exemple les informations suivantes :
root@localhost:~# dpkg -l | grep netplan.io
ii netplan.io 0.105-0ubuntu2~22.04.3 amd64 YAML network configuration abstraction for various backendsAllez dans le répertoire /etc/netplan.
[root@localhost ~]# cd /etc/netplan
Vérifiez qu'il n'y a pas déjà un fichier de configuration dans ce répertoire. Pour cela, saisissez la commande suivante :
[root@localhost ~]
Remarque
Si le paquet netplan.io n'est pas installé et que le répertoire /etc/netplan n'existe pas, cela signifie que netplan n'a pas été installé. Dans ce cas, n'installez pas Netplan, mais suivez dans ce cas les étapes décrites dans l'article suivant :
Déterminer l'interface réseau
Déterminez le nom de fichier de l'interface réseau. Pour ce faire, saisissez la commande suivante :
[root@localhost ~]# ip addr
Dans cet exemple, le nom de l'interface réseau est ens192 :
root@localhost:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:08:a5:c6 brd ff:ff:ff:ff:ff:ff
altname enp11s0
inet 217.160.141.60/32 metric 100 scope global dynamic ens192
inet6 2001:8d8:1801:5d2::1/64 scope global dynamic noprefixroute
valid_lft 3443sec preferred_lft 3443sec
inet6 fe80::250:56ff:fe08:a5c6/64 scope link
valid_lft forever preferred_lft forever
Afficher le serveur DNS par défaut
Pour afficher les serveurs DNS utilisés, saisissez les commandes suivantes :
[root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv
[root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers6 -LvEnsuite, les serveurs DNS utilisés seront affichés à la fin de la sortie. Exemple :
[root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv
* Trying 169.254.169.254...
* TCP_NODELAY set
* Connected to 169.254.169.254 (169.254.169.254) port 80 (#0)
> GET /latest/meta_data/dns/nameservers HTTP/1.1
> Host : 169.254.169.254
> User-Agent : curl/7.61.1
> Accept : */*
>
< HTTP/1.1 200 OK
< Date : Thu, 08 Sep 2022 12:19:36 GMT
< Serveur : Apache
< Strict-Transport-Security : max-age=63072000 ; includeSubDomains
< Vary : Accept-Encoding
< Access-Control-Allow-Origin : *
< Access-Control-Allow-Headers : X-TOKEN, X-HASH, X-MICROTIME, X-USER, Content-Type, X-API-TOKEN, Authorization
< Access-Control-Allow-Methods : PUT, GET, POST, DELETE, OPTIONS
< Access-Control-Expose-Headers : Error-Msg
< Cache-control : no-cache, no-store, max-age=0
< Access-Control-Allow-Origin : *
< Access-Control-Allow-Headers : X-TOKEN, X-HASH, X-MICROTIME, Content-Type, X-API-TOKEN, Authorization
< Access-Control-Allow-Methods : PUT, GET, POST, DELETE, OPTIONS
< Access-Control-Expose-Headers : Error-Msg
< Transfer-Encoding : chunked
< Content-Type : text/plain;charset=UTF-8
<
212.227.123.16,212.227.123.17
* Connection #0 to host 169.254.169.254 left intactNotez les serveurs DNS. Dans l'exemple ci-dessus, les serveurs DNS sont affichés au-dessus de la ligne * Connection #0 to host 169.254.169.254 left intact.
Si le serveur DNS pour IPv6 ne s'affiche pas, saisissez la commande suivante :
[root@localhost ~]# resolvectl --no-pager |grep Server
Exemple :
root@localhost:/etc/netplan# resolvectl --no-pager |grep Server
Current DNS Server: 212.227.123.16
DNS Servers: 212.227.123.16 212.227.123.17 2001:8d8:fe:53:72ec::1
Afficher la passerelle pour IPv4 et IPv6
Pour afficher la passerelle par défaut de l'interface active, saisissez les commandes suivantes :
IPv4 :[root@localhost ~]# ip route show | grep 'default'
IPv6 :
[root@localhost ~]# ip -6 route show | grep 'default'.
Notez les adresses IP des passerelles. Elles sont listées directement après la partie default via. Exemples :
Passerelle IPv4root@localhost:~# ip route show default
default via 10.255.255.1 dev ens192 proto dhcp src 217.160.141.60 metric 100Passerelle IPv6
root@localhost:~# ip -6 route show | grep 'default'
default via fe80::1 dev ens192 proto ra metric 100 expires 4sec pref highDans cet exemple, la passerelle IPv6 est fe80::1.
Ajouter des adresses IPv4 et IPv6
Vérifiez qu'il n'y a pas déjà un fichier de configuration dans ce répertoire. Pour cela, saisissez la commande suivante :
[root@localhost ~]# ls /etc/netplan
Attention !
Si le fichier 00-Public_network.yaml se trouve dans le répertoire, ne le renommez pas, car ce fichier est nécessaire pour le réseau public.
Si un fichier de configuration se trouve dans ce répertoire, renommez-le. Pour cela, saisissez la commande suivante et remplacez les caractères génériques.
[root@localhost ~]# mv ANCIEN_FICHIER_DE_CONFIGURATION.yaml ANCIEN_FICHIER_DE_CONFIGURATION.yaml.old
Créez le fichier /etc/netplan/01-netcfg.yaml avec l'éditeur vi. Pour cela, saisissez la commande suivante :
[root@localhost ~]# vi etc/netplan/01-netcfg.yaml
Remarques
L'éditeur vi dispose d'un mode d'insertion et d'un mode commande ou d'instruction. Vous pouvez accéder au mode d'insertion en appuyant sur la touche [i]. Dans ce mode, les caractères saisis sont immédiatement insérés dans le texte. Pour accéder au mode commande, appuyez ensuite sur [ESC]. Lorsque vous utilisez le mode commande, vos saisies au clavier sont interprétées comme des commandes.
Pour quitter vi et enregistrer le fichier, entrez la commande :wq, puis appuyez sur Entrée.
Ajoutez les informations suivantes :
network:
version: 2
renderer: networkd
ethernets:
INTERFACE RESEAU:
addresses:
- ADRESSE-IPv4-PRINCIPALE/32
- ADRESSE-IPv4-SUPPLEMENTAIRE 1/32
- ADRESSE-IPv6-PRINCIPALE/64
- ADRESSE-IPv6-SUPPLEMENTAIRE 1/64
gateway6: PASSERELLE POUR IPv6
nameservers:
addresses:
- ADRESSE-IP POUR SERVEUR DE NOM 1
- ADRESSE-IP POUR SERVEUR DE NOM 2
routes:
- to: default
via: PASSERELLE POUR IPv4
- to: default
via: PASSERELLE POUR IPv6
Exemple :network:
ethernets:
ens192:
addresses:
- 217.160.141.60/32
- 82.165.254.101/32
- 2001:8d8:1801:5d2::1/64
- 2001:8d8:1801:5d2::2/64
gateway6: fe80::1
nameservers:
addresses:
- 127.0.0.53
routes:
- to: default
via: 10.255.255.1
- to: default
via: fe80::1Remplacez le caractère générique INTERFACE RESEAU par l'interface réseau déterminée. Dans l'exemple ci-dessus, il s'agit de l'interface réseau ens192. Saisissez ensuite l'adresse IPv4 principale, les adresses IPv4 supplémentaires ainsi que et l'adresse IPv6 principale et les adresses IPv6 supplémentaires. Pour ce faire, remplacez les caractères génériques.
Attention
Les indentations font partie de la syntaxe du format YAML. Veillez donc à ce qu'elles soient correctement respectées. Dans le cas contraire, la configuration ne peut pas être reprise correctement et le serveur peut ne plus être accessible.
Utilisez toujours la barre d'espace pour les indentations.
Remplacez le caractère générique PASSERELLE POUR IPv4 par la passerelle IPv4 déterminée.
Remplacez les caractères génériques ADRESSE IP DU SERVEUR DE NOM 1 et ADRESSE IP DU SERVEUR DE NOM 2 par les serveurs de noms déterminés.
Remplacez le caractère générique PASSERELLE POUR IPv6 par la passerelle IPv6 déterminée.
Pour quitter vi et enregistrer le fichier, saisissez la commande :wq et appuyez ensuite sur Entrée.
Pour modifier les permissions du fichier 01-netcfg.yaml de manière à ce que seul le compte root puisse lire et modifier le fichier, saisissez la commande suivante :
root@localhost:~# sudo chmod 600 /etc/netplan/01-netcfg.yaml
Pour vérifier le fichier de configuration, saisissez la commande suivante :
root@localhost:~# netplan --debug apply
Attention
Les modifications que vous avez apportées au fichier /etc/netplan/01-netcfg.yaml restent valables et vous devez les modifier si elles ne sont pas correctes. Dans le cas contraire, le système d'exploitation tentera de les charger après un redémarrage.
Remarque
Si un message d'erreur similaire à celui ci-dessous s'affiche après avoir saisi la commande netplan --debug apply, par exemple, cela signifie qu'il y a un problème d'indentation dans le fichier /etc/netplan/01-netcfg.yaml :
root@localhost:# netplan --debug apply
** (generate:1617): DEBUG: 16:52:11.664: starting new processing pass
/etc/netplan/01-netcfg.yaml:2:10: Invalid YAML: mapping values are not allowed in this context:
version: 2
Dans ce cas, corrigez l'indentation et réessayez.
Pour éviter les conflits, il est nécessaire de désinstaller ifupdown. Pour désinstaller ifupdown ainsi que tous les autres paquets dépendants et pour supprimer les fichiers de configuration et/ou de données d'ifupdown, saisissez la commande suivante :
root@localhost:~# sudo apt-get autoremove --purge ifupdown
Effectuez un redémarrage du serveur pour que les modifications soient prises en compte. Pour ce faire, saisissez la commande suivante :
root@localhost:~# systemctl reboot
Pour vérifier si l'adresse IPv4 supplémentaire a été correctement configurée, saisissez la commande suivante :
root@localhost:~# ip addr
Remarque
Si le serveur n'est plus accessible en raison d'une erreur de configuration, vous pouvez corriger la configuration au moyen de la console KVM. Vous trouverez des instructions sur l'utilisation de la console KVM dans l'article suivant :
Utiliser la console KVM pour accéder au serveur (Serveur Cloud et Virtual Server Cloud)
Pour plus d'informations concernant netplan, vous pouvez consulter les pages suivantes :
http://manpages.ubuntu.com/manpages/bionic/man5/systemd.network.5.html