Ubuntu 18.04: cambia de nuevo a / etc / network / interfaces

44

Comenzando en algún momento alrededor de Ubuntu 18.04, los desarrolladores de Ubuntu dejaron de usar el método clásico /etc/init.d/networkingy /etc/network/interfacesde configuración de la red y cambiaron a algo llamado netplan. Esto ha enojado a mucha gente y ha sido ampliamente considerado como un mal movimiento. ¿Es posible eliminar netplany usar el /etc/network/interfacesmétodo correcto para configurar la red?

jdgregson
fuente
2
¿Por qué no solo configurar con netplan? En la mayoría de las situaciones, es bastante sencillo.
chili555
3
@ chili555 Puede ser que solo tenga que aceptar el cambio y aprender algo nuevo. Solo me gustaría saber si es trivial volver a la forma en que debería ser. Al igual que systemd, entiendo que el cambio disruptivo a veces puede ser beneficioso y ser aceptado. Sin embargo, este ciertamente no es uno de esos momentos en que el cambio era necesario o beneficioso.
jdgregson
1
No es trivial y no es fácilmente reversible en caso de error. Si desea vivir peligrosamente, con gusto le propondré una respuesta. Por otro lado, podemos configurar netplan en un par de minutos. ¿Cual prefieres? PD: no pretendo entender completamente cómo netplan, excluyendo /etc/network/interfaces, se adapta a la imagen más grande del sistema. Todo lo que puedo hacer es confiar en que quienes introdujeron el cambio sí saben por qué encaja mejor.
chili555
1
O, simplemente configure correctamente netplan y listo.
chili555
1
@ chili555 Netplan no admite interfaces de red virtuales. Ver aquí: askubuntu.com/questions/990825/virtual-interface-in-netplan
user3751385

Respuestas:

43

El siguiente procedimiento funciona para Ubuntu 18.04 (Bionic Beaver)

I. Vuelva a instalar el paquete ifupdown :

# apt-get update
# apt-get install ifupdown

II Configure su archivo / etc / network / interfaces con secciones de configuración como:

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. Haga que la configuración sea efectiva (no es necesario reiniciar):

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

IV. Deshabilitar y eliminar los servicios no deseados:

# 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

Entonces, ya terminaste.

Nota: Usted DEBE , por supuesto, adaptar los valores de acuerdo a su sistema (red, nombre de la interfaz ...).

V. DNS Resolver

Debido a que Ubuntu Bionic Beaver (18.04) hace uso de la resolución de código auxiliar DNS proporcionada por SYSTEMD-RESOLVED.SERVICE (8), también DEBE agregar el DNS para contactar en el archivo /etc/systemd/resolved.conf. Por ejemplo:

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

y luego reinicie el servicio systemd resuelto una vez hecho:

# systemctl restart systemd-resolved

Las entradas DNS en el archivo ifupdown INTERFACES (5), como se muestra arriba, solo son relevantes si utiliza RESOLVCONF (8) o similar.

Nuxwin
fuente
99
Bueno, jódelos. Justo apt-get installcuando no tienes configuración de red. Qué idea tan brillante, canónica.
Velkan
1
@Velkan Siempre puede preconfigurar su red con netplan y luego volver a ifupdown más adelante;) Pero estuve de acuerdo con usted. De alguna manera canónica tomar malas decisiones. Por ejemplo, rompen los softwares que dependen de ifupdown para la configuración de red (no hay proveedor para netplan). Este es el caso de nuestro software de panel de control (serie estable) donde no queremos agregar un nuevo proveedor de configuración de red ...
Nuxwin
3
@StephenBoston Estoy totalmente de acuerdo contigo. Sin embargo, incluso si Canonical intenta avanzar introduciendo nueva tecnología, podría hacerlo de una manera menos invasiva. Quiero decir, la elección debe dejarse al usuario final. Para las estaciones de trabajo, el cambio de ifupdown a netplan seguramente no es un gran problema, pero cuando tiene que lidiar con servidores Ubuntu, esa es otra historia porque la mayoría de los softwares estables no necesariamente necesitan adaptadores ... Esa ha sido la misma historia para systemd. Tengo que lidiar con Debian y Ubuntu todos los días. El problema con Ubuntu es que no les importa mucho la compatibilidad con versiones anteriores.
Nuxwin
1
Corrección menor: # systemctl unmak networking-># systemctl unmask networking
Santosh
1
Además, si usa dns-domainy dns-searchen el archivo de interfaces, debería configurar el Domainsparámetro en resolve.conf, creo. De todos modos, el gran trabajo de poner todo esto aquí, probablemente me ahorró mucho tiempo :)
OttoEisen
10

