Configuration réseau avec Netplan sur Ubuntu 18.04

Avec la version 18.04 (Bionic Beaver) Ubuntu est passé à Netplan pour la configuration des interfaces réseau.

C'est un système de configuration basé sur YAML, qui simplifie le processus de configuration.

Fichiers de configuration

Ce nouvel outil remplace le fichier de configuration (/etc/network /interfaces) qui avait été précédemment utilisé pour configurer les interfaces réseau sur Ubuntu.
Les fichiers de configuration se trouvent maintenant sous la forme de fichiers YAML à l'emplacement /etc/netplan/*.yaml.

Assurez-vous de respecter les normes YAML lorsque vous modifiez le fichier. Une erreur de syntaxe peut engendrer une mauvaise lecture du fichier de configuration.

Un fichier 01-netcfg.yaml est utilisé pour configurer la première interface.

Vous trouverez ci-dessous la configuration par défaut pour une interface utilisant DHCP :

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0f0:
      dhcp4: yes

Vous pouvez voir ci-dessous une liste des options de configuration les plus courantes et une description de leur utilisation.

Option Exemple Description
addresse [192.168.1.2/24, 62.210.123.123/32] Une liste d'adresses IP à affecter à une interface. Le format utilise la notation CIDR.
gateway4 192.168.1.1 L'adresse IP de votre passerelle IPv4 locale.
dhcp4 true Définir si DHCP est activé pour IPv4 - true ou false
dhcp6 true Définir si DHCP est activé pour IPv6 - true ou false

Configuration d'une IP failover avec Netplan

Pour configurer une adresse IP failover, vous devez éditer le fichier /etc/netplan/01-netcfg.yaml et configurer une mise en réseau statique pour votre serveur.

Les adresses IP doivent être écrites avec leur notation CIDR. Le masque de réseau est:

  • /24 pour l'adresse IP principale du serveur
  • /32 pour chaque adresse IP failover

Votre fichier de configuration devrait ressembler à l'exemple suivant:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0f0:
      addresses: [163.172.123.123/24, 212.83.123.123/32]
      gateway4: 163.172.123.1
      nameservers:
        addresses: [ "62.210.16.6", "62.210.16.7" ]

Une fois le fichier édité et sauvegardé, recharger la configuration avec la commande suivante: sudo netplan apply

Configuration d'une adresse IP failover dans une machine virtuelle

Lorsque vous configurez une adresse IP failover dans une machine virtuelle, vous devez spécifier la route qui sera utilisée par la machine virtuelle. Votre fichier de configuration devrait ressembler à ceci:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [fail.over.ip.address/32]
      gateway4: 62.210.0.1
      nameservers:
        addresses: [62.210.16.6, 62.210.16.7]
      routes:
      - to: 62.210.0.1/32
        via: fail.over.ip.address
        scope: link

Configuration de l'interface RPN sur un Dedibox

L'interface réseau principale de votre Dedibox est configurée automatiquement lors de l'installation du serveur.
Pour utiliser le RPN avec votre serveur, vous devez manuellement configurer la deuxième interface.

Étape 1 - Détecter les noms d'interfaces réseau de votre serveur

Le nom des interfaces réseau peut être différent d'un serveur à un autre, car cela dépend de la configuration matérielle.
Pour détecter le nom de votre interface RPN, lancez ifconfig -a et vérifiez la liste de toutes les interfaces correspondant à l'interface RPN en comparant les adresses MAC (1). Le nom de l'interface RPN sera affiché dans la liste (2):

Etape 2 - Configuration du fichier d'interfaces

Dans notre exemple, l'interface réseau RPN est nommée enp1s0f1. Nous devons l'ajouter au fichier /etc/netplan/01-netcfg.yaml avec une configuration via DHCP:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0f0:
      dhcp4: yes
    enp1s0f1:
      dhcp4: yes

Une fois que vous avez édité et sauvegardé le fichier, vous pouvez recharger la configuration avec la commande suivante: sudo netplan apply

Étape 3 - Testez la configuration

Une fois la nouvelle configuration activée, votre serveur obtiendra l'adresse IP RPN en quelques secondes à partir d'un serveur DHCP. Vous pouvez vérifier la configuration en exécutant ifconfig:

Vous remarquez que l'interface a obtenu son adresse IP RPN et vous pouvez tester la connexion en faisant un ping à san-1.rpn.online.net:

Configuration de l'interface RPNv2 sur une Dedibox

Etape 1 - Création d'un groupe RPNv2

Pour utiliser le RPNv2 avec votre Dedibox, il est nécessaire de créer un groupe RPNv2 depuis la console de gestion :

Étape 2 - Détecter les noms d'interfaces réseau de votre serveur

Le nom des interfaces réseau peut être différent d'un serveur à un autre, car cela dépend de la configuration matérielle.
Pour détecter le nom de votre interface RPN, lancez ifconfig -a et vérifiez la liste de toutes les interfaces correspondantes à l'interface RPN en comparant les adresses MAC (1). Le nom de l'interface RPN sera affiché dans la liste (2) :

Etape 3 - Configuration du fichier d'interfaces

Dans notre exemple, l'interface réseau RPN est nommée enp1s0f1. Nous pouvons maintenant configurer cette interface dans le fichier /etc/netplan/01-netcfg.yaml. De plus, le VLAN doit être configuré avec le VLAN-ID correspondant au serveur du groupe RPN. Comme le RPNv2 ne propose pas de configuration du réseau via DHCP, vous devez configurer manuellement l'adresse IP du serveur depuis un bloc des IP internes (par exemple : 192.168.0.0.0/24) :

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0f0:
      dhcp4: yes
    enp1s0f1: {}
  vlans:
    vlan2004:
      addresses:
        - 192.168.1.4/24
      id: 2004
      link: enp1s0f1
 

Une fois que vous avez ajouté la configuration, sauvegardez le fichier et appliquez la configuration réseau :

sudo netplan apply

Étape 4 - Testez la configuration

Dans le test suivant, nous supposons que deux serveurs sont déjà configurés :

  • Dedibox A avec le VLAN 2004 et l'IP 192.168.1.4.
  • Dedibox B avec le VLAN 2005 et l'IP 192.168.1.5.

Testez la connexion entre les deux serveurs en exécutant un ping de Dedibox A à Dedibox B :

myuser@dedibox-a:~$ ping 192.168.1.5
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.
64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from 192.168.1.5: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from 192.168.1.5: icmp_seq=3 ttl=64 time=0.046 ms
64 bytes from 192.168.1.5: icmp_seq=4 ttl=64 time=0.048 ms

--- 192.168.1.5 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3068ms
rtt min/avg/max/mdev = 0.033/0.043/0.048/0.007 ms

Configuration de la passerelle RPNv1

Certains services comme le RPN-SAN sont actuellement disponibles uniquement dans le RPNv1 et pour les utiliser, vous devez configurer une passerelle RPNv1. Vous pouvez demander un bloc d'adresses RPNv1 dans votre console de gestion et configurer VLAN pour votre RPN comme l'exemple ci-dessous :

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0f0:
      addresses: [ "163.172.123.123/24" ]
      gateway4: 163.172.123.1
      nameservers:
        addresses: [ "62.210.16.6", "62.210.16.7" ]
    enp1s0f1: {}
    
  vlans:
    vlan.2002:
        id: 2002
        link: enp1s0f1
        addresses: [ "10.88.109.228/28", "192.168.1.2/24" ]
        gateway4: 10.88.109.225
        routes:
          - to: 10.88.0.0/13
            via: 10.88.109.225
            on-link: true