Ubuntu 18.04: tornare a / etc / network / interfaces


44

A partire da Ubuntu 18.04, gli sviluppatori Ubuntu hanno smesso di usare il classico /etc/init.d/networkinge il /etc/network/interfacesmetodo di configurazione della rete e sono passati a qualcosa chiamato netplan. Questo ha fatto arrabbiare molte persone ed è stato ampiamente considerato una mossa sbagliata. È possibile rimuovere netplane utilizzare il /etc/network/interfacesmetodo corretto per configurare la rete?


2
Perché non limitarsi a configurarlo con netplan? Nella maggior parte delle situazioni, è piuttosto semplice.
chili555

3
@ chili555 Potrebbe essere che devo solo accettare il cambiamento e imparare qualcosa di nuovo. Vorrei solo sapere se è banale tornare al modo in cui dovrebbe essere. Proprio come systemd, capisco che il cambiamento dirompente a volte può essere utile ed essere abbracciato. Tuttavia, questa non è certamente una di quelle volte in cui il cambiamento era necessario o utile.
jdgregson,

1
Non è banale e non è facilmente reversibile in caso di errore. Se vuoi vivere pericolosamente, sarò felice di proporti una risposta. D'altra parte, possiamo configurare netplan in un paio di minuti. Quale preferisci? PS: Non pretendo di comprendere appieno come netplan, ad esclusione di /etc/network/interfaces, si adatti all'immagine di sistema più ampia. Tutto quello che posso fare è fidarmi del fatto che coloro che hanno introdotto il cambiamento sanno perché si adatta meglio.
chili555

1
Oppure, basta configurare correttamente netplan ed essere fatto.
chili555

1
@ chili555 Netplan non supporta le interfacce di rete virtuale. Vedi qui: askubuntu.com/questions/990825/virtual-interface-in-netplan
user3751385

Risposte:


43

La seguente procedura funziona per Ubuntu 18.04 (Bionic Beaver)

I. Reinstallare il pacchetto ifupdown :

# apt-get update
# apt-get install ifupdown

II. Configura il tuo file / etc / network / interfaces con stanze di configurazione come:

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. Rendi effettiva la configurazione (non è necessario il riavvio):

# ifdown --force enp0s3 lo && ifup -a
# systemctl unmask networking
# systemctl enable networking
# systemctl restart networking

IV. Disabilita e rimuovi i servizi indesiderati:

# 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

Quindi hai finito.

Nota: Si deve , naturalmente, adattare i valori in base al vostro sistema (rete, nome dell'interfaccia ...).

V. DNS Resolver

Poiché Ubuntu Bionic Beaver (18.04) fa uso del risolutore di stub DNS come fornito da SYSTEMD-RESOLVED.SERVICE (8), DOVREBBE anche aggiungere il DNS da contattare nel file /etc/systemd/resolved.conf. Per esempio:

....
DNS=1.1.1.1 1.0.0.1
....

e quindi riavviare il servizio risolto da systemd una volta fatto:

# systemctl restart systemd-resolved

Le voci DNS nel file ifupdown INTERFACES (5), come mostrato sopra, sono rilevanti solo se si utilizza RESOLVCONF (8) o simile.


9
Bene, fottili. Proprio apt-get installquando non hai alcuna configurazione di rete. Che idea geniale, canonica.
Velkan,

1
@Velkan Puoi sempre preconfigurare la tua rete con netplan e poi tornare a ifupdown in seguito;) Ma sono d'accordo con te. In qualche modo canonico prendere decisioni sbagliate. Ad esempio, interrompono i software che si basano su ifupdown per la configurazione di rete (nessun provider per netplan). Questo è il caso del nostro software del pannello di controllo (serie stabile) in cui non vogliamo aggiungere un nuovo provider di configurazione di rete ...
Nuxwin

