Ubuntu 18.04: revenez dans / etc / network / interfaces

44

Commençant vers Ubuntu 18.04, les développeurs Ubuntu ont arrêté d'utiliser la méthode classique /etc/init.d/networkinget la /etc/network/interfacesméthode de configuration du réseau pour basculer sur un élément appelé netplan. Cela a mis beaucoup de gens en colère et a été largement considéré comme une mauvaise décision. Est-il possible de supprimer netplanet d'utiliser la /etc/network/interfacesméthode appropriée pour configurer le réseau?

Jdgregson
la source
2
Pourquoi ne pas simplement configurer avec netplan? Dans la plupart des situations, c'est assez simple.
chili555
3
@ chili555 Il se peut que je doive simplement accepter le changement et apprendre quelque chose de nouveau. J'aimerais juste savoir s'il est trivial de revenir à la façon dont il devrait être. Tout comme systemd, je comprends que le changement perturbateur peut parfois être bénéfique et être adopté. Cependant, ce n'est certainement pas un de ces moments où le changement était nécessaire ou bénéfique.
jdgregson
1
Ce n'est pas anodin et pas facilement réversible en cas d'erreur. Si vous souhaitez vivre dans des conditions dangereuses, je me ferai un plaisir de vous proposer une réponse. D'autre part, nous pouvons configurer netplan en quelques minutes. Lequel préfères-tu? PS- Je ne prétends pas comprendre parfaitement comment netplan, à l'exclusion de /etc/network/interfaces, s'inscrit dans la vision globale de systemd. Tout ce que je peux faire, c'est croire que ceux qui ont introduit le changement savent pourquoi il convient mieux.
chili555
1
Ou, juste configurer correctement netplan et être fait.
chili555
1
@ chili555 Netplan ne prend pas en charge les interfaces réseau virtuelles. Voir ici: askubuntu.com/questions/990825/virtual-interface-in-netplan
user3751385 le

Réponses:

43

La procédure suivante fonctionne pour Ubuntu 18.04 (Bionic Beaver)

I. Réinstallez le paquet 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 entendu adapter les valeurs en fonction de votre système (réseau, nom de l'interface, etc.).

V. résolveur DNS

Parce que Ubuntu Bionic Beaver (18.04) utilise le résolveur de stub DNS fourni par SYSTEMD-RESOLVED.SERVICE (8), vous DEVEZ également ajouter le DNS à contacter dans le fichier /etc/systemd/resolved.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.

Nuxwin
la source
9
Eh bien, f *** eux. Juste apt-get installquand vous n'avez aucune configuration réseau. Quelle idée brillante, Canonical.
Velkan
1
@Velkan Vous pouvez toujours pré-configurer votre réseau avec netplan, puis revenir à ifupdown ultérieurement;) Mais j'ai accepté avec vous. En quelque sorte canonique, prendre de mauvaises décisions. Par exemple, ils cassent les logiciels qui s'appuient sur ifupdown pour la configuration du réseau (pas de fournisseur pour netplan). C’est le cas de notre logiciel de panneau de contrôle (série stable) où nous ne voulons pas ajouter de nouveau fournisseur de configuration réseau ...
Nuxwin
3
@StephenBoston Je suis totalement d'accord avec toi. Cependant, même si Canonical essayait d'aller de l'avant en introduisant une nouvelle technologie, il pourrait le faire de manière moins invasive. Je veux dire, le choix devrait être laissé à l'utilisateur final. Pour les postes de travail, le passage d’Iupupdown à Netplan n’est certes pas une mince affaire, mais s’il s’agit de serveurs Ubuntu, c’est une autre histoire, car la plupart des logiciels stables ne fournissent pas nécessairement des adaptateurs ... C’est la même chose pour systemd. Je dois m'occuper de Debian et d'Ubuntu tous les jours. Le problème avec Ubuntu est qu’ils ne se soucient guère de la compatibilité ascendante.
Nuxwin
1
Correction mineure: # systemctl unmak networking-># systemctl unmask networking
Santosh
1
De plus, si vous utilisez dns-domainet dns-searchdans le fichier d'interface, vous devez configurer le Domainsparamètre dans resol.conf, je pense? Quoi qu'il en soit, le travail formidable que
j'ai accompli
10

L’équipe Netplan a posté une réponse officielle à sa FAQ ici :

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 auparavant.

Lors de l'installation, un utilisateur peut choisir d'utiliser ifupdown en préconfigurant netcfg / do_not_use_netplan = true. Pour ce faire, ajoutez 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.

Jdgregson
la source
9

Netplan et yaml sont, au mieux, fragiles dans un environnement exclusivement serveur (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 qu'il nous faut parcourir à tout jamais. Pas bon Ubuntu!
pourquoi ne pas nous donner un moyen de rediriger les paramètres de / etc / network / interfaces dans netplan au démarrage pour nous aider pendant que vous avez terminé netplan?

Dan Desjardins
la source
1
Comment cela répond-il à la question?
Pierre.Vriens
@Dan Desjardins Voir la réponse acceptée concernant le problème de résolution DNS. En résumé, les entrées DNS que vous avez entrées dans le fichier INTERFACES ifupdown (5) ne sont pertinentes que lorsque vous utilisez resolvconf (8) ou similaire. Pour le résolveur de stub DNS fourni par SYSTEMD-RESOLVED.SERVICE (8, vous devez ajouter votre DNS dans le fichier /etc/systemd/resolved.conf. Cette opération les rendra persistantes. Une autre solution consiste à désactiver le paramètre SYSTEMD-RESOLVED. SERVICE (8) service et installation / configuration resolvconf (8). Dans l'espoir d'être suffisamment clair.
Nuxwin
2

Pourquoi ne pas simplement configurer avec netplan?

Comme il est configuré dans 18.04-Desktop, il s’agit d’une ligne unique qui cède 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. 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 cette voie, vous devez toujours modifier le netplan yaml, car sur une version de bureau, le contrôle est donné à NetworkManager.

Zakhar
la source
3
Il existe au moins une raison: Netplan ne prend pas en charge openvswitch.
Kamilion
5
netplan ne prend pas en charge les alias IP (style eth0: 0). Je ne peux pas croire comment une telle chose pourrait trouver son chemin dans le serveur Ubuntu!
Hamid Fadishei
Parce que mes netplanrépertoires sont vides!
dsgdfg le
Le service NetworkManager démarre assez tôt et ne nécessite pas de session ni d'utilisateur connecté.
thaller
1

La clé est de savoir qu’il cloud.inits’agit du programme de contrôle réel.
Ceci étant dit, la ligne dans le netplanfichier de configuration "optional: true" est obligatoire.
Sachant que c'était facile.

Je viens de l'enlever 01-network-manager-all.yamlet de le copier /root/save/. Ensuite, mettez une bonne configuration connue en place à la place 50-cloud-init.yaml:

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 le réseau 802.3ad lié utilisant netplan sur Ubuntu 18.04 .

pksings
la source
1
La question ici est de savoir comment revenir à ifupdown;) À l'avenir, vous devriez essayer de répondre aux questions sans les polluer, même s'il n'est pas toujours facile de vous en tenir au sujet initial;)
Nuxwin
0

Selon cette réponse, la solution consiste à supprimer tous les fichiers .yaml opérationnels: Ubuntu 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. Déplaçons 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émarrer.

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.

chili555
la source
Je vais devoir essayer et voir comment ça se passe. La seule autre question serait de savoir comment appliquer les modifications sans redémarrer. Dans le passé , vous pouvez utiliser ifup/ ifdown, /etc/init.d/networking restart, service networking restartet les méthodes systemd, comme systemctl restart networking, systemctl restart Network-Manager.serviceetc, mais aucun d' entre eux était possible pour moi après l' installation d' Ubuntu 18.04.
jdgregson
Quel est le résultat de: sudo ip link set eth0 downsuivi de: sudo ifup -v eth0Bien sûr, remplacez votre interface par la mythique eth0.
chili555
ifupdownn'est pas installé par défaut, donc lorsque vous l'appelez, ifupil vous indique simplement comment l'installer. Cependant, sudo ip link set eth0 downsuivi de sudo ip link set eth0 upl'activation et de la désactivation de l'interface.
Jdgregson
Impressionnant! Donc, vous êtes résolu et tous ensemble?
chili555
Attention, tous les fichiers * .yaml ne sont pas liés à netplan. Ne supprimez donc que ceux des répertoires liés à netplan!
JANC