Ubuntu est un système d'exploitation incroyable, je n'avais pas travaillé avec Ubuntu server depuis longtemps et il n'y avait pas de sens à mettre à jour mon Desktop avec une version stable. Et récemment, j'ai dû me confronter à la toute nouvelle version d'Ubuntu server 18.04, ma surprise a été immense lorsque j'ai réalisé que j'étais infiniment en retard et que je ne pouvais pas configurer le réseau, car la bonne vieille méthode de configuration des interfaces réseau par édition du fichier /etc/network/interfaces avait disparu. Et qu'est-ce qui a pris sa place ? Quelque chose d'horrible et apparemment incompréhensible au premier abord, bienvenue à « Netplan ».
Pour être honnête, au début, je ne comprenais pas où était le problème et « pourquoi c'était nécessaire, tout était si pratique », mais après un peu de pratique, j'ai compris qu'il y avait un certain charme à cela. Passons aux choses sérieuses, qu'est-ce que Netplan ? C'est un nouvel outil pour configurer le réseau sous Ubuntu, en tout cas « je n'ai pas vu quelque chose de similaire dans d'autres distributions ». La différence essentielle de Netplan est que la configuration s'écrit dans un langage , oui, vous ne rêvez pas, en YAML. Les développeurs ont décidé de suivre le courant (et peu importe combien on le vante, je le considère tout de même comme un langage affreux). Le principal inconvénient de ce langage est qu'il est très sensible aux espaces, examinons la configuration à l'aide d'un exemple.
Les fichiers de configuration se trouvent à l'emplacement /etc/netplan/nomdufichier.yaml, entre chaque bloc, il doit y avoir + 2 espaces.
1) L'en-tête standard ressemble à ceci :
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:noVoyons ce que nous avons fait jusqu'à présent :
- network : — c'est le début du bloc de configuration.
- renderer : networkd — ici, nous indiquons le gestionnaire de réseau que nous allons utiliser, soit networkd soit NetworkManager.
- version : 2 — ici, comme je l'ai compris, c'est la version de YAML.
- ethernets : — ce bloc indique que nous allons configurer le protocole Ethernet.
- enps0f0 : — nous indiquons quel adaptateur réseau nous allons configurer.
- dhcp4:no — nous désactivons le DHCP v4, pour le DHCP v6, il s'agit de dhcp6 respectivement.
2) Essayons d'attribuer des adresses IP :
enp3s0f0:
dhcp4:no
macaddress: bb:11:13:ab:ff:32
addresses: [10.10.10.2/24, 10.10.10.3/24]
gateway4: 10.10.10.1
nameservers:
addresses: 8.8.8.8Ici, nous avons défini la MAC, l'IPv4, la passerelle et le serveur DNS. Remarquez que si nous avons besoin de plus d'une adresse IP, nous les écrivons séparément avec une virgule, en veillant à mettre un espace après.
3) Que faire si nous avons besoin de ?
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1- bonds : — bloc expliquant que nous allons configurer le bonding.
- bond0 : — un nom arbitraire pour l'interface.
- interfaces : — un ensemble d'interfaces regroupées en bonding, »comme mentionné précédemment, si plusieurs paramètres sont présents, nous les décrivons entre crochets".
- parameters : — nous décrivons le bloc de configuration des paramètres
- mode : — nous indiquons le mode selon lequel le bonding fonctionnera.
- mii-monitor-interval : — nous définissons l'intervalle de surveillance à 1 seconde.
À l'intérieur du bloc nommé bond, il est également possible de configurer des paramètres tels que addresses, gateway4, routes, etc.
Nous avons ajouté une redondance pour notre réseau, il ne reste plus qu'à ajouter et la configuration peut être considérée comme terminée.
vlans :
vlan10:
id : 10
link : bond0
dhcp4 : non
addresses : [10.10.10.2/24]
gateway : 10.10.10.1
routes :
- to : 10.10.10.2/24
via : 10.10.10.1
on-link : vrai
- vlans : — nous déclarons le bloc de configuration vlan.
- vlan10 : — un nom arbitraire pour l'interface vlan.
- id : — étiquette de notre vlan.
- link : — l'interface par laquelle le vlan sera accessible.
- routes : — nous déclarons le bloc de description des routes.
- — to : — nous définissons l'adresse / sous-reseau pour lequel le chemin est nécessaire.
- via : — nous indiquons la passerelle par laquelle notre sous-réseau sera accessible.
- on-link : — nous précisons que nous devons toujours définir les routes lors de la montée du lien.
Notez comment je place les espaces ; dans le langage YAML, c'est très important.
Nous avons décrit les interfaces réseau, créé du bonding, et même ajouté des vlans. Appliquons notre configuration, la commande netplan apply vérifiera notre configuration pour les erreurs et l'appliquera en cas de succès. Ensuite, la configuration sera automatiquement montée lors du redémarrage du système.
En rassemblant tous les blocs de code précédents, voici ce que nous avons obtenu :
network:
version : 2
renderer : networkd
ethernets :
enp3s0f0 :
dhcp4 : non
ensp3s0f1 :
dhcp4 : non
bonds :
bond0 :
dhcp4 : non
interfaces : [enp3s0f0, enp3s0f1]
parameters :
mode : 802.3ad
mii-monitor-interval : 1
vlan10 :
id : 10
link : bond0
dhcp4 : non
addresses : [10.10.10.2/24]
routes :
- to : 10.10.10.2/24
via : 10.10.10.1
on-link : vrai
vlan20 :
id : 20
link : bond0
dhcp4 : non
addresses : [10.10.11.2/24]
gateway : 10.10.11.1
nameserver :
addresses : [8.8.8.8]
Notre réseau est prêt à l'emploi, tout n'a pas été si effrayant que cela pouvait paraître au départ et le code s'est avéré très beau et lisible. P.S. Merci, le netplan a un excellent manuel à ce lien. .
Source : habr.com