El equipo de Netplan ha publicado una respuesta oficial en sus preguntas frecuentes aquí :

Cómo volver a ifupdown

...

En un sistema en ejecución, netplan puede eliminarse instalando ifupdown y configurando / etc / network / interfaces manualmente como lo han hecho los usuarios antes.

En el momento de la instalación, un usuario puede optar por usar ifupdown preseleccionando netcfg / do_not_use_netplan = true. Esto se hace agregando la línea preestablecida a la línea de comando al iniciar los medios de instalación (es decir, en el menú de inicio de medios de instalación, presione F6, escriba 'e' y agregue a la línea de comandos).

Consulte la respuesta de Nuxwin para obtener instrucciones más completas.

jdgregson
fuente
9

Netplan y yaml son, en el mejor de los casos, frágiles en el entorno solo de servidor (los errores de sangría le costarán). Las interfaces perdonaban lo suficiente como para facilitar la administración de la configuración de red en un servidor.
Netplan presenta nuevas capas. Pero el verdadero problema es que U18 rompe ifupdown y no termina el trabajo con NetPlan. Si regresa a / etc / network / interfaces reinstalando ifupdown, la administración del DNS ya no funciona en el archivo de interfaces. Cualquier entrada dns-nameservers se ignora. En cambio, el dns se establece en /etc/resolv.conf. Pero no puede editar ese archivo porque se reescribe cada vez que se inicia la máquina. WTF? Netplan fue diseñado para ser administrado por una GUI, por lo que aquellos de nosotros en el campamento solo para servidores se quedan con un sistema frágil que tenemos que andar de puntillas. ¡No es bueno Ubuntu!
¿por qué no nos da una forma de redirigir la configuración en / etc / network / interfaces a netplan en el arranque para ayudarnos mientras finaliza netplan?

