Gestion du réseau Linux avec Netplan

1. Introduction à Netplan

Netplan est un utilitaire qui permet de configurer facilement le réseau sous Linux.

Concrètement, Netplan permet de créer un description de la configuration du réseau à partir de fichier YAML et de la soumettre au gestionnaire tel que Network Manager (renderer).

Netplan est nativement disponible en Ubuntu Bionic 18.04 et versions supérieures.

2. Commande Neplan

sudo netplan
usage: /usr/sbin/netplan  [-h] [--debug]  ...

Network configuration in YAML

optional arguments:
  -h, --help  show this help message and exit
  --debug     Enable debug messages

Available commands:

    help      Show this help message
    apply     Apply current netplan config to running system
    generate  Generate backend specific configuration files from
              /etc/netplan/*.yaml
    info      Show current netplan version and available features
    ip        Retrieve IP information from the system
    try       Try to apply a new netplan config to running system, with
              automatic rollback
sudo netplan info
netplan.io:
  features:
  - auth-phase2
  - dhcp-use-domains
  - ipv6-mtu
  - generated-supplicant
  website: https://netplan.io/
netplan ip leases eth0
# This is private data. Do not parse.
ADDRESS=192.168.122.115
NETMASK=255.255.255.0
ROUTER=192.168.122.1
SERVER_ADDRESS=192.168.122.1
NEXT_SERVER=192.168.122.1
BROADCAST=192.168.122.255
T1=1800
T2=3150
LIFETIME=3600
DNS=192.168.122.1
HOSTNAME=focal
CLIENTID=ff3239f9b500020000ab11ef7cdfeb2bba7a9c

La page manuel de Netaplan est particulièrement bien documentée :

man netplan

3. Fichiers de configuration Netplan

cat /etc/netplan/*
# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp-identifier: mac
      dhcp4: true
      dhcp-identifier: mac
  version: 2
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes

3. Commandes Netplan

Netplan utilise un ensemble de sous-commandes pour piloter son comportement :

  • netplan generate : génère la configuration du réseau pour les moteurs de rendu (renderer).
  • netplan apply : génère la configuration du réseau pour les moteurs de rendu (renderer) et applique toute la configuration, en les redémarrant si nécessaire.
  • netplan try : applique la configuration et attend la confirmation de l’utilisateur.

On retire les fichiers de configuration originaux :

sudo mkdir /etc/backup.netplan
sudo mv /etc/netplan/* /etc/backup.netplan/

On propose cette configuration statique de l’interface “eth0” :

sudo bash -c 'cat << EOF > /etc/netplan/01-eth0.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.122.22/24
      gateway4: 192.168.122.1
      nameservers:
        search: [foo.local, bar.local]
        addresses: [8.8.8.8]
EOF'

Et on génère la configuration pour l’appliquer auprès du gestionnaire :

sudo netplan generate
sudo netplan apply

Pour vérification :

ip a
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:19:74:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.22/24 brd 192.168.122.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe19:7417/64 scope link
       valid_lft forever preferred_lft forever