GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Tutorial de configuración de red Netplan para principiantes

Netplan es una utilidad desarrollada por Canonical, la empresa detrás de Ubuntu. Proporciona una abstracción de la configuración de red sobre los dos sistemas "back-end" admitidos actualmente (o "procesador" en la terminología de Netplan):networkd y Administrador de red . Con Netplan, las interfaces de red tanto física como virtual se configuran a través de yaml archivos que se traducen a configuraciones compatibles con el backend seleccionado.

En Ubuntu 20.04, Netplan reemplaza el método tradicional de configurar interfaces de red usando /etc/network/interfaces expediente; su objetivo es hacer las cosas más fáciles y centralizadas (todavía se puede usar la forma antigua de configurar interfaces:consulte nuestro artículo sobre Cómo volver a cambiar la red a /etc/network/interfaces en Ubuntu 20.04 Focal Fossa Linux). En este artículo aprenderemos los principios básicos detrás de la utilidad y, solo como ejemplo, cómo podemos usarla para configurar una dirección IPv4 estática para una interfaz de red.

En este tutorial aprenderás :

  • La estructura básica de los archivos de configuración de yaml utilizados por Netplan
  • Cómo crear una regla simple para asignar una IP estática a una interfaz de red
  • Cómo aplicar configuraciones usando generar , intentar y aplicar subcomandos

Tutorial de configuración de red Netplan para principiantes

Requisitos de software y convenciones utilizadas

Archivos de configuración de Netplan

Hay tres ubicaciones en las que se pueden colocar los archivos de configuración de Netplan; en orden de prioridad son:

  1. /run/netplan
  2. /etc/netplan
  3. /lib/netplan

Descripción general del diseño de plan de red

Dentro de cada uno de estos directorios se crean configuraciones usando archivos con el .yaml extensión que se procesan en lexicographical orden, independientemente del directorio en el que se encuentren.

La prioridad del directorio tiene una función solo cuando existen archivos con el mismo nombre:en esos casos, solo se analiza el archivo contenido en el directorio con la prioridad más alta.

Si un booleano o escalar el parámetro está definido en más de un archivo de configuración, asumirá el valor definido en el último archivo que se analiza; si los valores son secuencias , en cambio, están concatenados.

Se supone que los usuarios deben colocar sus configuraciones dentro de /etc/netplan directorio; por defecto, el único archivo presente en un sistema Ubuntu 20.04 recién instalado es /etc/netplan/01-network-manager-all.yaml . En el siguiente apartado veremos las instrucciones que contiene, y cuál es su significado.

El archivo /etc/netplan/01-network-manage-all.yaml

El único archivo de configuración existente /etc/netplan/ El directorio en un sistema Ubuntu 20.04 recién instalado es 01-network-manage-all.yaml . Echemos un vistazo a su contenido:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

Como sugiere el comentario en el archivo, la configuración está destinada a configurar todas las interfaces de red en el sistema para que sean administradas por NetworkManager renderizador Podemos observar que las directivas están sangradas dentro del nodo principal, network . Dado que estamos tratando con archivos yaml, la sangría es crucial.

Otras dos palabras clave que podemos encontrar en el archivo son version y renderer :el primero especifica la versión de sintaxis en uso, el segundo el sistema backend (red frente a Administrador de red ).

En la siguiente sección de este tutorial, crearemos un ejemplo de configuración un poco más complejo y lo usaremos para asignar una dirección IPv4 estática a una interfaz de red.

Ejemplo de configuración:configuración de una dirección IPv4 estática

El archivo de configuración que vimos arriba es bastante básico; probemos algo un poco más complejo y veamos cómo podemos configurar una dirección IPv4 estática usando Netplan.

Lo primero que debemos hacer es crear un nuevo archivo de configuración, para ser analizado después del predeterminado:llamémoslo /etc/netplan/02-static-ip.yaml . Dentro del archivo, creamos una regla para que coincida con las interfaces de red que queremos configurar:podemos realizar la tarea usando match estrofa.

Dentro de la match sección, podemos seleccionar una serie de interfaces físicas en base al valor de las propiedades especificadas. Para que se aplique la configuración, todas las propiedades deben coincidir con la regla.

En el archivo de configuración escribimos:

# Set static ip address for enp1s0 interface
network:
    version: 2
    renderer: NetworkManager
    ethernets:
        id0:
            match:
                name: enp1s0
            dhcp4: false
            addresses:
                - 192.168.122.250/24
            nameservers:
                addresses:
                    - 192.168.122.1
            gateway4: 192.168.122.1

Echemos un vistazo más de cerca a las nuevas instrucciones que usamos en la configuración. Dentro de la network principal nodo, los dispositivos se pueden agrupar por su tipo:

  • ethernets
  • wifis
  • bridges

Dado que en nuestro ejemplo estamos tratando con un dispositivo ethernet, usamos ethernets estrofa. Dentro de la match estrofa, hicimos referencia a la interfaz por su name :enp1s0 . Las reglas de coincidencia también se pueden basar en macaddress y, solo cuando se usa networkd como renderizador, en driver que es el nombre del controlador del kernel de Linux utilizado para los dispositivos.

Para llegar a nuestra configuración deseada, usamos una serie de directivas. Como queremos asignar una dirección estática, deshabilitamos dhcp4 y usó las addresses palabra clave para asociar una dirección IPv4 a la interfaz. Se pueden especificar varias direcciones:se deben proporcionar junto con la máscara de subred.

También establecemos las direcciones de los nameservers en la estrofa del mismo nombre. Finalmente, establecemos la dirección IPv4 de la puerta de enlace que la interfaz debe usar con el gateway4 palabra clave.

Simplificando la configuración

La configuración que usamos en el ejemplo anterior se puede simplificar ligeramente. Para hacer referencia a la interfaz a la que queremos asignar la dirección estática, usamos match estrofa, sin embargo, podríamos haberla omitido. Dado que queremos que nuestra configuración se aplique solo a un dispositivo específico, podemos hacer referencia a él directamente usando su nombre predecible (enp1s0 ) como id :

network:
    version: 2
    renderer: NetworkManager
    ethernets:
        enp1s0:
            dhcp4: false
            addresses:
                - 192.168.122.250/24
            nameservers:
                addresses:
                    - 192.168.122.1
            gateway4: 192.168.122.1

Cuando el match se utiliza la estrofa, el id (id0 en el ejemplo anterior) es arbitrario y se usa para hacer referencia a los dispositivos configurados de otras secciones del archivo de configuración. Cuando el match se omite la estrofa, en su lugar, el id debe corresponder al nombre predecible del dispositivo. Cuando se trabaja con dispositivos virtuales como puentes o enlaces, el id no se usa para hacer referencia a una interfaz existente, pero representa el nombre que debe usarse cuando se crea la interfaz.

En este punto nuestra configuración está lista; todo lo que debemos hacer es guardarlo y probarlo.

Probar y aplicar una configuración de Netplan

En la sección anterior vimos cómo crear una configuración de Netplan simple para proporcionar una dirección IPv4 estática para una interfaz de red. Ahora toca probar la configuración, para ver si funciona correctamente. Para lograr nuestro objetivo podemos usar el netplan utilidad y el try subcomando.

El try subcomando del netplan La utilidad, como su nombre lo indica, se usa para probar una configuración y, opcionalmente, revertirla si el usuario no la confirma después de un cierto período de tiempo. El tiempo de espera predeterminado es de 120 segundos pero se puede cambiar usando --timeout opción.

Como puede ver en la salida de la ip address comando, la dirección IPv4 actual para enp1s0 la interfaz es 192.168.122.200 :

$ ip address|grep enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.122.200/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0

Apliquemos la configuración:

$ sudo netplan try

Una vez que ejecutamos el comando, aparece el siguiente mensaje en pantalla:

Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 120 seconds

Tenemos suficiente tiempo para saber si la dirección IP de la interfaz cambió:

$ ip address|grep enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.122.250/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0

Como podemos ver, la dirección IPv4 cambió como se esperaba. En este caso, sin embargo, después de que expiró el tiempo de espera, el comando no pudo revertir la configuración. Este es un problema conocido, informado también en la página de manual de la utilidad. En tales casos, para volver completamente al estado inicial, un reinicio debería ser suficiente.

Se pueden usar otros dos comandos:

  • netplan generate
  • netplan apply

El netplan generate El comando convierte la configuración de los archivos yaml en configuraciones adecuadas para el renderizador en uso, pero no las aplica. En la gran mayoría de los casos, no está destinado a ser llamado directamente:es invocado, por ejemplo, por netplan apply que además aplica los cambios sin un tiempo de espera de "reversión".

Conclusiones

En este tutorial nos acercamos a Netplan, una utilidad desarrollada por Canonical, que está activa por defecto en Ubuntu 20.04 Focal Fossa. El propósito de esta utilidad es abstraer configuraciones para interfaces de red utilizando archivos de configuración yaml.

Esas configuraciones luego se traducen en configuraciones para el representador especificado, como NetworkManager o networkd. En este tutorial vimos cómo escribir una regla simple para establecer una dirección IP estática para una interfaz de red, aprendimos algunos de los nodos que se pueden usar en los archivos de configuración y vimos cómo aplicar cambios a través de netplan try y netplan apply comandos Aquí apenas arañamos la superficie de lo que se puede lograr con Netplan. Si desea obtener más información al respecto, consulte el sitio web de Netplan y la página de manual de la utilidad.


Ubuntu
  1. Tutorial de Python SciPy:una guía para principiantes

  2. Tutorial de Jenkins:conceptos básicos para principiantes

  3. Tutorial Podman - Conceptos básicos para principiantes

  4. Tutorial de comando cd de Linux para principiantes (8 ejemplos)

  5. Tutorial de comando de fecha de Linux para principiantes (8 ejemplos)

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)

Tutorial de secuencias de comandos de Bash para principiantes

Tutorial de Bash Heredoc para principiantes

Cómo instalar Google Chrome en Ubuntu 20.04:Tutorial para principiantes

    Requisitos de software y convenciones de la línea de comandos de Linux
    Categoría Requisitos, convenciones o versión de software utilizada
    Sistema Ubuntu 20.04 (fosa focal)
    Software Netplan (instalado por defecto)
    Otro Permisos de root para modificar archivos de configuración
    Convenciones #:requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
    $:requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios