Tutoriales

Herramienta de configuración de red declarativa

El ecosistema de Linux proporciona varias formas de configurar la red, incluidos los demonios de administración de red populares y las herramientas de línea de comandos, como las utilidades GUI nmcli y nmtui.Esta guía presenta otra herramienta de configuración de red llamada Estado costa afuera

Estado costa afuera es un administrador de red declarativo para configurar redes en hosts Linux. Es una biblioteca que proporciona herramientas de línea de comandos para administrar la configuración de la red del host. Administra la red de host a través de una API declarativa hacia el norte. Al momento de escribir esta guía, gerente de Redes daemon es el único proveedor compatible Estado costa afuera.

En esta guía, veremos algunos ejemplos de uso Estado costa afuera herramienta.Para esta guía, usaremos fedora linux.

Enfoques imperativo vs declarativo

La administración de la red puede adoptar dos enfoques: Crítico y declarativo. dentro Crítico método, define explícitamente el estado de la red de la interfaz mediante la ejecución de un comando en el terminal. La cuestión es’cómo‘.

Por ejemplo, para apagar la red usando el método imperativo, ejecute el siguiente comando:

$ sudo ifconfig enp0s3 down

en la otra mano, declarativo método usando un YAML archivo para aplicar los cambios a la configuración.La mayoría de las herramientas de orquestación de DevOps, como Gobernador Use este método para implementar aplicaciones de pod YAML documento.

Este enfoque proporciona lo que comúnmente se conoce como infraestructura como código (CAI) en los círculos de DevOps. Esto mejora la automatización de la configuración de red en el host y proporciona una forma más rápida y confiable de realizar múltiples cambios en las interfaces de red con errores mínimos.

Ahora, tomemos un ángulo diferente y veamos cómo puedes usar Estado costa afuera Herramienta de configuración para configurar interfaces de red en Linux.

Paso 1: Instale la herramienta de configuración de red NMState

instalaremos ExpresarPrimero, verifique la disponibilidad del paquete sombrero de fieltro El repositorio es el siguiente:

$ sudo dnf search nmstate

Desde la salida, podemos ver que el administrador de red está disponible en el repositorio oficial.

Compruebe el paquete NMState

A continuación, instale nuevo estado como sigue.Esto aplica a sombrero de fieltro 31 y después.

$ sudo dnf install nmstate

Este comando instala Estado costa afuera API de Network Manager y otras dependencias de Python.

Instalar NMState en Fedora
Instalar NMState en Fedora

Una vez completada la instalación, verifique nanoestado El paquete se instala de la siguiente manera.

$ rpm -qi nmstate
Validar el paquete NMState
Validar el paquete NMState

Para Linux basado en RHEL, primero habilite el repositorio copr.

$ sudo dnf copr enable nmstate/nmstate-stable

luego instalar nuevo estado como sigue.

$ sudo dnf install nmstate

Ver instrucciones adicionales sobre cómo hacerlo Instalar NMState desde la fuente.

Puede comprobar la versión después de la instalación nuevo estado Instale de la siguiente manera.

$ nmstatectl version

1.0.2

Uso de la herramienta de configuración NMState en Linux

y nuevo estado Una vez instalado, profundicemos en cómo aprovechar al máximo la API de Network Manager.

Para ver la configuración de red actual de una interfaz de red, ejecute el siguiente comando.aquí está su configuración enp0s3 interfaz.

$ nmstatectl show enp0s3
mostrar la configuración de la interfaz de red
mostrar la configuración de la interfaz de red

La salida se divide en 4 partes diferentes:

  • resolver dns: Esta sección contiene la configuración del servidor de nombres para una interfaz específica.
  • reglas de enrutamiento: Esto especifica las reglas de enrutamiento.
  • ruta: Esto incluye rutas dinámicas y estáticas.
  • interfaz: esta sección especifica la configuración de ipv4 e ipv6.

Cambiar la configuración de red en Linux

puedes usarlo Estado costa afuera Una herramienta de configuración que configura un host en un estado deseado mediante modos interactivos o basados ​​en archivos.

  • interactivo: esto usará nmstatectl Editar Pedido. Este comando abre un editor de texto definido por la variable de entorno EDITOR. NMState aplica la nueva configuración inmediatamente después de guardar los cambios, a menos que se detecte un error de sintaxis.
  • basado en archivos: En el modo basado en archivos, la configuración de la interfaz se aplica usando un archivo YAML o JSON, usando aplicación nmstatectl Pedido.

Ahora pongámoslo en nuestras manos y veamos cómo modificar la configuración de la red usando Estado costa afuera.

nuestro sombrero de fieltro El sistema tiene dos interfaces de red activas configuradas de la siguiente manera:

$ ip -br -4 a
Salida de muestra
lo               UNKNOWN        127.0.0.1/8 
enp0s3           UP             192.168.2.104/24 
enp0s8           UP             192.168.2.103/24 

Ejemplo de modo de configuración interactiva

Usaremos el modo interactivo para cambiar MTU (unidad máxima de transmisión) de enp0s3 Interfaz de red.Por defecto, esta configuración es 1500 como muestra la imagen.

$ ifconfig
Compruebe la MTU de la red en Linux
Compruebe la MTU de la red en Linux

lo cambiamos a 4000. Usaremos nmstatectl Editar El comando es el siguiente.

$ sudo nmstatectl edit enp0s3

Esto abrirá la configuración en un editor de texto.Para nuestro caso está en empuje editar.A continuación, desplácese hacia abajo y busque hombre Alcance.Cambiamos el valor a 4000, al igual que editamos archivos en vim. Luego guardaremos los cambios.

Cambiar MTU de red en Linux
Cambiar MTU de red en Linux

Cuando guarde y salga del archivo, verá una salida distorsionada en la terminal nuevo estado guardar cambios. No se requiere intervención, solo siéntese quieto.

Ahora confirmemos que se han realizado los cambios.

$ ifconfig

Desde la salida del terminal podemos ver que hemos cambiado con éxito la MTU a 4000 por defecto 1500 valor.

Verificar red MTU en Linux
Verificar red MTU en Linux

Ejemplo de modo de configuración basado en archivos

Ahora modifiquemos la configuración usando el modo basado en archivos.En este ejemplo, desactivaremos IPv6 por enp0s8 Interfaz de red.El primer paso es crear un archivo YAML que especificará el estado deseado enp0s8 Interfaz de red.

$ sudo nmstatectl show enp0s8 > enp0s8.yml
Crear un archivo web YAML
Crear un archivo web YAML

A continuación, editaremos YAML El archivo es el siguiente.

$ sudo vim enp0s8.yml

Desplácese hacia abajo hasta la sección ipv6. Para deshabilitar IPv6, establezca el parámetro habilitado en falso y elimine la línea eliminada.

Deshabilitar IPv6 en Linux
Deshabilitar IPv6 en Linux

Guarde la configuración y aplique el nuevo estado usando el archivo YAML como se muestra a continuación.

$ sudo nmstatectl apply enp0s8.yml

Ahora ejecute el comando que se muestra para verificar que IPv6 esté deshabilitado.El resultado que se muestra muestra que IPv6 se usa para enp0s8 La interfaz de red está en blanco, lo que indica que hemos deshabilitado correctamente IPv6 en esa interfaz.

$ ip -br a 
Confirme que IPv6 está deshabilitado en Linux
Confirme que IPv6 está deshabilitado en Linux

Aplicar cambios de red temporalmente

Otra característica muy útil nuevo estado Brinda la capacidad de configurar temporalmente el estado de red deseado. Una vez que esté satisfecho con la configuración, puede continuar y hacer que los cambios sean permanentes. De lo contrario, una vez que expire el tiempo de espera, los cambios se revertirán a la configuración original. El tiempo de espera predeterminado es de 60 segundos.

Para demostrar esto, haremos enp0s3 interfaz y deshabilitar DHCPVuelva a utilizar un editor de texto para acceder al archivo.

$ sudo vim enp0s3.yml

desplazarse a IPv4 parte.Especificar IP estática – en nuestro caso 192.168.2.150 y elimine la fila eliminada.Además, asegúrese de establecer dhcp Los parámetros son Incorrecto.

Establecer IP estática en Linux
Establecer IP estática en Linux

Guarde el archivo y confirme temporalmente los cambios como se muestra a continuación.

$ sudo nmstatectl apply --no-commit --timeout 20 enp0s3.yml

Esta --no-commit opción para aplicar cambios temporalmente a --timeout En este caso la opción de 20 segundos.

Para verificar la aplicación temporal de los cambios, verificaremos la configuración de IP en intervalos de 20 segundos.

$ ip -br a 

En el resultado, puede ver que la configuración IP de la interfaz vuelve a DHCP después de un intervalo de 20 segundos. Las direcciones IP están de vuelta 192.168.2.104 IP de configuración estática anterior 192.168.2.150.

Compruebe la interfaz de red
Compruebe la interfaz de red

Cierto, Estado costa afuera Herramientas es una herramienta útil para configurar interfaces de red. Es una herramienta declarativa que aplica el estado de configuración deseado de una interfaz de host mediante la API NetworkManager.

Esta Expresar fácil de definir usando interactivo acercarse o usar basado en archivos Usar métodos preconfigurados YAML documento. Esto mejora la automatización de las tareas de configuración y reduce los errores en el proceso de configuración.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba