web-dev-qa-db-fra.com

Ubuntu 18.04: revenez dans / etc / network / interfaces

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é netplanNAME_ . Cela a mis beaucoup de gens en colère et a été largement considéré comme un mauvais geste. Est-il possible de supprimer netplanet d'utiliser la bonne méthode /etc/network/interfaces pour configurer le réseau?

32
jdgregson

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.

35
Nuxwin

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?

5
Dan Desjardins

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.

3
jdgregson

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.

1
Zakhar

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 .

1
pksings

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.

0
chili555