Commençant vers Ubuntu 18.04, les développeurs Ubuntu ont cessé d’utiliser la méthode classique de configuration du réseau /etc/init.d/networking
et /etc/network/interfaces
et sont passés à un élément appelé netplan
NAME_ . Cela a mis beaucoup de gens en colère et a été largement considéré comme un mauvais geste. Est-il possible de supprimer netplan
et d'utiliser la bonne méthode /etc/network/interfaces
pour configurer le réseau?
La procédure suivante fonctionne pour Ubuntu 18.04 (Bionic Beaver)
I. Réinstallez le package ifupdown:
# apt-get update
# apt-get install ifupdown
II. Configurez votre fichier / etc/network/interfaces avec des strophes de configuration telles que:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
allow-hotplug enp0s3
auto enp0s3
iface enp0s3 inet static
address 192.168.1.133
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
# Only relevant if you make use of RESOLVCONF(8)
# or similar...
dns-nameservers 1.1.1.1 1.0.0.1
III. Rendre la configuration effective (aucun redémarrage nécessaire):
# ifdown --force enp0s3 lo && ifup -a
# systemctl unmask networking
# systemctl enable networking
# systemctl restart networking
IV. Désactiver et supprimer les services indésirables:
# systemctl stop systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl disable systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl mask systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# apt-get --assume-yes purge nplan netplan.io
Ensuite, vous avez terminé.
Remarque: Vous DEVEZ, bien sûr, adaptez les valeurs en fonction de votre système (réseau, nom de l'interface ...).
V. DNS Resolver
Ubuntu Bionic Beaver (18.04) utilisant le résolveur de stub DNS fourni par SYSTEMD-RESOLVED.SERVICE (8), vous DEVRIEZ ajoutez également le DNS à contacter dans le fichier/etc/systemd/fichier resol.conf. Par exemple:
....
DNS=1.1.1.1 1.0.0.1
....
puis redémarrez le service résolu par systemd une fois terminé:
# systemctl restart systemd-resolved
Comme indiqué ci-dessus, les entrées DNS du fichier INTERFACES ifupdown (5) ne sont pertinentes que si vous utilisez RESOLVCONF (8) ou similaire.
Netplan et yaml sont, au mieux, fragiles dans un environnement de serveur uniquement (les erreurs d’indentation vous coûteront cher). Les interfaces étaient suffisamment pardonnantes pour rendre la gestion des paramètres réseau sur un serveur assez facile.
Netplan introduit de nouvelles couches. Mais le vrai problème, c’est que U18 se casse jusqu’au sommet et ne termine pas le travail avec NetPlan. Si vous retournez dans/etc/network/interfaces en réinstallant ifupdown, la gestion du DNS ne fonctionne plus dans le fichier d'interface. Toutes les entrées de serveurs de noms DNS sont ignorées. Au lieu de cela, le DNS est défini dans /etc/resolv.conf. Mais vous ne pouvez pas éditer ce fichier car il est ré-écrit à chaque démarrage de la machine. WTF? Netplan a été conçu pour être géré par une interface utilisateur graphique. Ainsi, ceux d'entre nous qui sommes dans le camp du serveur uniquement ont un système fragile sur lequel nous devons marcher. Pas bon Ubuntu!
Pourquoi ne pas nous donner le moyen de rediriger les paramètres de/etc/network/interfaces vers netplan au démarrage pour nous aider à terminer netplan?
L’équipe Netplan a posté une réponse officielle sur leur FAQ here :
Comment revenir à ifupdown
...
Sur un système en cours d'exécution, netplan peut être supprimé en installant ifupdown et en configurant manuellement/etc/network/interfaces comme les utilisateurs l'ont fait auparavant.
Lors de l'installation, un utilisateur peut choisir d'utiliser ifupdown en préconfigurant netcfg/do_not_use_netplan = true. Pour ce faire, vous devez ajouter la ligne de préconfiguration à la ligne de commande lors du démarrage du support d’installation (par exemple, dans le menu de démarrage du support d’installation, appuyez sur F6, tapez "e" et ajoutez-le à la ligne de commande).
Voir la réponse de Nuxwin pour des instructions plus complètes.
Pourquoi ne pas simplement configurer avec netplan?
Comme il est configuré dans 18.04-Desktop, il s’agit d’une ligne unique qui transfère le contrôle à toutes les interfaces de NetworkManager.
Bien que cela convienne probablement à 95% des utilisateurs, rappelez-vous que NetworkManager n'est exécuté qu'une fois que vous êtes connecté à une session.
Si vous souhaitez que votre machine agisse en tant que serveur/poste de travail, par exemple, commencez à servir des fichiers sur des machines locales, agissez en tant que serveur VNP, etc. ou toute autre chose "fantaisiste" avant que quiconque ne soit jamais connecté, simplement sur, vous aurez des problèmes avec la façon dont il est configuré dans 18.04-Desktop standard.
Bien entendu, l’alternative serait d’utiliser la configuration serveur-Netplan, qui, pour autant que j’ai lu (non vérifié par moi-même), cède le contrôle à systemd-networkd. Dans ce cas, vous feriez mieux de savoir comment systemd fait les choses en remplacement de l'ancien System V init.
Si vous choisissez ce chemin, vous devez toujours modifier le netplan yaml, car sur une version de bureau, le contrôle est donné à NetworkManager.
La clé est de savoir que cloud.init
est le programme de contrôle réel.
Cela étant dit, la ligne dans le fichier de configuration netplan
"optional: true" est obligatoire.
Sachant cela facilitait les choses.
Je viens de retirer 01-network-manager-all.yaml
et de le copier dans /root/save/
. Ensuite, mettez une bonne configuration connue à la place, 50-cloud-init.yaml
: son contenu est le suivant:
network:
version: 2
renderer: networkd
ethernets:
eports:
match:
name: enp*
optional: true
bonds:
bond0:
interfaces: [eports]
addresses: [192.168.2.5/24]
gateway4: 192.168.2.1
nameservers:
addresses: [127.0.0.1, 8.8.4.4]
parameters:
mode: 0
mii-monitor-interval: 100
Ensuite, redémarrez et cela devrait fonctionner correctement.
La bonne configuration connue vient de Configurez un réseau 802.3ad collé en utilisant netplan sur Ubuntu 18.04 .
Selon cette réponse, la solution consiste à supprimer tous les fichiers .yaml opérationnels: buntu 17.10 disable netplan
Je n’enlèverais rien sans sauvegarder. Nous pouvons le faire facilement en déplaçant simplement les fichiers. D'abord, localisez les fichiers:
Sudo updatedb
locate netplan | grep yaml
Sur mon système 18.04, il semble que le seul fichier opérationnel soit /etc/netplan/01-network-manager-all.yaml. Passons le:
mkdir ~/netplan
Sudo mv /etc/netplan/01-network-manager-all.yaml /home/user/netplan
... où utilisateur est votre nom d'utilisateur.
Maintenant, vérifiez que le fichier est vraiment parti:
ls /etc/netplan
Maintenant, faites vos ajouts à/etc/network/interfaces selon vos besoins.
Redémarrez.
Toute amélioration?
Note de bas de page: Le processus exact pour ce faire est difficile à trouver. Nous devrons peut-être affiner un peu au fur et à mesure.