3
@StephenBoston Sono totalmente d'accordo con te. Tuttavia, anche se Canonical provasse ad andare avanti introducendo una nuova tecnologia, potrebbe farlo in modo meno invasivo. Voglio dire, la scelta dovrebbe essere lasciata all'utente finale. Per le workstation, il passaggio da ifupdown a netplan non è sicuramente un grosso problema, ma quando devi avere a che fare con i server Ubuntu, questa è un'altra storia perché i software più stabili non forniscono necessariamente adattatori ... Questa è stata la stessa storia per systemd. Devo occuparmi di tutti i giorni sia Debian che Ubuntu. Il problema con Ubuntu è che a loro non importa molto della retrocompatibilità.
Nuxwin,

1
Correzione minore: # systemctl unmak networking-># systemctl unmask networking
Santosh

1
Inoltre, se usi dns-domaine dns-searchnel file interfacce, dovresti configurare il Domainsparametro in resolved.conf, penso? Comunque, un ottimo lavoro nel mettere tutto qui, probabilmente mi ha fatto risparmiare un sacco di tempo :)
OttoEisen

10

Il team di Netplan ha pubblicato una risposta ufficiale alle sue FAQ qui :

Come tornare a ifupdown

...

Su un sistema in esecuzione, netplan può essere rimosso installando ifupdown e configurando / etc / network / interfacce manualmente come hanno già fatto gli utenti.

Al momento dell'installazione, un utente può scegliere di utilizzare ifupdown preconfigurando netcfg / do_not_use_netplan = true. Questo viene fatto aggiungendo la riga preconfigurata alla riga di comando quando si avvia il supporto di installazione (cioè nel menu di avvio del supporto di installazione, premere F6, digitare 'e' e aggiungere alla riga di comando).

Vedi la risposta di Nuxwin per istruzioni più complete.


9

Netplan e yaml sono, nella migliore delle ipotesi, fragili nell'ambiente esclusivamente server (gli errori di rientro ti costeranno). Le interfacce perdonavano abbastanza da rendere abbastanza semplice la gestione delle impostazioni di rete su un server.
Netplan introduce nuovi livelli. Ma il vero problema è che U18 interrompe ifupdown e non termina il lavoro con NetPlan. Se ritorni su / etc / network / interfaces reinstallando ifupdown, la gestione del DNS non funziona più nel file delle interfacce. Le voci dns-nameservers vengono ignorate. Invece il DNS è impostato in /etc/resolv.conf. Ma non puoi modificare quel file perché viene riscritto ogni volta che la macchina viene avviata. WTF? Netplan è stato progettato per essere gestito da una GUI in modo tale che quelli di noi nel campo solo server siano lasciati con un sistema fragile che dobbiamo camminare in punta di piedi. Ubuntu non buona!
perché non darci un modo per reindirizzare le impostazioni in / etc / network / interfaces in netplan all'avvio per aiutarci mentre finisci netplan?


1
come risponde alla domanda?
Pierre.Vriens,

