Linux : Netplan
Fonctionnement
Vous pouvez trouver les nouveaux fichiers de configuration sur /etc/netplan/*.yaml
.
Ubuntu Server génère un fichier de configuration NetPlan pour System-Networkd nommé 01-netcfg.yaml
, tandis que Ubuntu Desktop génère un fichier de configuration NetPlan pour Network-Manager nommé 01-network-manager-all.yaml
.
Si vous avez plusieurs interfaces, utilisez 02-network-manager-all.yaml
pour la deuxième interface. NetPlan applique la configuration dans l’ordre numérique. Cela signifie que le fichier 01 sera appliqué avant le fichier 02.
Netplan CLI
- generate
- Genere les fichiers de configuration nécessaires à partir des fichiers
/etc/netplan/*.yaml
- Genere les fichiers de configuration nécessaires à partir des fichiers
- apply
- Applique la configuration Netplan au système
- try
- Applique de façon temporaire la configuration Netplan au système avec un retour automatique à l'ancienne configuration
- get
- Permet d'obtenir la configuration d'un élément spécifique comme
"ethernets.eth0.addresses"
, ou"all"
- Permet d'obtenir la configuration d'un élément spécifique comme
- set
- Permet d'ajouter des paramètres
key=value
comme"ethernets.eth0.dhcp4=true"
- Permet d'ajouter des paramètres
- info
- Affiche les infos disponibles
- ip
- Affiche les informations IP du système
- rebind
- Relie les fonctions virtuelles SR-IOV de fonctions physiques données à leur pilote
- status
- Afficher l'état des interfaces réseaux du système
YAML Configuration
Structure du fichier de configuration YAML
network:
version: NUMBER
renderer: STRING
bonds: MAPPING
bridges: MAPPING
dummy-devices: MAPPING
ethernets: MAPPING
modems: MAPPING
tunnels: MAPPING
virtual-ethernets: MAPPING
vlans: MAPPING
vrfs: MAPPING
wifis: MAPPING
nm-devices: MAPPING
Commande : netplan status
root@snipeit:/# netplan status
Online state: online
DNS Addresses: 127.0.0.53 (stub)
DNS Search: .
● 1: lo ethernet UNKNOWN/UP (unmanaged)
MAC Address: 00:00:00:00:00:00
Addresses: 127.0.0.1/8
::1/128
● 2: ens18 ethernet UP (networkd: ens18)
MAC Address: bc:24:11:59:3d:38 (Red Hat, Inc.)
Addresses: 172.20.14.86/30 (dhcp)
fe80::be24:11ff:fe59:3d38/64 (link)
DNS Addresses: 172.20.14.85
Routes: default via 172.20.14.85 from 172.20.14.86 metric 100 (dhcp)
172.20.14.84/30 from 172.20.14.86 metric 100 (link)
172.20.14.85 from 172.20.14.86 metric 100 (dhcp, link)
fe80::/64 metric 256
● 3: ztchwy tunnel/tun UNKNOWN/UP (unmanaged)
MAC Address: 36:9a:3d:12:48:3b
Addresses: 192.168.237.245/24
fe80::349a:3dff:fe12:483b/64 (link)
Routes: 192.168.237.0/24 from 192.168.237.245 (link)
fe80::/64 metric 256
Configuration d’une interface en client DHCP
/etc/netplan/networking.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
dhcp4: true
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens18:
dhcp4: true
version: 2
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
all:
dhcp4: true
dhcp6: true
match:
name: en*
renderer: networkd
version: 2
Configuration statique d’une interface
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
dhcp4: false
addresses:
- 10.0.0.10/24
routes:
- to: default
via: 10.0.0.1
nameservers:
addresses:
- 1.1.1.1
search:
- "linux.local"
Exemple de configuration de type "bridge"
network:
bridges:
br0:
interfaces:
- enp5s0
- enp5s1
dhcp4: true
...
network:
ethernets:
eth0:
dhcp4: false
eth1:
dhcp4: false
bridges:
br0:
interfaces: [eth0, eth1]
parameters:
port-priority:
eth0: 10
eth1: 20
Exemple de configuration de type "bond"
network:
bonds:
bond0:
interfaces:
- enp5s0
- enp5s1
- enp5s2
parameters:
mode: active-backup
...
network:
bonds:
bond0:
addresses:
- 192.168.1.10/24
accept-ra: false
gateway4: 192.168.1.1
interfaces:
- eno1
- eno2
nameservers:
addresses:
- 192.168.1.1
- 192.168.1.2
parameters:
lacp-rate: fast
mode: 802.3ad
transmit-hash-policy: encap3+4
ethernets:
eno1: {}
eno2: {}
version: 2
Exemple de configuration de type "tunnels"
network:
tunnels:
wg0:
mode: wireguard
key: /path/to/private.key
mark: 42
port: 5182
peers:
- keys:
public: rlbInAj0qV69CysWPQY7KEBnKxpYCpaWqOs/dLevdWc=
allowed-ips: [0.0.0.0/0, "2001:fe:ad:de:ad:be:ef:1/24"]
keepalive: 23
endpoint: 1.2.3.4:5
- keys:
public: M9nt4YujIOmNrRmpIRTmYSfMdrpvE7u6WkG8FY8WjG4=
shared: /some/shared.key
allowed-ips: [10.10.10.20/24]
keepalive: 22
endpoint: 5.4.3.2:1
Exemple de configuration de type "vlans"
network:
vlans:
vlan123:
id: 123
link: enp5s0
dhcp4: yes
network:
ethernets:
eno1: {...}
vlans:
en-intra:
id: 1
link: eno1
dhcp4: yes
en-vpn:
id: 2
link: eno1
addresses: [...]
Générer les fichiers de backend
- Une fois Netplan installé et votre fichier ou vos fichiers YAML créés. Il faut commencer (la première fois) par demander à Netplan de générer ses fichiers de backend:
sudo netplan generate
- Appliquer la configuration
Vous pouvez choisir de travailler de deux manières: soit vous appliquer les réglages de manière inconditionnelle, soit vous demandez à Netplan d’appliquer la configuration et d’attendre une confirmation pendant 120 secondes, après quoi il revient à la configuration précédente.
sudo netplan apply
sudo netplan try
Création d'une interface réseau en DHCP avec Netplan
- Pour une configuration simple, utiliser la commande
netplan set
.
Dans l'exemple un fichier YAML appelé second-interface.yaml contenant la configuration nécessaire pour activer la deuxième interface.
netplan set --origin-hint second-interface ethernets.enp6s0.dhcp4=true
Liste des fichiers dans le dossier /etc/netplan
ls /etc/netplan
50-cloud-init.yaml
second-interface.yaml
- Contenu du fichier
_**second-interface.yaml**_
cat /etc/netplan/second-interface.yaml
network:
version: 2
ethernets:
enp6s0:
dhcp4: true
- Vérifiez la configuration complète à l'aide de
netplan get
netplan get
Vous devriez obtenir un résultat ressemblant à ceci :
network:
version: 2
ethernets:
enp5s0:
dhcp4: true
enp6s0:
dhcp4: true
- Appliquation de la configuration avec
netplan apply
netplan apply
Liens
https://ubuntu.com/blog/ubuntu-bionic-netplan
https://www.malekal.com/comment-configurer-le-reseau-ubuntu-netplan/
https://netplan.readthedocs.io/en/stable/netplan-tutorial/#