Dan Desjardins
fuente
1
¿Cómo responde esto a la pregunta?
Pierre.Vriens
@Dan Desjardins Vea la respuesta aceptada con respecto al problema del solucionador de DNS. Básicamente, las entradas de DNS que coloca en el archivo de INTERFACES (5) de ifupdown solo son relevantes cuando utiliza resolvconf (8) o similar. Para la resolución de código auxiliar DNS proporcionada por SYSTEMD-RESOLVED.SERVICE (8, debe agregar su DNS al archivo /etc/systemd/resolved.conf. Hacer esto los hará persistentes. Otra solución es deshabilitar SYSTEMD-RESOLVED. SERVICIO (8) servicio e instalación / configuración resolvconf (8) .Estoy lo suficientemente claro.
Nuxwin
2

¿Por qué no simplemente configurar con netplan?

Bueno, como está configurado en 18.04-Desktop, es una línea única que transfiere el control a todas las interfaces a NetworkManager.

Si bien eso probablemente sea adecuado para el 95% de los usuarios, recuerde que NetworkManager solo se ejecuta una vez que ha iniciado sesión en una sesión.

Si desea que su máquina actúe como servidor / escritorio, por ejemplo, comience a servir archivos a máquinas locales, actúe como servidor VNP, etc. o cualquier cosa "elegante" antes de que alguien inicie sesión, simplemente por el simple hecho de que es activado, tendrá problemas con la configuración en el escritorio 18.04 estándar.

Por supuesto, la alternativa sería usar la configuración de servidor-Netplan, que, hasta donde he leído (no comprobada por mí mismo), transfiere el control a systemd-networkd. En este caso, será mejor que aprenda cómo systemd hace las cosas como un reemplazo del antiguo sistema V init.

Si sigue este camino, aún tiene que hacer cambios en el plan de red yaml, ya que en una versión de escritorio el control se otorga a NetworkManager.

Zakhar
fuente
3
Existe al menos un motivo: Netplan no admite openvswitch.
Kamilion
55
netplan no admite alias de IP (estilo eth0: 0). ¡No puedo creer cómo tal cosa podría llegar al servidor Ubuntu!
Hamid Fadishei
¡Porque mis netplandirectorios están vacíos!
dsgdfg
El servicio NetworkManager comienza bastante temprano y no requiere una sesión o un usuario conectado.
thaller
1

La clave es saber que cloud.inites el programa de control real.
Dicho esto, la línea en el netplanarchivo de configuración "opcional: verdadero" es obligatoria.
Saber eso lo hizo fácil.

Simplemente lo eliminé 01-network-manager-all.yamly lo copié /root/save/. Luego coloque una buena configuración conocida en su lugar, en lugar de esto 50-cloud-init.yaml: su contenido sigue:

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

Luego reinicie y debería estar funcionando bien.

La buena configuración conocida vino de Configurar la red 802.3ad unida usando netplan en Ubuntu 18.04 .

pksings
fuente
1
La pregunta aquí es cómo volver a ifupdown;) En el futuro, debe intentar responder las preguntas sin contaminarlas, aunque no siempre es fácil seguir con el tema inicial;)
Nuxwin
0

Según esta respuesta, la solución es eliminar todos los archivos .yaml operativos: Ubuntu 17.10 deshabilita netplan

No quitaría nada sin hacer una copia de seguridad. Podemos hacerlo fácilmente simplemente moviendo los archivos a un lado. Primero, ubique los archivos:

sudo updatedb
locate netplan | grep yaml

En mi sistema 18.04, parece que el único archivo operativo es /etc/netplan/01-network-manager-all.yaml. Vamos a moverlo:

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

... donde usuario es su nombre de usuario.

Ahora verifique para asegurarse de que el archivo realmente se haya ido:

ls /etc/netplan

Ahora haga sus adiciones a / etc / network / interfaces según sea necesario.

Reiniciar.

¿Cualquier mejora?

Nota al pie: El proceso exacto para hacer esto es difícil de encontrar. Es posible que necesitemos refinar un poco a medida que avanzamos.

chili555
fuente
Tendré que intentarlo y ver cómo va. La única otra pregunta sería cómo aplicar los cambios sin reiniciar. En el pasado se podía utilizar ifup/ ifdown, /etc/init.d/networking restart, service networking restarty los métodos systemd, como systemctl restart networking, systemctl restart Network-Manager.serviceetc, pero ninguno de ellos me fuera posible después de instalar Ubuntu 18.04.
jdgregson
Cuál es el resultado de: sudo ip link set eth0 downseguido de: sudo ifup -v eth0Por supuesto, sustituya su interfaz por el mítico eth0.
chili555
ifupdownno está instalado de manera predeterminada, por lo que cuando lo llama ifupsolo le dice cómo instalarlo. Sin embargo, sudo ip link set eth0 downseguido de sudo ip link set eth0 upapaga y vuelve a encender la interfaz.
jdgregson
¡Increíble! Entonces, ¿estás resuelto y listo?
chili555
Cuidado, no todos los archivos * .yaml están relacionados con netplan, ¡así que solo elimínelos de los directorios relacionados con netplan!
JanC