@Dan Desjardins Vedi la risposta accettata riguardo al problema del resolver DNS. In sostanza, le voci DNS che inserisci nel file ifupdown INTERFACES (5) sono rilevanti solo quando usi resolvconf (8) o simili. Per il risolutore di stub DNS come fornito da SYSTEMD-RESOLVED.SERVICE (8, è necessario aggiungere il DNS nel file /etc/systemd/resolved.conf. In questo modo si renderanno persistenti. Un'altra soluzione è disabilitare SYSTEMD-RESOLVED. SERVICE (8) service e install / setup resolvconf (8) Nella speranza di essere abbastanza chiaro
Nuxwin,

2

Perché non limitarsi a configurarlo con netplan?

Bene, poiché è configurato in 18.04-Desktop, è una singola riga che consegna il controllo a tutte le interfacce di NetworkManager.

Sebbene ciò sia probabilmente adatto al 95% degli utenti, ricorda che NetworkManager viene eseguito solo dopo aver effettuato l'accesso a una sessione.

Se vuoi che la tua macchina funga da server / desktop, ad esempio inizia a pubblicare file su macchine locali, fungendo da server VNP, ecc ... o qualsiasi cosa "stravagante" prima che qualcuno abbia mai effettuato l'accesso, solo per il semplice fatto che è acceso, avrai problemi con come è configurato in 18.04-Desktop standard.

Naturalmente, l'alternativa sarebbe usare la configurazione server-Netplan, che, per quanto ho letto (non controllato da me stesso), passa invece il controllo a systemd-networkd. In questo caso è meglio sapere come systemd fa le cose in sostituzione del vecchio init System V.

Se dovessi seguire questo percorso, devi comunque apportare modifiche al netplan yaml, poiché su una versione desktop il controllo viene dato a NetworkManager.


3
Esiste almeno un motivo: Netplan non supporta openvswitch.
Kamilion,

5
netplan non supporta gli alias IP (stile eth0: 0). Non riesco a credere come una cosa simile possa trovare la sua strada nel server Ubuntu!
Hamid Fadishei,

Perché le mie netplandirectory sono vuote!
dsgdfg

Il servizio NetworkManager si avvia abbastanza presto e non richiede una sessione o un utente connesso.
Thaller

1

La chiave sta nel sapere che cloud.initè il vero programma di controllo.
Detto questo, la riga nel netplanfile di configurazione "opzionale: vero" è obbligatoria.
Sapendo che è stato facile.

L'ho appena rimosso 01-network-manager-all.yamle copiato /root/save/. Quindi metti in atto una buona configurazione nota invece di essa 50-cloud-init.yaml: segue il suo contenuto:

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

Quindi riavviare e dovrebbe funzionare correttamente.

La buona configurazione conosciuta proveniva da Configura la rete 802.3ad legata usando netplan su Ubuntu 18.04 .


1
La domanda qui è come tornare all'ifupdown;) In futuro, dovresti provare a rispondere alle domande senza inquinarle, anche se non è sempre facile attenersi all'argomento iniziale;)
Nuxwin

0

Secondo questa risposta, la soluzione è rimuovere tutti i file .yaml operativi: Ubuntu 17.10 disabilita netplan

Non rimuoverei nulla senza eseguire il backup. Possiamo farlo facilmente semplicemente spostando i file da parte. Innanzitutto, individua i file:

sudo updatedb
locate netplan | grep yaml

Sul mio sistema 18.04, sembra che l'unico file operativo sia /etc/netplan/01-network-manager-all.yaml. Spostiamolo:

mkdir ~/netplan
sudo mv /etc/netplan/01-network-manager-all.yaml  /home/user/netplan

... dove user è il tuo nome utente.

Ora controlla per assicurarti che il file sia veramente sparito:

ls /etc/netplan

Ora fai le tue aggiunte a / etc / network / interfaces come richiesto.

Reboot.

Qualche miglioramento?

Nota a piè di pagina: il processo esatto per farlo è difficile da trovare. Potremmo aver bisogno di affinare un po 'mentre procediamo.


Dovrò provarlo e vedere come va. L'unica altra domanda sarebbe come applicare le modifiche senza riavviare. In passato è possibile utilizzare ifup/ ifdown, /etc/init.d/networking restart, service networking restart, ei metodi systemd, come systemctl restart networking, systemctl restart Network-Manager.serviceecc, ma nessuno di questi fosse possibile per me, dopo l'installazione di Ubuntu 18.04.
jdgregson,

Qual è il risultato di: sudo ip link set eth0 downseguito da: sudo ifup -v eth0Naturalmente, sostituisci la tua interfaccia con il mitico eth0.
chili555

ifupdownnon è installato di default, quindi quando lo chiami ifupti dice solo come installarlo. Tuttavia, sudo ip link set eth0 downseguito da sudo ip link set eth0 upsi spegne e si riaccende l'interfaccia.
jdgregson,

Eccezionale! Quindi sei risolto e tutto pronto?
chili555

Attenzione, non tutti i file * .yaml sono correlati a netplan, quindi rimuovili solo nelle directory relative a netplan!
JanC
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.