Red Hat Training

A Red Hat training course is available for RHEL 8

Configuración y gestión de redes

Red Hat Enterprise Linux 8

Guía de configuración y gestión de redes en Red Hat Enterprise Linux 8

Resumen

Este documento describe cómo gestionar la red en Red Hat Enterprise Linux 8.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a sustituir el lenguaje problemático en nuestro código, documentación y propiedades web. Estamos empezando con estos cuatro términos: maestro, esclavo, lista negra y lista blanca. Debido a la enormidad de este esfuerzo, estos cambios se implementarán gradualmente a lo largo de varias versiones próximas. Para más detalles, consulte el mensaje de nuestro CTO Chris Wright.

Proporcionar comentarios sobre la documentación de Red Hat

Agradecemos su opinión sobre nuestra documentación. Por favor, díganos cómo podemos mejorarla. Para ello:

  • Para comentarios sencillos sobre pasajes concretos:

    1. Asegúrese de que está viendo la documentación en el formato Multi-page HTML. Además, asegúrese de ver el botón Feedback en la esquina superior derecha del documento.
    2. Utilice el cursor del ratón para resaltar la parte del texto que desea comentar.
    3. Haga clic en la ventana emergente Add Feedback que aparece debajo del texto resaltado.
    4. Siga las instrucciones mostradas.
  • Para enviar comentarios más complejos, cree un ticket de Bugzilla:

    1. Vaya al sitio web de Bugzilla.
    2. Como componente, utilice Documentation.
    3. Rellene el campo Description con su sugerencia de mejora. Incluya un enlace a la(s) parte(s) pertinente(s) de la documentación.
    4. Haga clic en Submit Bug.

Capítulo 1. Temas generales de la red RHEL

Esta sección proporciona detalles sobre temas generales de la red.

1.1. La diferencia entre redes IP y no IP

Una red es un sistema de dispositivos interconectados que pueden comunicarse compartiendo información y recursos, como archivos, impresoras, aplicaciones y conexión a Internet. Cada uno de estos dispositivos tiene una dirección IP única para enviar y recibir mensajes entre dos o más dispositivos utilizando un conjunto de reglas llamado protocolo.

Categorías de comunicación en red:

Redes IP
Redes que se comunican a través de direcciones IP. Una red IP está implementada en Internet y en la mayoría de las redes internas. Ethernet, las redes inalámbricas y las conexiones VPN son ejemplos típicos.
Redes no IP
Redes que se utilizan para comunicarse a través de una capa inferior en lugar de la capa de transporte. Hay que tener en cuenta que estas redes se utilizan raramente. Por ejemplo, InfiniBand es una red no IP.

1.2. La diferencia entre el direccionamiento IP estático y dinámico

Direccionamiento IP estático

Cuando asignas una dirección IP estática a un dispositivo, la dirección no cambia con el tiempo a menos que la cambies manualmente. Utilice el direccionamiento IP estático si lo desea:

  • Para asegurar la consistencia de las direcciones de red para servidores como DNS, y servidores de autenticación.
  • Utilizar dispositivos de gestión fuera de banda que funcionen independientemente de otras infraestructuras de red.
Direccionamiento IP dinámico

Cuando se configura un dispositivo para utilizar una dirección IP dinámica, la dirección puede cambiar con el tiempo. Por esta razón, las direcciones dinámicas se suelen utilizar para dispositivos que se conectan a la red ocasionalmente, ya que la dirección IP puede ser diferente después de reiniciar el host.

Las direcciones IP dinámicas son más flexibles, más fáciles de configurar y administrar. El Protocolo de Control Dinámico de Anfitriones (DHCP) es un método tradicional para asignar dinámicamente las configuraciones de red a los anfitriones.

Nota

No hay una regla estricta que defina cuándo utilizar direcciones IP estáticas o dinámicas. Depende de las necesidades del usuario, de sus preferencias y del entorno de la red.

Recursos adicionales

Para más detalles sobre la configuración de un servidor DHCP, consulte Capítulo 43, Proporcionar servicios DHCP.

1.3. Fases de la transacción DHCP

El DHCP funciona en cuatro fases: Descubrimiento, Oferta, Solicitud, Reconocimiento, también llamado proceso DORA. El DHCP utiliza este proceso para proporcionar direcciones IP a los clientes.

Descubrimiento

El cliente DHCP envía un mensaje para descubrir el servidor DHCP en la red. Este mensaje se emite en la capa de red y de enlace de datos.

Oferta

El servidor DHCP recibe mensajes del cliente y le ofrece una dirección IP. Este mensaje es unicast en la capa de enlace de datos pero broadcast en la capa de red.

Solicite

El cliente DHCP solicita al servidor DHCP la dirección IP ofrecida. Este mensaje es unicast en la capa de enlace de datos pero broadcast en la capa de red.

Acuse de recibo

El servidor DHCP envía un acuse de recibo al cliente DHCP. Este mensaje es unicast en la capa de enlace de datos pero broadcast en la capa de red. Es el mensaje final del proceso DHCP DORA.

1.4. Redes InfiniBand y RDMA

Para obtener más información sobre las redes InfiniBand y de Acceso Directo a la Memoria Remota (RDMA), consulte la documentación Configuración de redes InfiniBand y RDMA.

1.5. Soporte de scripts de red heredados en RHEL

Por defecto, RHEL utiliza NetworkManager para configurar y gestionar las conexiones de red, y los scripts /usr/sbin/ifup y /usr/sbin/ifdown utilizan NetworkManager para procesar los archivos ifcfg en el directorio /etc/sysconfig/network-scripts/.

Sin embargo, si necesita los scripts de red obsoletos que procesan la configuración de la red sin usar NetworkManager, puede instalarlos:

# yum install network-scripts

Una vez instalados los scripts de red heredados, los scripts /usr/sbin/ifup y /usr/sbin/ifdown enlazan con los scripts de shell obsoletos que gestionan la configuración de la red.

Importante

Los scripts heredados están obsoletos en RHEL 8 y serán eliminados en una futura versión mayor de RHEL. Si todavía utiliza los scripts de red heredados, por ejemplo, porque actualizó desde una versión anterior a RHEL 8, Red Hat recomienda que migre su configuración a NetworkManager.

1.6. Selección de los métodos de configuración de la red

  • Para configurar una interfaz de red mediante NetworkManager, utilice una de las siguientes herramientas:

    • la interfaz de usuario de texto, nmtui.
    • la utilidad de línea de comandos , nmcli.
    • las herramientas de la interfaz gráfica de usuario, GNOME GUI.
  • Para configurar una interfaz de red sin utilizar las herramientas y aplicaciones de NetworkManager:

    • editar manualmente los archivos de ifcfg. Tenga en cuenta que incluso si edita los archivos directamente, NetworkManager es el predeterminado en RHEL y procesa estos archivos. Sólo si ha instalado y habilitado los scripts de red heredados obsoletos, entonces estos scripts procesan los archivos ifcfg.
  • Para configurar los ajustes de red cuando el sistema de archivos raíz no es local:

    • utilizar la línea de comandos del kernel.

Capítulo 2. Denominación coherente de los dispositivos de interfaz de red

Red Hat Enterprise Linux 8 proporciona métodos para la nomenclatura de dispositivos consistente y predecible para las interfaces de red. Estas características ayudan a localizar y diferenciar las interfaces de red.

El kernel asigna nombres a las interfaces de red concatenando un prefijo fijo y un número que aumenta a medida que el kernel inicializa los dispositivos de red. Por ejemplo, eth0 representaría el primer dispositivo que se sondea en el arranque. Sin embargo, estos nombres no se corresponden necesariamente con las etiquetas del chasis. Las plataformas de servidor modernas con múltiples adaptadores de red pueden encontrar nombres no deterministas y contraintuitivos de estas interfaces. Esto afecta tanto a los adaptadores de red integrados en la placa del sistema como a los adaptadores complementarios.

En Red Hat Enterprise Linux 8, el gestor de dispositivos udev soporta un número de esquemas de nomenclatura diferentes. Por defecto, udev asigna nombres fijos basados en la información del firmware, la topología y la ubicación. Esto tiene las siguientes ventajas:

  • Los nombres de los dispositivos son totalmente predecibles.
  • Los nombres de los dispositivos permanecen fijos aunque se añada o elimine hardware, ya que no se produce una nueva enumeración.
  • El hardware defectuoso se puede sustituir sin problemas.

2.1. Jerarquía de nombres de dispositivos de interfaz de red

Si la nomenclatura consistente de dispositivos está habilitada, que es el valor por defecto en Red Hat Enterprise Linux 8, el administrador de dispositivos udev genera nombres de dispositivos basados en los siguientes esquemas:

EsquemaDescripciónEjemplo

1

Los nombres de los dispositivos incorporan los números de índice proporcionados por el firmware o la BIOS para los dispositivos integrados. Si esta información no está disponible o no es aplicable, udev utiliza el esquema 2.

eno1

2

Los nombres de los dispositivos incorporan números de índice de ranura de conexión en caliente PCI Express (PCIe) proporcionados por el firmware o la BIOS. Si esta información no está disponible o no es aplicable, udev utiliza el esquema 3.

ens1

3

Los nombres de los dispositivos incorporan la ubicación física del conector del hardware. Si esta información no está disponible o no es aplicable, udev utiliza el esquema 5.

enp2s0

4

Los nombres de los dispositivos incorporan la dirección MAC. Red Hat Enterprise Linux no utiliza este esquema por defecto, pero los administradores pueden utilizarlo opcionalmente.

enx525400d5e0fb

5

El esquema tradicional de nomenclatura impredecible del kernel. Si udev no puede aplicar ninguno de los otros esquemas, el administrador de dispositivos utiliza este esquema.

eth0

Por defecto, Red Hat Enterprise Linux selecciona el nombre del dispositivo basado en la configuración de NamePolicy en el archivo /usr/lib/systemd/network/99-default.link. El orden de los valores en NamePolicy es importante. Red Hat Enterprise Linux utiliza el primer nombre de dispositivo que está especificado en el archivo y que udev generó.

Si ha configurado manualmente las reglas de udev para cambiar el nombre de los dispositivos del kernel, esas reglas tienen prioridad.

2.2. Cómo funciona el cambio de nombre de los dispositivos de red

Por defecto, el nombramiento consistente de dispositivos está habilitado en Red Hat Enterprise Linux 8. El administrador de dispositivos udev procesa diferentes reglas para renombrar los dispositivos. La lista siguiente describe el orden en que udev procesa estas reglas y de qué acciones son responsables estas reglas:

  1. El archivo /usr/lib/udev/rules.d/60-net.rules define que la utilidad de ayuda /lib/udev/rename_device busque el parámetro HWADDR en los archivos /etc/sysconfig/network-scripts/ifcfg-*. Si el valor establecido en la variable coincide con la dirección MAC de una interfaz, la utilidad helper renombra la interfaz con el nombre establecido en el parámetro DEVICE del archivo.
  2. El archivo /usr/lib/udev/rules.d/71-biosdevname.rules define que la utilidad biosdevname renombre la interfaz según su política de nombres, siempre que no haya sido renombrada en el paso anterior.
  3. El archivo /usr/lib/udev/rules.d/75-net-description.rules define que udev examina el dispositivo de interfaz de red y establece las propiedades en udev-variables internas, que serán procesadas en el siguiente paso. Tenga en cuenta que algunas de estas propiedades pueden ser indefinidas.
  4. El archivo /usr/lib/udev/rules.d/80-net-setup-link.rules llama al incorporado net_setup_link udev que luego aplica la política. La siguiente es la política por defecto que se almacena en el archivo /usr/lib/systemd/network/99-default.link:

    [Link]
    NamePolicy=kernel database onboard slot path
    MACAddressPolicy=persistent

    Con esta política, si el núcleo utiliza un nombre persistente, udev no renombra la interfaz. Si el kernel no utiliza un nombre persistente, udev renombra la interfaz con el nombre proporcionado por la base de datos de hardware de udev. Si esta base de datos no está disponible, Red Hat Enterprise Linux recurre a los mecanismos descritos anteriormente.

    Alternativamente, establezca el parámetro NamePolicy en este archivo a mac para los nombres de interfaz basados en la dirección de acceso al medio (MAC).

  5. El archivo /usr/lib/udev/rules.d/80-net-setup-link.rules define que udev renombre la interfaz basándose en los parámetros internos de udev en el siguiente orden:

    1. ID_NET_NAME_ONBOARD
    2. ID_NET_NAME_SLOT
    3. ID_NET_NAME_PATH

    Si no se establece un parámetro, udev utiliza el siguiente. Si no se establece ninguno de los parámetros, la interfaz no se renombra.

Los pasos 3 y 4 implementan los esquemas de nomenclatura 1 a 4 descritos en Sección 2.1, “Jerarquía de nombres de dispositivos de interfaz de red”.

Recursos adicionales

2.3. Explicación de los nombres de dispositivos de interfaz de red predecibles en la plataforma x86_64

Cuando la función de nombre de dispositivo de red consistente está habilitada, el administrador de dispositivos udev crea los nombres de los dispositivos basándose en diferentes criterios. Esta sección describe el esquema de nomenclatura cuando Red Hat Enterprise Linux 8 está instalado en una plataforma x86_64.

El nombre de la interfaz comienza con un prefijo de dos caracteres según el tipo de interfaz:

  • en para Ethernet
  • wl para LAN inalámbrica (WLAN)
  • ww para la red inalámbrica de área amplia (WWAN)

Además, a uno de los prefijos mencionados se le añade uno de los siguientes, según el esquema que aplique el gestor de dispositivos udev:

  • o<on-board_index_number>
  • s<hot_plug_slot_index_number>[f<function>][d<device_id>]

    Tenga en cuenta que todos los dispositivos PCI multifunción tienen el [f<function>] número en el nombre del dispositivo, incluido el dispositivo de función 0.

  • x<MAC_address>
  • [P<domain_number>]p<bus>s<slot>[f<function>][d<device_id>]

    La parte [P<domain_number>] define la ubicación geográfica del PCI. Esta parte sólo se establece si el número de dominio no es 0.

  • [P<domain_number>]p<bus>s<slot>[f<function>][u<usb_port>][…​][c<config>][i<interface>]

    Para los dispositivos USB, se compone la cadena completa de números de puerto de los concentradores. Si el nombre es más largo que el máximo (15 caracteres), el nombre no se exporta. Si hay varios dispositivos USB en la cadena, udev suprime los valores por defecto de los descriptores de configuración USB (c1) y de los descriptores de interfaz USB (i0).

2.4. Explicación de los nombres de dispositivos de interfaz de red predecibles en la plataforma System z

Cuando la función de nombre de dispositivo de red consistente está activada, el gestor de dispositivos udev en la plataforma System z crea los nombres de los dispositivos basándose en el ID del bus. El ID de bus identifica un dispositivo en el subsistema de canal s390.

Para un dispositivo de palabra de comando de canal (CCW), el ID del bus es el número de dispositivo con un prefijo 0.n, donde n es el ID del conjunto de subcanales.

Las interfaces Ethernet se denominan, por ejemplo, enccw0.0.1234. Los dispositivos de red de canal a canal (CTC) del Protocolo de Internet de Línea Serial (SLIP) se denominan, por ejemplo, slccw0.0.1234.

Utilice los comandos znetconf -c o lscss -a para mostrar los dispositivos de red disponibles y sus identificaciones de bus.

2.5. Desactivación de la denominación coherente de los dispositivos de interfaz durante la instalación

Esta sección describe cómo desactivar la denominación de dispositivos de interfaz consistente durante la instalación.

Aviso

Red Hat recomienda no desactivar la denominación consistente de dispositivos. Desactivar la nomenclatura consistente de dispositivos puede causar diferentes tipos de problemas. Por ejemplo, si añade otra tarjeta de interfaz de red al sistema, la asignación de los nombres de dispositivos del kernel, como eth0, ya no es fija. En consecuencia, después de un reinicio, el Kernel puede nombrar el dispositivo de manera diferente.

Procedimiento

  1. Arranque el medio de instalación de Red Hat Enterprise Linux 8.
  2. En el gestor de arranque, seleccione Install Red Hat Enterprise Linux 8, y pulse la tecla Tab para editar la entrada.
  3. Añade el parámetro net.ifnames=0 a la línea de comandos del kernel:

    vmlinuz.. net.ifnames=0
  4. Pulse Enter para iniciar la instalación.

2.6. Desactivación de la denominación coherente de los dispositivos de interfaz en un sistema instalado

Esta sección describe cómo deshabilitar la denominación de dispositivos de interfaz consistente en un sistema que ya está instalado.

Aviso

Red Hat recomienda no desactivar la denominación consistente de dispositivos. Desactivar la nomenclatura consistente de dispositivos puede causar diferentes tipos de problemas. Por ejemplo, si añade otra tarjeta de interfaz de red al sistema, la asignación de los nombres de dispositivos del kernel, como eth0, ya no es fija. En consecuencia, después de un reinicio, el Kernel puede nombrar el dispositivo de manera diferente.

Requisitos previos

  • El sistema utiliza una denominación de dispositivos de interfaz coherente, que es la predeterminada.

Procedimiento

  1. Edite el archivo /etc/default/grub y añada el parámetro net.ifnames=0 a la variable GRUB_CMDLINE_LINUX:

    GRUB_CMDLINE_LINUX="... *net.ifnames=0
  2. Reconstruya el archivo grub.cfg:

    • En un sistema con modo de arranque UEFI:

      # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
    • En un sistema con modo de arranque heredado:

      # grub2-mkconfig -o /boot/grub2/grub.cfg
  3. Si utiliza nombres de interfaces en archivos de configuración o scripts, debe actualizarlos manualmente.
  4. Reinicia el host:

    # rebote

2.7. Uso de prefixdevname para nombrar las interfaces de red Ethernet

Esta documentación describe cómo establecer los prefijos para un nombramiento consistente de las interfaces de red Ethernet en caso de que no quiera utilizar el esquema de nomenclatura por defecto de dichas interfaces. Sin embargo, Red Hat recomienda utilizar el esquema de nomenclatura por defecto. Para más detalles sobre este esquema, vea Capítulo 2, Denominación coherente de los dispositivos de interfaz de red.

2.7.1. Introducción a prefixdevname

La herramienta prefixdevname es una utilidad de ayuda de udev que le permite definir su propio prefijo utilizado para nombrar las interfaces de red Ethernet.

2.7.2. Limitaciones de prefixdevname

Existen ciertas limitaciones para los prefijos de las interfaces de red Ethernet.

El prefijo que elija debe cumplir los siguientes requisitos:

  • Ser cadena ASCII
  • Sea una cadena alfanumérica
  • Tener menos de 16 caracteres
Aviso

El prefijo no puede entrar en conflicto con ningún otro prefijo conocido utilizado para nombrar la interfaz de red en Linux. En concreto, no se pueden utilizar los siguientes prefijos: eth, eno, ens, em.

2.7.3. Configuración de prefixdevname

La configuración del prefijo con prefixdevname se realiza durante la instalación del sistema.

Para configurar y activar el prefijo necesario para sus interfaces de red Ethernet, utilice el siguiente procedimiento.

Procedimiento

  • Añade la siguiente cadena en la línea de comandos del kernel:

    net.ifnames.prefix=<required prefix>
Aviso

Red Hat no admite el uso de prefixdevname en sistemas ya implantados.

Una vez establecido el prefijo y reiniciado el sistema operativo, el prefijo es efectivo cada vez que aparece una nueva interfaz de red. Al nuevo dispositivo se le asigna un nombre en forma de <PREFIX><INDEX>. Por ejemplo, si el prefijo seleccionado es net, y las interfaces con los prefijos net0 y net1 ya existen en el sistema, la nueva interfaz se llama net2. La utilidad prefixdevname genera entonces el nuevo archivo .link en el directorio /etc/systemd/network que aplica el nombre a la interfaz con la dirección MAC que acaba de aparecer. La configuración es persistente a través de los reinicios.

Capítulo 3. Introducción a NetworkManager

Por defecto, RHEL 8 utiliza NetworkManager para gestionar la configuración de la red y las conexiones.

3.1. Ventajas de utilizar NetworkManager

Las principales ventajas de utilizar NetworkManager son:

  • Ofrece una API a través de D-Bus que permite consultar y controlar la configuración y el estado de la red. De este modo, la red puede ser comprobada y configurada por múltiples aplicaciones asegurando un estado de red sincronizado y actualizado. Por ejemplo, la consola web de RHEL, que supervisa y configura los servidores a través de un navegador web, utiliza la interfaz NetworkManager D-BUS para configurar la red, así como las herramientas Gnome GUI, nmcli y nm-connection-editor. Cada cambio realizado en una de estas herramientas es detectado por todas las demás.
  • Facilitando la gestión de la red NetworkManager asegura que la conectividad de la red funciona. Cuando detecta que no hay configuración de red en un sistema pero sí hay dispositivos de red, NetworkManager crea conexiones temporales para proporcionar conectividad.
  • Proporciona una fácil configuración de la conexión al usuario NetworkManager ofrece la gestión a través de diferentes herramientas - GUI, nmtui, nmcli.
  • Soportar la flexibilidad de la configuración. Por ejemplo, la configuración de una interfaz WiFi NetworkManager escanea y muestra las redes wifi disponibles. Se puede seleccionar una interfaz, y NetworkManager muestra las credenciales requeridas proporcionando una conexión automática después del proceso de reinicio NetworkManager puede configurar alias de red, direcciones IP, rutas estáticas, información DNS y conexiones VPN, así como muchos parámetros específicos de la conexión. Puede modificar las opciones de configuración para reflejar sus necesidades.
  • Mantener el estado de los dispositivos tras el proceso de reinicio y hacerse cargo de las interfaces que se ponen en modo gestionado durante el reinicio.
  • Manejo de dispositivos que no están explícitamente establecidos como no gestionados, sino que son controlados manualmente por el usuario u otro servicio de red.

Recursos adicionales

3.2. Una visión general de las utilidades y aplicaciones que puede utilizar para gestionar las conexiones de NetworkManager

Puede utilizar las siguientes utilidades y aplicaciones para gestionar las conexiones de NetworkManager:

  • nmcli: Una utilidad de línea de comandos para gestionar las conexiones.
  • nmtui: Una interfaz de usuario de texto (TUI) basada en curses. Para utilizar esta aplicación, instale el paquete NetworkManager-tui.
  • nm-connection-editor: Una interfaz gráfica de usuario (GUI) para las tareas relacionadas con NetworkManager. Para iniciar esta aplicación, introduzca nm-connection-editor en un terminal de una sesión de GNOME.
  • control-center: Una interfaz gráfica de usuario proporcionada por el shell de GNOME para los usuarios del escritorio. Tenga en cuenta que esta aplicación soporta menos características que nm-connection-editor.
  • El network connection icon en el shell de GNOME: Este icono representa los estados de la conexión de red y sirve como indicador visual del tipo de conexión que está utilizando.

3.3. Uso de los scripts de despacho de NetworkManager

Por defecto, el directorio /etc/NetworkManager/dispatcher.d/ existe y NetworkManager ejecuta los scripts allí, en orden alfabético. Cada script debe ser un archivo ejecutable owned by root y debe tener write permission sólo para el propietario del archivo.

Nota

NetworkManager ejecuta los scripts de los despachadores en /etc/NetworkManager/dispatcher.d/ en orden alfabético.

Recursos adicionales

3.4. Carga de archivos ifcfg creados manualmente en NetworkManager

En Red Hat Enterprise Linux 8, si edita un archivo ifcfg, NetworkManager no es automáticamente consciente del cambio y tiene que ser solicitado para notar el cambio. Si utiliza una de las herramientas para actualizar NetworkManager la configuración del perfil, NetworkManager no implementa esos cambios hasta que usted se vuelva a conectar usando ese perfil. Por ejemplo, si se han modificado los archivos de configuración utilizando un editor, NetworkManager debe volver a leer los archivos de configuración.

El directorio /etc/sysconfig/ es una ubicación para archivos de configuración y scripts. La mayor parte de la información de configuración de la red se almacena allí, a excepción de la configuración de VPN, banda ancha móvil y PPPoE, que se almacenan en los subdirectorios /etc/NetworkManager/. Por ejemplo, la información específica de la interfaz se almacena en los archivos ifcfg del directorio /etc/sysconfig/network-scripts/.

La información de las VPN, la banda ancha móvil y las conexiones PPPoE se almacena en /etc/NetworkManager/system-connections/.

Nota

Por defecto, RHEL utiliza NetworkManager para configurar y gestionar las conexiones de red, y los scripts /usr/sbin/ifup y /usr/sbin/ifdown utilizan NetworkManager para procesar los archivos ifcfg en el directorio /etc/sysconfig/network-scripts/.

Si necesita los scripts de red heredados para gestionar la configuración de la red, puede instalarlos manualmente. Para más detalles, consulte Sección 1.5, “Soporte de scripts de red heredados en RHEL”. Sin embargo, tenga en cuenta que los scripts de red heredados están obsoletos y se eliminarán en una futura versión de RHEL.

Procedimiento

  1. Para cargar un nuevo archivo de configuración:

    # nmcli connection load /etc/sysconfig/network-scripts/ifcfg-connection_name
  2. Si ha actualizado un archivo de conexión que ya ha sido cargado en NetworkManager, introduzca:

    # nmcli connection up connection_name

Recursos adicionales

  • NetworkManager(8) - Describe el demonio de gestión de red.
  • NetworkManager.conf(5) man page - Describe el archivo de configuración NetworkManager.
  • /usr/share/doc/initscripts/sysconfig.txt - Describe los archivos de configuración de ifcfg y sus directivas tal y como las entiende el servicio de red heredado.
  • ifcfg(8) página de manual - Describe brevemente el comando ifcfg.

Capítulo 4. Configurar NetworkManager para que ignore ciertos dispositivos

Por defecto, NetworkManager gestiona todos los dispositivos excepto el dispositivo lo (loopback). Sin embargo, puede establecer ciertos dispositivos como unmanaged para configurar que NetworkManager ignore estos dispositivos. Con esta configuración, puede gestionar manualmente estos dispositivos, por ejemplo, utilizando un script.

4.1. Configurar permanentemente un dispositivo como no gestionado en NetworkManager

Puede configurar los dispositivos como unmanaged basándose en varios criterios, como el nombre de la interfaz, la dirección MAC o el tipo de dispositivo. Este procedimiento describe cómo configurar permanentemente la interfaz enp1s0 como unmanaged en NetworkManager.

Para configurar temporalmente los dispositivos de red como unmanaged, consulte Sección 4.2, “Configurar temporalmente un dispositivo como no gestionado en NetworkManager”.

Procedimiento

  1. Opcional: Visualice la lista de dispositivos para identificar el dispositivo que desea establecer como unmanaged:

    # nmcli device status
    DEVICE  TYPE      STATE         CONNECTION
    enp1s0  ethernet  disconnected  --
    ...
  2. Cree el archivo /etc/NetworkManager/conf.d/99-unmanaged-devices.conf con el siguiente contenido:

    [keyfile]
    unmanaged-devices=interface-name:enp1s0

    Para establecer varios dispositivos como no gestionados, separe las entradas en el parámetro unmanaged-devices con punto y coma:

    [keyfile]
    unmanaged-devices=interface-name:interface_1;interface-name:interface_2;...
  3. Recargue el servicio NetworkManager:

    # systemctl reload NetworkManager

Pasos de verificación

  • Muestra la lista de dispositivos:

    # nmcli device status
    DEVICE  TYPE      STATE      CONNECTION
    enp1s0  ethernet  unmanaged  --
    ...

    El estado unmanaged junto al dispositivo enp1s0 indica que NetworkManager no gestiona este dispositivo.

Recursos adicionales

  • Para obtener una lista de criterios que puede utilizar para configurar los dispositivos como no administrados y la sintaxis correspondiente, consulte la sección Device List Format en la página de manual NetworkManager.conf(5).

4.2. Configurar temporalmente un dispositivo como no gestionado en NetworkManager

Puede configurar los dispositivos como unmanaged basándose en varios criterios, como el nombre de la interfaz, la dirección MAC o el tipo de dispositivo. Este procedimiento describe cómo configurar temporalmente la interfaz enp1s0 como unmanaged en NetworkManager.

Utilice este método, por ejemplo, para realizar pruebas. Para configurar permanentemente los dispositivos de red como unmanaged, consulte Sección 4.1, “Configurar permanentemente un dispositivo como no gestionado en NetworkManager”.

Utilice este método, por ejemplo, para realizar pruebas. Para configurar permanentemente los dispositivos de red como unmanaged, consulte la sección Configurar permanentemente un dispositivo como no administrado en NetworkManager en la documentación de Configuring and managing networking.

Procedimiento

  1. Opcional: Visualice la lista de dispositivos para identificar el dispositivo que desea establecer como unmanaged:

    # nmcli device status
    DEVICE  TYPE      STATE         CONNECTION
    enp1s0  ethernet  disconnected  --
    ...
  2. Ponga el dispositivo enp1s0 en el estado unmanaged:

    # nmcli device set enp1s0 managed no

Pasos de verificación

  • Muestra la lista de dispositivos:

    # nmcli device status
    DEVICE  TYPE      STATE      CONNECTION
    enp1s0  ethernet  unmanaged  --
    ...

    El estado unmanaged junto al dispositivo enp1s0 indica que NetworkManager no gestiona este dispositivo.

Recursos adicionales

  • Para obtener una lista de criterios que puede utilizar para configurar los dispositivos como no administrados y la sintaxis correspondiente, consulte la sección Device List Format en la página de manual NetworkManager.conf(5).

Capítulo 5. Cómo empezar con nmtui

La aplicación nmtui es una interfaz de usuario de texto (TUI) para NetworkManager. En la siguiente sección se explica cómo se puede configurar una interfaz de red mediante nmtui.

Nota

La aplicación nmtui aplicación no admite todos los tipos de conexión. En particular, no puede añadir o modificar conexiones VPN o conexiones Ethernet que requieran autenticación 802.1X.

5.1. Iniciar la utilidad nmtui

Este procedimiento describe cómo iniciar la interfaz de usuario de texto de NetworkManager, nmtui.

Requisitos previos

  • El paquete NetworkManager-tui está instalado.

Procedimiento

  1. Para iniciar nmtui, introduzca:

    # nmtui
    nmtui Select an Option
  2. Para navegar:

    • Utilice los cursores o pulse Tab para avanzar y pulse Shift+Tabulador para retroceder en las opciones.
    • Utilice Enter para seleccionar una opción.
    • Utilice la barra espaciadora para cambiar el estado de las casillas de verificación.

5.2. Añadir un perfil de conexión mediante nmtui

La aplicación nmtui proporciona una interfaz de usuario de texto para NetworkManager. Este procedimiento describe cómo añadir un nuevo perfil de conexión.

Requisitos previos

  • El paquete NetworkManager-tui está instalado.

Procedimiento

  1. Inicie la utilidad de interfaz de usuario de texto NetworkManager:

    # nmtui
  2. Seleccione la entrada del menú Edit a connection y pulse Intro.
  3. Seleccione el botón Añadir y pulse Intro.
  4. Seleccione Ethernet y pulse Intro.
  5. Rellene los campos con los detalles de la conexión.

    add connection in nmtui
  6. Seleccione OK para guardar los cambios.
  7. Seleccione Back para volver al menú principal.
  8. Seleccione Activate a connection y pulse Intro.
  9. Seleccione la nueva entrada de conexión y pulse Enter para activar la conexión.
  10. Seleccione Atrás para volver al menú principal.
  11. Seleccione Quit.

Pasos de verificación

  1. Muestra el estado de los dispositivos y las conexiones:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp1s0      ethernet  connected  Example-Connection
  2. Para mostrar todos los ajustes del perfil de conexión:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp1s0
    ...

Recursos adicionales

5.3. Aplicación de cambios a una conexión modificada mediante nmtui

Después de modificar una conexión en nmtui, debe reactivar la conexión. Tenga en cuenta que la reactivación de una conexión en nmtui desactiva temporalmente la conexión.

Procedimiento

  1. En el menú principal, seleccione la entrada del menú Activate a connection:

    nmtui Activate a Connection
  2. Seleccione la conexión modificada.
  3. A la derecha, seleccione el botón Deactivate y pulse Intro:

    nmtui Deactivate a Modified Connection
  4. Seleccione de nuevo la conexión.
  5. A la derecha, seleccione el botón Activate y pulse Intro:

    nmtui Activate a Modified Connection

Capítulo 6. Introducción a nmcli

Esta sección describe información general sobre la utilidad nmcli.

6.1. Los diferentes formatos de salida de nmcli

La utilidad nmcli admite diferentes opciones para modificar la salida de los comandos de nmcli. Utilizando estas opciones, puede mostrar sólo la información necesaria. Esto simplifica el procesamiento de la salida en los scripts.

Por defecto, la utilidad nmcli muestra su salida en un formato tipo tabla:

# nmcli device
DEVICE  TYPE      STATE      CONNECTION
enp1s0  ethernet  connected  enp1s0
lo      loopback  unmanaged  --

Utilizando la opción -f, puede mostrar columnas específicas en un orden personalizado. Por ejemplo, para mostrar sólo la columna DEVICE y STATE, introduzca:

# nmcli -f DEVICE,STATE device
DEVICE  STATE
enp1s0  connected
lo      unmanaged

La opción -t permite mostrar los campos individuales de la salida en un formato separado por dos puntos:

# nmcli -t device
enp1s0:ethernet:connected:enp1s0
lo:loopback:unmanaged:

La combinación de -f y -t para mostrar sólo campos específicos en formato separado por dos puntos puede ser útil cuando se procesa la salida en scripts:

# nmcli -f DEVICE,STATE -t device
enp1s0:connected
lo:unmanaged

6.2. Uso de la finalización de tabulaciones en nmcli

Si el paquete bash-completion está instalado en su host, la utilidad nmcli admite la finalización de tabulaciones. Esto le permite autocompletar los nombres de las opciones e identificar posibles opciones y valores.

Por ejemplo, si se escribe nmcli con y se pulsa el tabulador, el intérprete de comandos completa automáticamente el comando a nmcli connection.

Para la finalización, las opciones o el valor que ha escrito deben ser únicos. Si no es único, entonces nmcli muestra todas las posibilidades. Por ejemplo, si escribe nmcli connection d y pulsa el tabulador, el comando muestra delete y down como posibles opciones.

También puede utilizar la función de completar el tabulador para mostrar todas las propiedades que puede establecer en un perfil de conexión. Por ejemplo, si escribe nmcli connection modify connection_name y pulsa el tabulador, el comando muestra la lista completa de propiedades disponibles.

6.3. Comandos nmcli frecuentes

A continuación se ofrece un resumen de los comandos más utilizados en nmcli.

  • Para mostrar la lista de perfiles de conexión, introduzca:

    # nmcli connection show
    NAME    UUID                                  TYPE      DEVICE
    enp1s0  45224a39-606f-4bf7-b3dc-d088236c15ee  ethernet  enp1s0
  • Para mostrar la configuración de un perfil de conexión específico, introduzca:

    # nmcli connection show connection_name
    connection.id:             enp1s0
    connection.uuid:           45224a39-606f-4bf7-b3dc-d088236c15ee
    connection.stable-id:      --
    connection.type:           802-3-ethernet
    ...
  • Para modificar las propiedades de una conexión, introduzca:

    # nmcli connection modify connection_name property value

    Puede modificar varias propiedades con un solo comando si pasa varias property value combinaciones al comando.

  • Para mostrar la lista de dispositivos de red, su estado y qué perfiles de conexión utilizan el dispositivo, introduzca:

    # nmcli device
    DEVICE  TYPE      STATE         CONNECTION
    enp1s0  ethernet  connected     enp1s0
    enp8s0  ethernet  disconnected  --
    enp7s0  ethernet  unmanaged     --
    ...
  • Para activar una conexión, introduzca:

    # nmcli connection up connection_name
  • Para desactivar una conexión, introduzca:

    # nmcli connection down connection_name

Capítulo 7. Introducción a la configuración de la red mediante la GUI de GNOME

Puede gestionar y configurar las conexiones de red utilizando las siguientes formas en GNOME:

  • el icono de conexión de red de GNOME Shell en la parte superior derecha del escritorio
  • la aplicación GNOME control-center aplicación
  • la aplicación GNOME nm-connection-editor aplicación

7.1. Conectarse a una red utilizando el icono de conexión de red de GNOME Shell

Si utiliza la GUI de GNOME, puede utilizar el icono de conexión de red de GNOME Shell para conectarse a una red.

Requisitos previos

  • El grupo de paquetes GNOME está instalado.
  • Ha iniciado sesión en GNOME.
  • Si la red requiere una configuración específica, como una dirección IP estática o una configuración 802.1x, ya se ha creado un perfil de conexión.

Procedimiento

  1. Haga clic en el icono de conexión de red en la esquina superior derecha de su escritorio.

    network connection icon
  2. Según el tipo de conexión, seleccione la entrada Wired o Wi-Fi.

    network connection icon expanded
    • Para una conexión por cable, seleccione Connect para conectarse a la red.
    • Para una conexión Wi-Fi, haga clic en Select network, seleccione la red a la que desea conectarse e introduzca la contraseña.

Capítulo 8. Configurar una conexión Ethernet

Esta sección describe diferentes formas de configurar una conexión Ethernet con direcciones IP estáticas y dinámicas.

8.1. Configuración de una conexión Ethernet estática mediante nmcli

Este procedimiento describe la adición de una conexión Ethernet con la siguiente configuración utilizando la utilidad nmcli:

  • Una dirección IPv4 estática - 192.0.2.1 con una máscara de subred /24
  • Una dirección IPv6 estática - 2001:db8:1::1 con una máscara de subred /64
  • Una pasarela por defecto IPv4 - 192.0.2.254
  • Una pasarela por defecto IPv6 - 2001:db8:1::fffe
  • Un servidor DNS IPv4 - 192.0.2.200
  • Un servidor DNS IPv6 - 2001:db8:1::ffbb
  • Un dominio de búsqueda DNS - example.com

Procedimiento

  1. Añade un nuevo perfil de conexión NetworkManager para la conexión Ethernet:

    # nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet

    Los pasos siguientes modifican el perfil de conexión Example-Connection que ha creado.

  2. Establezca la dirección IPv4:

    # nmcli connection modify Example-Connection ipv4.addresses 192.0.2.1/24
  3. Establezca la dirección IPv6:

    # nmcli connection modify Example-Connection ipv6.addresses 2001:db8:1::1/64
  4. Establezca el método de conexión IPv4 e IPv6 en manual:

    # nmcli connection modify Example-Connection ipv4.method manual
    # nmcli connection modify Example-Connection ipv6.method manual
  5. Establezca las pasarelas por defecto IPv4 e IPv6:

    # nmcli connection modify Example-Connection ipv4.gateway 192.0.2.254
    # nmcli connection modify Example-Connection ipv6.gateway 2001:db8:1::fffe
  6. Establezca las direcciones de los servidores DNS IPv4 e IPv6:

    # nmcli connection modify Example-Connection ipv4.dns "192.0.2.200"
    # nmcli connection modify Example-Connection ipv6.dns "2001:db8:1::ffbb"

    Para establecer varios servidores DNS, especifíquelos separados por espacios y encerrados entre comillas.

  7. Establezca el dominio de búsqueda DNS para la conexión IPv4 e IPv6:

    # nmcli connection modify Example-Connection ipv4.dns-search example.com
    # nmcli connection modify Example-Connection ipv6.dns-search example.com
  8. Activar el perfil de conexión:

    # nmcli connection up Example-Connection
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)

Pasos de verificación

  1. Muestra el estado de los dispositivos y las conexiones:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. Para mostrar todos los ajustes del perfil de conexión:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. Utilice la utilidad ping para verificar que este host puede enviar paquetes a otros hosts.

    • Hacer ping a una dirección IP en la misma subred.

      Para IPv4:

      # ping 192.0.2.3

      Para IPv6:

      # ping 2001:db8:2::1

      Si el comando falla, verifique la configuración de la IP y la subred.

    • Hacer ping a una dirección IP en una subred remota.

      Para IPv4:

      # ping 198.162.3.1

      Para IPv6:

      # ping 2001:db8:2::1
      • Si el comando falla, haga un ping a la puerta de enlace por defecto para verificar la configuración.

        Para IPv4:

        # ping 192.0.2.254

        Para IPv6:

        # ping 2001:db8:1::fffe
  4. Utilice la utilidad host para verificar que la resolución de nombres funciona. Por ejemplo:

    # host client.example.com

    Si el comando devuelve algún error, como connection timed out o no servers could be reached, verifique su configuración de DNS.

Pasos para la resolución de problemas

  1. Si la conexión falla o si la interfaz de red cambia entre un estado de subida y de bajada:

    • Asegúrese de que el cable de red está conectado al host y a un conmutador.
    • Compruebe si el fallo de enlace existe sólo en este host o también en otros hosts conectados al mismo switch al que está conectado el servidor.
    • Compruebe que el cable de red y la interfaz de red funcionan como se espera. Realice los pasos de diagnóstico de hardware y sustituya los cables y las tarjetas de interfaz de red defectuosos.

Recursos adicionales

8.2. Configuración de una conexión Ethernet estática mediante el editor interactivo nmcli

Este procedimiento describe la adición de una conexión Ethernet con los siguientes ajustes utilizando el modo interactivo nmcli:

  • Una dirección IPv4 estática - 192.0.2.1 con una máscara de subred /24
  • Una dirección IPv6 estática - 2001:db8:1::1 con una máscara de subred /64
  • Una pasarela por defecto IPv4 - 192.0.2.254
  • Una pasarela por defecto IPv6 - 2001:db8:1::fffe
  • Un servidor DNS IPv4 - 192.0.2.200
  • Un servidor DNS IPv6 - 2001:db8:1::ffbb
  • Un dominio de búsqueda DNS - example.com

Procedimiento

  1. Para añadir un nuevo perfil de conexión de NetworkManager para la conexión Ethernet, e iniciar el modo interactivo, introduzca:

    # nmcli connection edit type ethernet con-name Example-Connection
  2. Establezca la interfaz de red:

    nmcli> set connection.interface-name enp7s0
  3. Establezca la dirección IPv4:

    nmcli> set ipv4.addresses 192.0.2.1/24
  4. Establezca la dirección IPv6:

    nmcli> set ipv6.addresses 2001:db8:1::1/64
  5. Establezca el método de conexión IPv4 e IPv6 en manual:

    nmcli> set ipv4.method manual
    nmcli> set ipv6.method manual
  6. Establezca las pasarelas por defecto IPv4 e IPv6:

    nmcli> set ipv4.gateway 192.0.2.254
    nmcli> set ipv6.gateway 2001:db8:1::fffe
  7. Establezca las direcciones de los servidores DNS IPv4 e IPv6:

    nmcli> set ipv4.dns 192.0.2.200
    nmcli> set ipv6.dns 2001:db8:1::ffbb

    Para establecer varios servidores DNS, especifíquelos separados por espacios y encerrados entre comillas.

  8. Establezca el dominio de búsqueda DNS para la conexión IPv4 e IPv6:

    nmcli> set ipv4.dns-search example.com
    nmcli> set ipv6.dns-search example.com
  9. Guarde y active la conexión:

    nmcli> save persistent
    Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
    Do you still want to save? (yes/no) [yes] yes
  10. Salga del modo interactivo:

    nmcli> quit

Pasos de verificación

  1. Muestra el estado de los dispositivos y las conexiones:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. Para mostrar todos los ajustes del perfil de conexión:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. Utilice la utilidad ping para verificar que este host puede enviar paquetes a otros hosts.

    • Hacer ping a una dirección IP en la misma subred.

      Para IPv4:

      # ping 192.0.2.3

      Para IPv6:

      # ping 2001:db8:2::1

      Si el comando falla, verifique la configuración de la IP y la subred.

    • Hacer ping a una dirección IP en una subred remota.

      Para IPv4:

      # ping 198.162.3.1

      Para IPv6:

      # ping 2001:db8:2::1
      • Si el comando falla, haga un ping a la puerta de enlace por defecto para verificar la configuración.

        Para IPv4:

        # ping 192.0.2.254

        Para IPv6:

        # ping 2001:db8:1::fffe
  4. Utilice la utilidad host para verificar que la resolución de nombres funciona. Por ejemplo:

    # host client.example.com

    Si el comando devuelve algún error, como connection timed out o no servers could be reached, verifique su configuración de DNS.

Pasos para la resolución de problemas

  1. Si la conexión falla o si la interfaz de red cambia entre un estado de subida y de bajada:

    • Asegúrese de que el cable de red está conectado al host y a un conmutador.
    • Compruebe si el fallo de enlace existe sólo en este host o también en otros hosts conectados al mismo switch al que está conectado el servidor.
    • Compruebe que el cable de red y la interfaz de red funcionan como se espera. Realice los pasos de diagnóstico de hardware y sustituya los cables y las tarjetas de interfaz de red defectuosos.

Recursos adicionales

8.3. Configuración de una conexión Ethernet estática mediante RHEL System Roles

Este procedimiento describe cómo utilizar los roles del sistema RHEL para añadir de forma remota una conexión Ethernet para la interfaz enp7s0 con la siguiente configuración mediante la ejecución de un libro de jugadas de Ansible:

  • Una dirección IPv4 estática - 192.0.2.1 con una máscara de subred /24
  • Una dirección IPv6 estática - 2001:db8:1::1 con una máscara de subred /64
  • Una pasarela por defecto IPv4 - 192.0.2.254
  • Una pasarela por defecto IPv6 - 2001:db8:1::fffe
  • Un servidor DNS IPv4 - 192.0.2.200
  • Un servidor DNS IPv6 - 2001:db8:1::ffbb
  • Un dominio de búsqueda DNS - example.com

Ejecute este procedimiento en el nodo de control de Ansible.

Requisitos previos

  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si utiliza un usuario remoto diferente a root cuando ejecuta el libro de jugadas, este usuario tiene los permisos apropiados de sudo en el nodo gestionado.
  • El host utiliza NetworkManager para configurar la red.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    node.example.com
  2. Cree el libro de jugadas ~/ethernet-static-IP.yml con el siguiente contenido:

    ---
    - name: Configure an Ethernet connection with static IP
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            - name: enp7s0
              type: ethernet
              autoconnect: yes
              ip:
                address:
                  - 192.0.2.1/24
                  - 2001:db8:1::1/64
                gateway4: 192.0.2.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 192.0.2.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
              state: up
  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/ethernet-static-IP.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook solicite la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en network_connections y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

8.4. Configuración de una conexión Ethernet dinámica mediante nmcli

Este procedimiento describe la adición de una conexión Ethernet dinámica utilizando la utilidad nmcli. Con esta configuración, NetworkManager solicita la configuración IP para esta conexión a un servidor DHCP.

Requisitos previos

  • Hay un servidor DHCP disponible en la red.

Procedimiento

  1. Añade un nuevo perfil de conexión NetworkManager para la conexión Ethernet:

    # nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet
  2. Opcionalmente, cambie el nombre de host que NetworkManager envía al servidor DHCP cuando utiliza el perfil Example-Connection:

    # nmcli connection modify Example-Connection ipv4.dhcp-hostname Example ipv6.dhcp-hostname Example
  3. Opcionalmente, cambie el ID de cliente que NetworkManager envía a un servidor DHCP IPv4 cuando se utiliza el perfil Example-Connection:

    # nmcli connection modify Example-Connection ipv4.dhcp-client-id client-ID

    Tenga en cuenta que no existe el parámetro dhcp-client-id para IPv6. Para crear un identificador para IPv6, configure el servicio dhclient.

Pasos de verificación

  1. Muestra el estado de los dispositivos y las conexiones:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. Para mostrar todos los ajustes del perfil de conexión:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. Utilice la utilidad ping para verificar que este host puede enviar paquetes a otros hosts.

    • Hacer ping a una dirección IP en la misma subred.

      Para IPv4:

      # ping 192.0.2.3

      Para IPv6:

      # ping 2001:db8:2::1

      Si el comando falla, verifique la configuración de la IP y la subred.

    • Hacer ping a una dirección IP en una subred remota.

      Para IPv4:

      # ping 198.162.3.1

      Para IPv6:

      # ping 2001:db8:2::1
      • Si el comando falla, haga un ping a la puerta de enlace por defecto para verificar la configuración.

        Para IPv4:

        # ping 192.0.2.254

        Para IPv6:

        # ping 2001:db8:1::fffe
  4. Utilice la utilidad host para verificar que la resolución de nombres funciona. Por ejemplo:

    # host client.example.com

    Si el comando devuelve algún error, como connection timed out o no servers could be reached, verifique su configuración de DNS.

Recursos adicionales

  • Para más detalles sobre la configuración de un identificador de cliente para IPv6, consulte la página de manual dhclient(8).
  • Consulte la página de manual nm-settings(5) para obtener más información sobre las propiedades del perfil de conexión y su configuración.
  • Para más detalles sobre la utilidad nmcli, consulte la página de manual nmcli(1).
  • Si la configuración del disco no coincide con la del dispositivo, al iniciar o reiniciar NetworkManager se crea una conexión en memoria que refleja la configuración del dispositivo. Para más detalles y cómo evitar este problema, consulte NetworkManager duplica una conexión después de reiniciar el servicio NetworkManager.

8.5. Configuración de una conexión Ethernet dinámica mediante el editor interactivo nmcli

Este procedimiento describe la adición de una conexión Ethernet dinámica utilizando el editor interactivo de la utilidad nmcli. Con esta configuración, NetworkManager solicita la configuración IP para esta conexión a un servidor DHCP.

Requisitos previos

  • Hay un servidor DHCP disponible en la red.

Procedimiento

  1. Para añadir un nuevo perfil de conexión de NetworkManager para la conexión Ethernet, e iniciar el modo interactivo, introduzca:

    # nmcli connection edit type ethernet con-name Example-Connection
  2. Establezca la interfaz de red:

    nmcli> set connection.interface-name enp7s0
  3. Opcionalmente, cambie el nombre de host que NetworkManager envía al servidor DHCP cuando utiliza el perfil Example-Connection:

    nmcli> set ipv4.dhcp-hostname Example
    nmcli> set ipv6.dhcp-hostname Example
  4. Opcionalmente, cambie el ID de cliente que NetworkManager envía a un servidor DHCP IPv4 cuando se utiliza el perfil Example-Connection:

    nmcli> set ipv4.dhcp-client-id client-ID

    Tenga en cuenta que no existe el parámetro dhcp-client-id para IPv6. Para crear un identificador para IPv6, configure el servicio dhclient.

  5. Guarde y active la conexión:

    nmcli> save persistent
    Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
    Do you still want to save? (yes/no) [yes] yes
  6. Salga del modo interactivo:

    nmcli> quit

Pasos de verificación

  1. Muestra el estado de los dispositivos y las conexiones:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. Para mostrar todos los ajustes del perfil de conexión:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. Utilice la utilidad ping para verificar que este host puede enviar paquetes a otros hosts.

    • Hacer ping a una dirección IP en la misma subred.

      Para IPv4:

      # ping 192.0.2.3

      Para IPv6:

      # ping 2001:db8:2::1

      Si el comando falla, verifique la configuración de la IP y la subred.

    • Hacer ping a una dirección IP en una subred remota.

      Para IPv4:

      # ping 198.162.3.1

      Para IPv6:

      # ping 2001:db8:2::1
      • Si el comando falla, haga un ping a la puerta de enlace por defecto para verificar la configuración.

        Para IPv4:

        # ping 192.0.2.254

        Para IPv6:

        # ping 2001:db8:1::fffe
  4. Utilice la utilidad host para verificar que la resolución de nombres funciona. Por ejemplo:

    # host client.example.com

    Si el comando devuelve algún error, como connection timed out o no servers could be reached, verifique su configuración de DNS.

Recursos adicionales

  • Para más detalles sobre la configuración de un identificador de cliente para IPv6, consulte la página de manual dhclient(8).
  • Consulte la página de manual nm-settings(5) para obtener más información sobre las propiedades del perfil de conexión y su configuración.
  • Para más detalles sobre la utilidad nmcli, consulte la página de manual nmcli(1).
  • Si la configuración del disco no coincide con la del dispositivo, al iniciar o reiniciar NetworkManager se crea una conexión en memoria que refleja la configuración del dispositivo. Para más detalles y cómo evitar este problema, consulte NetworkManager duplica una conexión después de reiniciar el servicio NetworkManager.

8.6. Configuración de una conexión Ethernet dinámica mediante RHEL System Roles

Este procedimiento describe cómo utilizar RHEL System Roles para añadir remotamente una conexión Ethernet dinámica para la interfaz enp7s0 ejecutando un playbook de Ansible. Con esta configuración, la conexión de red solicita la configuración IP para esta conexión a un servidor DHCP. Ejecute este procedimiento en el nodo de control de Ansible.

Requisitos previos

  • Hay un servidor DHCP disponible en la red.
  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si utiliza un usuario remoto diferente a root cuando ejecuta el libro de jugadas, este usuario tiene los permisos apropiados de sudo en el nodo gestionado.
  • El host utiliza NetworkManager para configurar la red.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    node.example.com
  2. Cree el libro de jugadas ~/ethernet-dynamic-IP.yml con el siguiente contenido:

    ---
    - name: Configure an Ethernet connection with dynamic IP
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            - name: enp7s0
              type: ethernet
              autoconnect: yes
              ip:
                dhcp4: yes
                auto6: yes
              state: up
  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/ethernet-dynamic-IP.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/ethernet-dynamic-IP.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook pida la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en network_connections y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

8.7. Configuración de una conexión Ethernet mediante el centro de control

Las conexiones Ethernet son los tipos de conexión más utilizados en las máquinas físicas o virtuales. Esta sección describe cómo configurar este tipo de conexión en el sitio web de GNOME control-center:

Tenga en cuenta que control-center no admite tantas opciones de configuración como la aplicación nm-connection-editor o la utilidad nmcli.

Requisitos previos

  • Existe un dispositivo Ethernet físico o virtual en la configuración del servidor.
  • GNOME está instalado.

Procedimiento

  1. Pulse la tecla Super, introduzca Settings, y pulse Enter.
  2. Seleccione Network en la navegación de la izquierda.
  3. Haga clic en el botón junto a la entrada Wired para crear un nuevo perfil.
  4. Opcional: Establezca un nombre para la conexión en la pestaña Identity.
  5. En la pestaña IPv4, configure los ajustes de IPv4. Por ejemplo, seleccione el método Manual, configure una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada y un servidor DNS:

    IPv4 settings control center
  6. En la pestaña IPv6, configure los ajustes de IPv6. Por ejemplo, seleccione el método Manual, configure una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada y un servidor DNS:

    IPv6 settings control center
  7. Haga clic en el botón Añadir para guardar la conexión. GNOME control-center activa automáticamente la conexión.

Pasos de verificación

  1. Muestra el estado de los dispositivos y las conexiones:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. Para mostrar todos los ajustes del perfil de conexión:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. Utilice la utilidad ping para verificar que este host puede enviar paquetes a otros hosts.

    • Hacer ping a una dirección IP en la misma subred.

      Para IPv4:

      # ping 192.0.2.3

      Para IPv6:

      # ping 2001:db8:2::1

      Si el comando falla, verifique la configuración de la IP y la subred.

    • Hacer ping a una dirección IP en una subred remota.

      Para IPv4:

      # ping 198.162.3.1

      Para IPv6:

      # ping 2001:db8:2::1
      • Si el comando falla, haga un ping a la puerta de enlace por defecto para verificar la configuración.

        Para IPv4:

        # ping 192.0.2.254

        Para IPv6:

        # ping 2001:db8:1::fffe
  4. Utilice la utilidad host para verificar que la resolución de nombres funciona. Por ejemplo:

    # host client.example.com

    Si el comando devuelve algún error, como connection timed out o no servers could be reached, verifique su configuración de DNS.

Pasos para la resolución de problemas

  1. Si la conexión falla o si la interfaz de red cambia entre un estado de subida y de bajada:

    • Asegúrese de que el cable de red está conectado al host y a un conmutador.
    • Compruebe si el fallo de enlace existe sólo en este host o también en otros hosts conectados al mismo switch al que está conectado el servidor.
    • Compruebe que el cable de red y la interfaz de red funcionan como se espera. Realice los pasos de diagnóstico de hardware y sustituya los cables y las tarjetas de interfaz de red defectuosos.

8.8. Configuración de una conexión Ethernet mediante nm-connection-editor

Las conexiones Ethernet son los tipos de conexión más utilizados en los servidores físicos o virtuales. Esta sección describe cómo configurar este tipo de conexión utilizando la aplicación nm-connection-editor.

Requisitos previos

  • Existe un dispositivo Ethernet físico o virtual en la configuración del servidor.
  • GNOME está instalado.

Procedimiento

  1. Abre un terminal y entra:

    $ nm-connection-editor
  2. Pulse el botón para añadir una nueva conexión.
  3. Seleccione el tipo de conexión Ethernet y haga clic en Crear.
  4. En la pestaña General:

    1. Para habilitar automáticamente esta conexión al arrancar el sistema o al reiniciar el servicio NetworkManager:

      1. Seleccione Connect automatically with priority.
      2. Opcional: Cambie el valor de la prioridad junto a Connect automatically with priority.

        Si existen varios perfiles de conexión para el mismo dispositivo, NetworkManager sólo activa un perfil. Por defecto, NetworkManager activa el último perfil utilizado que tenga activada la conexión automática. Sin embargo, si se establecen valores de prioridad en los perfiles, NetworkManager activa el perfil con la mayor prioridad.

    2. Desactive la casilla All users may connect to this network si el perfil debe estar disponible sólo para el usuario que creó el perfil de conexión.

    ficha general de la conexión ethernet

  5. En la pestaña Ethernet, seleccione un dispositivo y, opcionalmente, otros ajustes relacionados con Ethernet configuración de la conexión ethernet
  6. En la pestaña IPv4 Settings, configure los ajustes de IPv4. Por ejemplo, configure una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada y un servidor DNS Configuración IPv4 nm editor de conexiones
  7. En la pestaña IPv6 Settings, configure los ajustes de IPv6. Por ejemplo, establezca una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada y un servidor DNS Configuración de IPv6 nm editor de conexiones
  8. Guarda la conexión.
  9. Cerrar nm-connection-editor.

Pasos de verificación

  1. Utilice la utilidad ping para verificar que este host puede enviar paquetes a otros hosts.

    • Hacer ping a una dirección IP en la misma subred.

      Para IPv4:

      # ping 192.0.2.3

      Para IPv6:

      # ping 2001:db8:2::1

      Si el comando falla, verifique la configuración de la IP y la subred.

    • Hacer ping a una dirección IP en una subred remota.

      Para IPv4:

      # ping 198.162.3.1

      Para IPv6:

      # ping 2001:db8:2::1
      • Si el comando falla, haga un ping a la puerta de enlace por defecto para verificar la configuración.

        Para IPv4:

        # ping 192.0.2.254

        Para IPv6:

        # ping 2001:db8:1::fff3
    • Utilice la utilidad host para verificar que la resolución de nombres funciona. Por ejemplo:

      # host cliente.ejemplo.com

      Si el comando devuelve algún error, como connection timed out o no servers could be reached, verifique su configuración de DNS.

8.9. Configurar el comportamiento DHCP de una conexión de NetworkManager

Un cliente del Protocolo de Configuración Dinámica de Host (DHCP) solicita la dirección IP dinámica y la información de configuración correspondiente a un servidor DHCP cada vez que un cliente se conecta a la red.

Cuando se configura una conexión para recuperar una dirección IP de un servidor DHCP, NetworkManager solicita una dirección IP a un servidor DHCP. Por defecto, el cliente espera 45 segundos para que se complete esta solicitud. Cuando se inicia una conexión DHCP, un cliente dhcp solicita una dirección IP a un servidor DHCP.

Requisitos previos

  • Se configura una conexión que utiliza DHCP en el host.

Procedimiento

  1. Establezca las propiedades ipv4.dhcp-timeout y ipv6.dhcp-timeout. Por ejemplo, para establecer ambas opciones en 30 segundos, introduzca:

    # nmcli connection modify connection_name ipv4.dhcp-timeout 30 ipv6.dhcp-timeout 30

    Alternativamente, establezca los parámetros en infinity para configurar que NetworkManager no deje de intentar solicitar y renovar una dirección IP hasta que tenga éxito.

  2. Opcional: Configure el comportamiento si NetworkManager no recibe una dirección IPv4 antes del tiempo de espera:

    # nmcli connection modify connection_name ipv4.may-fail value

    Si se configura la opción ipv4.may-fail:

    • yes, el estado de la conexión depende de la configuración de IPv6:

      • Si la configuración de IPv6 está activada y tiene éxito, NetworkManager activa la conexión IPv6 y ya no intenta activar la conexión IPv4.
      • Si la configuración de IPv6 está desactivada o no está configurada, la conexión falla.
    • no, la conexión se desactiva. En este caso:

      • Si la propiedad autoconnect de la conexión está activada, NetworkManager reintenta activar la conexión tantas veces como se establezca en la propiedad autoconnect-retries. El valor por defecto es 4.
      • Si la conexión sigue sin poder adquirir una dirección DHCP, la autoactivación falla. Tenga en cuenta que después de 5 minutos, el proceso de autoconexión se inicia de nuevo para adquirir una dirección IP del servidor DHCP.
  3. Opcional: Configure el comportamiento si NetworkManager no recibe una dirección IPv6 antes del tiempo de espera:

    # nmcli connection modify connection_name ipv6.may-fail value

Recursos adicionales

  • Para más detalles sobre las propiedades descritas en esta sección, consulte la página man nm-settings(5).

Capítulo 9. Gestión de las conexiones Wi-Fi

Esta sección describe cómo configurar y gestionar las conexiones Wi-Fi.

9.1. Establecer el dominio regulador inalámbrico

En Red Hat Enterprise Linux, el paquete crda contiene el Agente Central de Dominio Reglamentario que proporciona al núcleo las normas de regulación inalámbrica para una jurisdicción determinada. Es utilizado por ciertos udev scripts y no debe ser ejecutado manualmente a menos que se depuren udev scripts. El kernel se ejecuta crda enviando un udev evento cuando se produce un nuevo cambio de dominio normativo. Los cambios de dominio regulador son activados por el subsistema inalámbrico de Linux (IEEE-802.11). Este subsistema utiliza el archivo regulatory.bin para mantener la información de su base de datos regulatoria.

La utilidad setregdomain establece el dominio regulador para su sistema. Setregdomain no toma argumentos y normalmente se llama a través de un script del sistema como udev en lugar de hacerlo manualmente el administrador. Si la búsqueda del código de país falla, el administrador del sistema puede definir la variable de entorno COUNTRY en el archivo /etc/sysconfig/regdomain.

Recursos adicionales

Consulte las siguientes páginas de manual para obtener más información sobre el dominio regulador:

  • setregdomain(1) página de manual - Establece el dominio regulador basado en el código de país.
  • crda(8) man page - Envía al kernel un dominio de regulación inalámbrica para una ISO o IEC 3166 alpha2 dada.
  • regulatory.bin(5) página de manual - Muestra la base de datos de regulación inalámbrica de Linux.
  • iw(8) man page - Muestra o manipula los dispositivos inalámbricos y su configuración.

9.2. Configuración de una conexión Wi-Fi mediante nmcli

Este procedimiento describe cómo configurar un perfil de conexión Wi-fi utilizando nmcli.

Requisitos previos

  • La utilidad nmcli a instalar.
  • Asegúrate de que la radio WiFi está activada (por defecto):

    ~]$ nmcli radio wifi on

Procedimiento

  1. Para crear un perfil de conexión Wi-Fi con configuración estática IP:

    ~]$ nmcli con add con-name MyCafe ifname wlan0 type wifi ssid MyCafe ` `ip4 192.168.100.101/24 gw4 192.168.100.1
  2. Establezca un servidor DNS. Por ejemplo, para establecer 192.160.100.1 como servidor DNS:

    ~]$ nmcli con modify con-name MyCafe ipv4.dns "192.160.100.1"
  3. Opcionalmente, establezca un dominio de búsqueda DNS. Por ejemplo, para establecer el dominio de búsqueda en example.com:

    ~]$ nmcli con modify con-name MyCafe ipv4.dns-search "example.com"
  4. Para comprobar una propiedad concreta, por ejemplo mtu:

    ~]$ nmcli connection show id MyCafe | grep mtu
    802-11-wireless.mtu:                     auto
  5. Para cambiar la propiedad de un ajuste:

    ~]$ nmcli connection modify id MyCafe 802-11-wireless.mtu 1350
  6. Para verificar el cambio:

    ~]$ nmcli connection show id MyCafe | grep mtu
    802-11-wireless.mtu:                     1350

Pasos de verificación

  1. Utilice la utilidad ping para verificar que este host puede enviar paquetes a otros hosts.

    • Hacer ping a una dirección IP en la misma subred. Por ejemplo:

      # ping 192.168.100.103

      Si el comando falla, verifique la configuración de la IP y la subred.

    • Hacer ping a una dirección IP en una subred remota. Por ejemplo:

      # ping 198.51.16.3
      • Si el comando falla, haga un ping a la puerta de enlace por defecto para verificar la configuración.

        # ping 192.168.100.1
  2. Utilice la utilidad host para verificar que la resolución de nombres funciona. Por ejemplo:

    # host cliente.ejemplo.com

    Si el comando devuelve algún error, como connection timed out o no servers could be reached, verifique su configuración de DNS.

Recursos adicionales

  • Consulte la página de manual nm-settings(5) para obtener más información sobre las propiedades y su configuración.
  • Si la configuración del disco no coincide con la del dispositivo, al iniciar o reiniciar NetworkManager se crea una conexión en memoria que refleja la configuración del dispositivo. Para más detalles y cómo evitar este problema, consulte NetworkManager duplica una conexión después de reiniciar el servicio NetworkManager.

9.3. Configuración de una conexión Wi-Fi mediante el centro de control

Cuando se conecta a un Wi-Fi, los ajustes de red se rellenan previamente en función de la conexión de red actual. Esto significa que los ajustes se detectarán automáticamente cuando la interfaz se conecte a una red.

Este procedimiento describe cómo utilizar control-center para configurar manualmente los ajustes de Wi-Fi.

Procedimiento

  1. Pulse la tecla Super para entrar en Activities Overview, escriba Wi-Fi y pulse Intro. En la entrada del menú de la izquierda verás la lista de redes disponibles.
  2. Seleccione el icono de la rueda dentada situado a la derecha del nombre de la conexión Wi-Fi que desea editar, y aparecerá el cuadro de diálogo de edición de la conexión. La ventana del menú Details muestra los detalles de la conexión en los que puede realizar más configuraciones.

    Options

    1. Si selecciona Connect automatically, NetworkManager se conecta automáticamente a esta conexión siempre que NetworkManager detecte que está disponible. Si no desea NetworkManager conectarse automáticamente, desactive la casilla. Tenga en cuenta que cuando la casilla está desactivada, tiene que seleccionar esa conexión manualmente en el menú del icono de conexión de red para que se conecte.
    2. Para que una conexión esté disponible para otros usuarios, seleccione la casilla Make available to other users.
    3. También puedes controlar el uso de datos en segundo plano. Si dejas Restrict background data usage sin especificar (por defecto), entonces NetworkManager intenta descargar los datos que estás utilizando activamente. De lo contrario, seleccione la casilla y NetworkManager establece la conexión como medido, y aplica la restricción en el uso de datos de fondo.

      Nota

      Para eliminar una conexión de Wi-Fi, haga clic en el cuadro rojo de Forget Connection.

  3. Seleccione la entrada del menú Identity para ver las opciones básicas de configuración.

    SSID - El Service Set Identifier (SSID) del punto de acceso (AP).

    BSSID - El Basic Service Set Identifier (BSSID) es la dirección MAC, también conocida como hardware address, del punto de acceso inalámbrico específico al que se está conectando cuando está en modo Infrastructure. Este campo está en blanco por defecto, y puede conectarse a un punto de acceso inalámbrico por SSID sin tener que especificar su BSSID. Si se especifica el BSSID, se forzará al sistema a asociarse sólo a un punto de acceso específico. En el caso de las redes ad-hoc, el BSSID es generado aleatoriamente por el mac80211 subsistema cuando se crea la red ad-hoc. No se muestra por NetworkManager.

    MAC address - La página MAC address permite asociar un adaptador inalámbrico específico con una conexión (o conexiones) concreta.

    Cloned Address - Una dirección MAC clonada para usar en lugar de la dirección real del hardware. Dejar en blanco a menos que sea necesario.

  4. Para configurar más direcciones IP, seleccione las entradas de menú IPv4 y IPv6.

    Por defecto, tanto IPv4 como IPv6 están configurados con una configuración automática en función de la configuración actual de la red. Esto significa que direcciones como la dirección IP local, la dirección DNS y otras configuraciones se detectarán automáticamente cuando la interfaz se conecte a una red. Si un servidor DHCP asigna la configuración IP en esta red, esto es suficiente, pero también puede proporcionar una configuración estática en los ajustes IPv4 y IPv6. En las entradas de menú IPv4 y IPv6, puede ver los siguientes ajustes:

    • IPv4 Method

      • Automatic (DHCP) - Elija esta opción si la red a la que se está conectando utiliza anuncios de router (RA) o un servidor DHCP para asignar direcciones IP dinámicas. Puede ver la dirección IP asignada en la entrada del menú Details.
      • Link-Local Only - Elija esta opción si la red a la que se conecta no tiene un servidor DHCP y no quiere asignar direcciones IP manualmente. Se asignarán direcciones aleatorias según RFC 3927 con el prefijo 169.254/16.
      • Manual - Elija esta opción si desea asignar direcciones IP manualmente.
      • Disable - IPv4 está desactivado para esta conexión.
    • DNS

      Si Automatic es ON, y no hay ningún servidor DHCP disponible que asigne servidores DNS a esta conexión, cámbielo a OFF para introducir la dirección IP de un servidor DNS separando las IPs por comas.

    • Routes

      Tenga en cuenta que en la sección Routes, cuando Automatic es ON, se utilizan rutas procedentes de anuncios de router (RA) o DHCP, pero también puede añadir rutas estáticas adicionales. Cuando OFF, sólo se utilizan rutas estáticas.

      • Address - Introduzca la dirección IP de una red, subred o host remoto.
      • Netmask - La máscara de red o la longitud del prefijo de la dirección IP introducida anteriormente.
      • Gateway - La dirección IP de la puerta de enlace que conduce a la red remota, la subred o el host introducido anteriormente.
      • Metric - Un coste de red, un valor de preferencia para dar a esta ruta. Los valores más bajos serán preferidos sobre los valores más altos.
    • Use this connection only for resources on its network

      Seleccione esta casilla para evitar que la conexión se convierta en la ruta por defecto.

      Alternativamente, para configurar IPv6 en una conexión Wi-Fi, seleccione la entrada del menú IPv6:

    • IPv6 Method

      • Automatic - Elija esta opción para utilizar IPv6 Stateless Address AutoConfiguration (SLAAC) para crear una configuración automática y sin estado basada en la dirección del hardware y en los anuncios del router (RA).
      • Automatic, DHCP only - Elija esta opción para no utilizar RA, sino solicitar información a DHCPv6 directamente para crear una configuración con estado.
      • Link-Local Only - Elija esta opción si la red a la que se conecta no tiene un servidor DHCP y no quiere asignar direcciones IP manualmente. Se asignarán direcciones aleatorias según RFC 4862 con el prefijo FE80::0.
      • Manual - Elija esta opción si desea asignar direcciones IP manualmente.
      • Disable - IPv6 está desactivado para esta conexión.
    • Los campos DNS, Routes, Use this connection only for resources on its network son comunes a la configuración de IPv4.
  5. Para configurar los ajustes de Security en una conexión Wi-Fi, seleccione la entrada de menú Security. Están disponibles las siguientes opciones de configuración:

    • Security

      • None - No cifrar la conexión Wi-Fi.
      • WEP 40/128-bit Key - Wired Equivalent Privacy (WEP), del estándar IEEE 802.11. Utiliza una única clave precompartida (PSK).
      • WEP 128-bit Passphrase - Un hash MD5 de la frase de paso para obtener una clave WEP.

        Aviso

        Si el Wi-Fi no utiliza encriptación, WEP, o WPA, no utilices la red porque es insegura y todo el mundo puede leer los datos que envíes por esta red.

      • LEAP - Lightweight Extensible Authentication Protocol, de Cisco Systems.
      • Dynamic WEP (802.1X) - Las claves WEP se cambian dinámicamente.
      • WPA & WPA2 Personal — Wi-Fi Protected Access (WPA), from the draft IEEE 802.11i standard. A replacement for WEP. Wi-Fi Protected Access II (WPA2), from the 802.11i-2004 standard. Personal mode uses a pre-shared key (WPA-PSK).
      • WPA & WPA2 Enterprise — WPA for use with a RADIUS authentication server to provide IEEE 802.1X network access control.
    • Password - Introduzca la contraseña que se utilizará en el proceso de autenticación.
  6. Una vez que haya terminado la configuración, haga clic en el botón Aplicar para guardarla.
Nota

Cuando se añade una nueva conexión haciendo clic en el botón más, NetworkManager crea un nuevo archivo de configuración para esa conexión y luego abre el mismo diálogo que se utiliza para editar una conexión existente. La diferencia entre estos diálogos es que un perfil de conexión existente tiene una entrada de menú Details.

9.4. Conexión a una red Wi-Fi con nmcli

Este procedimiento describe cómo conectarse a una conexión wireless utilizando la utilidad nmcli.

Requisitos previos

  • La utilidad nmcli a instalar.
  • Asegúrate de que la radio WiFi está activada (por defecto):

    ~]$ nmcli radio wifi on

Procedimiento

  1. Para actualizar la lista de conexiones Wi-Fi disponibles:

    ~]$ nmcli device wifi rescan
  2. Para ver los puntos de acceso Wi-Fi disponibles:

    ~]$ nmcli dev wifi list
    
    IN-USE  SSID      MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
    ...
            MyCafe    Infra  3     405 Mbit/s  85      ▂▄▆█  WPA1 WPA2
  3. Para conectarse a una conexión Wi-Fi mediante nmcli:

    ~]$ nmcli dev wifi connect SSID-Name password wireless-password

    Por ejemplo:

    ~]$ nmcli dev wifi connect MyCafe password wireless-password

    Tenga en cuenta que si quiere desactivar el estado Wi-Fi:

    ~]$ nmcli radio wifi off

9.5. Conexión a una red Wi-Fi oculta mediante nmcli

Todos los puntos de acceso tienen un identificador de conjunto de servicios (SSID) para identificarlos. Sin embargo, un punto de acceso puede estar configurado para no difundir su SSID, en cuyo caso está oculto, y no aparecerá en NetworkManager’s lista de redes disponibles.

Este procedimiento muestra cómo puede conectarse a una red oculta utilizando la herramienta nmcli.

Requisitos previos

  • La utilidad nmcli a instalar.
  • Para conocer el SSID, y la contraseña de la conexión Wi-Fi.
  • Asegúrate de que la radio WiFi está activada (por defecto):

    ~]$ nmcli radio wifi on

Procedimiento

  • Conéctese al SSID que está oculto:

    ~]$ nmcli dev wifi connect SSID_Name password wireless_password hidden yes

9.6. Conectarse a una red Wi-Fi utilizando la GUI de GNOME

Este procedimiento describe cómo puede conectarse a una red inalámbrica para obtener acceso a Internet.

Procedimiento

  1. Abra el menú del icono de conexión de red de GNOME Shell en la esquina superior derecha de la pantalla.
  2. Seleccione Wi-Fi Not Connected.
  3. Haga clic en la opción Select Network.
  4. Haga clic en el nombre de la red a la que desea conectarse y, a continuación, en Connect.

    Tenga en cuenta que si no ve la red, ésta puede estar oculta.

  5. Si la red está protegida por una contraseña o se requieren claves de cifrado, introduzca la contraseña y haga clic en Connect.

    Tenga en cuenta que si no conoce la contraseña, póngase en contacto con el administrador de la red Wi-Fi.

  6. Si la conexión es satisfactoria, el nombre de la red es visible en el menú de iconos de conexión y el indicador de conexión inalámbrica aparece en la esquina superior derecha de la pantalla.

Capítulo 10. Configuración del etiquetado VLAN

Esta sección describe cómo configurar una red de área local virtual (VLAN). Una VLAN es una red lógica dentro de una red física. La interfaz VLAN etiqueta los paquetes con el ID de la VLAN cuando pasan por la interfaz, y elimina las etiquetas de los paquetes que vuelven.

Se crea una interfaz VLAN sobre otra interfaz, como un dispositivo Ethernet, bond, team o bridge. Esta interfaz se denomina parent interface.

10.1. Configurar el etiquetado de la VLAN mediante los comandos nmcli

Esta sección describe cómo configurar el etiquetado de la Red de Área Local Virtual (VLAN) utilizando la utilidad nmcli.

Requisitos previos

  • La interfaz que tiene previsto utilizar como padre de la interfaz VLAN virtual es compatible con las etiquetas VLAN.
  • Si se configura la VLAN sobre una interfaz de enlace:

    • Los puertos de la fianza están arriba.
    • El enlace no está configurado con la opción fail_over_mac=follow. Un dispositivo virtual VLAN no puede cambiar su dirección MAC para que coincida con la nueva dirección MAC del padre. En tal caso, el tráfico se seguiría enviando con la dirección MAC de origen entonces incorrecta.
  • El conmutador al que está conectado el host está configurado para soportar etiquetas VLAN. Para más detalles, consulte la documentación de su conmutador.

Procedimiento

  1. Muestra las interfaces de red:

    # nmcli device status
    DEVICE   TYPE      STATE         CONNECTION
    enp1s0   ethernet  disconnected  enp1s0
    bridge0  bridge    connected     bridge0
    bond0    bond      connected     bond0
    ...
  2. Cree la interfaz VLAN. Por ejemplo, para crear una interfaz VLAN llamada vlan10 que utilice enp1s0 como interfaz padre y que etiquete los paquetes con el ID VLAN 10, introduzca:

    # nmcli connection add type vlan con-name vlan10 ifname vlan10 vlan.parent enp1s0 vlan.id 10

    Tenga en cuenta que la VLAN debe estar dentro del rango de 0 a 4094.

  3. Por defecto, la conexión VLAN hereda la unidad de transmisión máxima (MTU) de la interfaz principal. Opcionalmente, establezca un valor de MTU diferente:

    # nmcli connection modify vlan10 802-3-ethernet.mtu 2000
  4. Configure los ajustes IP del dispositivo VLAN. Omita este paso si desea utilizar este dispositivo VLAN como puerto de otros dispositivos.

    1. Configure los ajustes de IPv4. Por ejemplo, para establecer una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada y un servidor DNS en la conexión vlan10, introduzca:

      # nmcli connection modify vlan10 ipv4.addresses '192.0.2.1/24'
      # nmcli connection modify vlan10 ipv4.gateway '192.0.2.254'
      # nmcli connection modify vlan10 ipv4.dns '192.0.2.253'
      # nmcli connection modify vlan10 ipv4.method manual
    2. Configure los ajustes de IPv6. Por ejemplo, para establecer una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada y un servidor DNS para la conexión vlan10, introduzca:

      # nmcli connection modify vlan10 ipv6.addresses '2001:db8:1::1/32'
      # nmcli connection modify vlan10 ipv6.gateway '2001:db8:1::fffe'
      # nmcli connection modify vlan10 ipv6.dns '2001:db8:1::fffd'
      # nmcli connection modify vlan10 ipv6.method manual
  5. Activa la conexión:

    # nmcli connection up vlan10

Pasos de verificación

  1. Verifique los ajustes:

    # ip -d addr show vlan10
    4: vlan10@enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 52:54:00:d5:e0:fb brd ff:ff:ff:ff:ff:ff promiscuity 0
        vlan protocol 802.1Q id 10 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
        inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute vlan10
           valid_lft forever preferred_lft forever
        inet6 2001:db8:1::1/32 scope global noprefixroute
           valid_lft forever preferred_lft forever
        inet6 fe80::8dd7:9030:6f8e:89e6/64 scope link noprefixroute
           valid_lft forever preferred_lft forever

Recursos adicionales

10.2. Configuración del etiquetado VLAN mediante nm-connection-editor

Esta sección describe cómo configurar el etiquetado de la Red de Área Local Virtual (VLAN) utilizando la aplicación nm-connection-editor.

Requisitos previos

  • La interfaz que tiene previsto utilizar como padre de la interfaz VLAN virtual es compatible con las etiquetas VLAN.
  • Si se configura la VLAN sobre una interfaz de enlace:

    • Los puertos de la fianza están arriba.
    • El enlace no está configurado con la opción fail_over_mac=follow. Un dispositivo virtual VLAN no puede cambiar su dirección MAC para que coincida con la nueva dirección MAC del padre. En tal caso, el tráfico se seguiría enviando con la dirección MAC de origen entonces incorrecta.
  • El conmutador al que está conectado el host está configurado para soportar etiquetas VLAN. Para más detalles, consulte la documentación de su conmutador.

Procedimiento

  1. Abra un terminal e introduzca nm-connection-editor:

    $ nm-connection-editor
  2. Pulse el botón para añadir una nueva conexión.
  3. Seleccione el tipo de conexión VLAN y haga clic en Crear.
  4. En la pestaña VLAN:

    1. Seleccione la interfaz principal.
    2. Seleccione el identificador de la VLAN. Tenga en cuenta que la VLAN debe estar dentro del rango de 0 a 4094.
    3. Por defecto, la conexión VLAN hereda la unidad de transmisión máxima (MTU) de la interfaz principal. Opcionalmente, establezca un valor de MTU diferente.
    4. Opcionalmente, establezca el nombre de la interfaz VLAN y otras opciones específicas de la VLAN.

      vlan settings nm connection editor

  5. Configure los ajustes IP del dispositivo VLAN. Omita este paso si desea utilizar este dispositivo VLAN como puerto de otros dispositivos.

    1. En la pestaña IPv4 Settings, configure los ajustes de IPv4. Por ejemplo, configure una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada y un servidor DNS vlan configuración IPv4 nm connection editor
    2. En la pestaña IPv6 Settings, configure los ajustes de IPv6. Por ejemplo, establezca una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada y un servidor DNS vlan configuración IPv6 nm connection editor
  6. Haga clic en Guardar para guardar la conexión VLAN.
  7. Cerrar nm-connection-editor.

Pasos de verificación

  1. Verifique los ajustes:

    # ip -d addr show vlan10
    4: vlan10@enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 52:54:00:d5:e0:fb brd ff:ff:ff:ff:ff:ff promiscuity 0
        vlan protocol 802.1Q id 10 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
        inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute vlan10
           valid_lft forever preferred_lft forever
        inet6 2001:db8:1::1/32 scope global noprefixroute
           valid_lft forever preferred_lft forever
        inet6 fe80::8dd7:9030:6f8e:89e6/64 scope link noprefixroute
           valid_lft forever preferred_lft forever

Recursos adicionales

10.3. Configurar el etiquetado de VLANs mediante los roles del sistema

Puede utilizar el rol de sistema networking RHEL para configurar el etiquetado de VLAN. Este procedimiento describe cómo añadir una conexión Ethernet y una VLAN con ID 10 que utiliza esta conexión Ethernet. Como dispositivo principal, la conexión VLAN contiene las configuraciones de IP, puerta de enlace predeterminada y DNS.

Dependiendo de su entorno, ajuste la obra en consecuencia. Por ejemplo:

  • Para utilizar la VLAN como un puerto en otras conexiones, como un enlace, omita el atributo ip y establezca la configuración IP en la configuración principal.
  • Para utilizar dispositivos de equipo, puente o enlace en la VLAN, adapte los atributos interface_name y type de los puertos que utilice en la VLAN.

Requisitos previos

  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si utiliza un usuario remoto diferente a root cuando ejecuta el libro de jugadas, este usuario tiene los permisos apropiados de sudo en el nodo gestionado.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    node.example.com
  2. Cree el libro de jugadas ~/vlan-ethernet.yml con el siguiente contenido:

    ---
    - name: Configure a VLAN that uses an Ethernet connection
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            # Add an Ethernet profile for the underlying device of the VLAN
            - name: enp1s0
              type: ethernet
    	  interface_name: enp1s0
    	  autoconnect: yes
              state: up
    	  ip:
    	    dhcp4: no
    	    auto6: no
    
            # Define the VLAN profile
            - name: vlan10
              type: vlan
              ip:
                address:
                  - "192.0.2.1/24"
                  - "2001:db8:1::1/64"
                gateway4: 192.0.2.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 192.0.2.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
              vlan_id: 10
    	  parent: enp1s0
              state: up

    El atributo parent del perfil VLAN configura la VLAN para que funcione sobre el dispositivo enp1s0.

  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/vlan-ethernet.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/vlan-ethernet.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook solicite la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en network_connections y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

Capítulo 11. Configurar un puente de red

Un puente de red es un dispositivo de capa de enlace que reenvía el tráfico entre redes basándose en una tabla de direcciones MAC. El puente construye la tabla de direcciones MAC escuchando el tráfico de la red y aprendiendo así qué hosts están conectados a cada red. Por ejemplo, puede utilizar un puente de software en un host Red Hat Enterprise Linux 8 para emular un puente de hardware o en entornos de virtualización, para integrar máquinas virtuales (VM) a la misma red que el host.

Un puente requiere un dispositivo de red en cada red que el puente deba conectar. Cuando se configura un puente, éste se llama controller y los dispositivos que utiliza ports.

Puedes crear puentes en diferentes tipos de dispositivos, como:

  • Dispositivos Ethernet físicos y virtuales
  • Bonos de red
  • Equipos de la red
  • Dispositivos VLAN

Debido al estándar IEEE 802.11 que especifica el uso de tramas de 3 direcciones en Wi-Fi para el uso eficiente del tiempo de aire, no se puede configurar un puente sobre redes Wi-Fi que operen en modo Ad-Hoc o Infraestructura.

11.1. Configuración de un puente de red mediante comandos nmcli

Esta sección explica cómo configurar un puente de red utilizando la utilidad nmcli.

Requisitos previos

Procedimiento

  1. Crear una interfaz de puente:

    # nmcli connection add type bridge con-name bridge0 ifname bridge0

    Este comando crea un puente llamado bridge0, introduzca:

  2. Visualice las interfaces de red y anote los nombres de las interfaces que desea añadir al puente:

    # nmcli device status
    DEVICE  TYPE      STATE         CONNECTION
    enp7s0  ethernet  disconnected  --
    enp8s0  ethernet  disconnected  --
    bond0   bond      connected     bond0
    bond1   bond      connected     bond1
    ...

    En este ejemplo:

    • enp7s0 y enp8s0 no están configurados. Para utilizar estos dispositivos como puertos, añada perfiles de conexión en el siguiente paso.
    • bond0 y bond1 tienen perfiles de conexión existentes. Para utilizar estos dispositivos como puertos, modifique sus perfiles en el siguiente paso.
  3. Asigna las interfaces al puente.

    1. Si las interfaces que desea asignar al puente no están configuradas, cree nuevos perfiles de conexión para ellas:

      # nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp7s0 master bridge0
      # nmcli connection add type ethernet slave-type bridge con-name bridge0-port2 ifname enp8s0 master bridge0

      Estos comandos crean perfiles para enp7s0 y enp8s0, y los añaden a la conexión bridge0.

    2. Si desea asignar un perfil de conexión existente al puente, establezca el parámetro master de estas conexiones en bridge0:

      # nmcli connection modify bond0 master bridge0
      # nmcli connection modify bond1 master bridge0

      Estos comandos asignan los perfiles de conexión existentes denominados bond0 y bond1 a la conexión bridge0.

  4. Configure los ajustes IP del puente. Omita este paso si desea utilizar este puente como puertos de otros dispositivos.

    1. Configure los ajustes de IPv4. Por ejemplo, para configurar una dirección IPv4 estática, la máscara de red, la puerta de enlace predeterminada, el servidor DNS y el dominio de búsqueda DNS de la conexión bridge0, introduzca:

      # nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24'
      # nmcli connection modify bridge0 ipv4.gateway '192.0.2.254'
      # nmcli connection modify bridge0 ipv4.dns '192.0.2.253'
      # nmcli connection modify bridge0 ipv4.dns-search 'example.com'
      # nmcli connection modify bridge0 ipv4.method manual
    2. Configure los ajustes de IPv6. Por ejemplo, para configurar una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS de la conexión bridge0, introduzca:

      # nmcli connection modify bridge0 ipv6.addresses '2001:db8:1::1/64'
      # nmcli connection modify bridge0 ipv6.gateway '2001:db8:1::fffe'
      # nmcli connection modify bridge0 ipv6.dns '2001:db8:1::fffd'
      # nmcli connection modify bridge0 ipv6.dns-search 'example.com'
      # nmcli connection modify bridge0 ipv6.method manual
  5. Opcional: Configure otras propiedades del puente. Por ejemplo, para establecer la prioridad del protocolo de árbol de expansión (STP) de bridge0 a 16384, introduzca:

    # nmcli connection modify bridge0 bridge.priority '16384'

    Por defecto, el STP está activado.

  6. Activa la conexión:

    # nmcli connection up bridge0
  7. Compruebe que los puertos están conectados y que la columna CONNECTION muestra el nombre de la conexión del puerto:

    # nmcli device
    DEVICE   TYPE      STATE      CONNECTION
    ...
    enp7s0   ethernet  connected  bridge0-port1
    enp8s0   ethernet  connected  bridge0-port2

    Red Hat Enterprise Linux activa el controlador y los puertos cuando el sistema arranca. Al activar cualquier conexión de puerto, el controlador también se activa. Sin embargo, en este caso, sólo se activa una conexión de puerto. Por defecto, la activación del controlador no activa automáticamente los puertos. Sin embargo, puede habilitar este comportamiento configurando:

    1. Habilitar el parámetro connection.autoconnect-slaves de la conexión puente:

      # nmcli connection modify bridge0 connection.autoconnect-slaves 1
    2. Reactivar el puente:

      # nmcli connection up bridge0

Pasos de verificación

  • Muestra el estado del enlace de los dispositivos Ethernet que son puertos de un puente específico:

    # ip link show master bridge0
    3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000
        link/ether 52:54:00:62:61:0e brd ff:ff:ff:ff:ff:ff
    4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000
        link/ether 52:54:00:9e:f1:ce brd ff:ff:ff:ff:ff:ff
  • Muestra el estado de los dispositivos Ethernet que son puertos de cualquier dispositivo puente:

    # bridge link show
    3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 100
    4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 100
    5: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 100
    6: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100
    ...

    Para mostrar el estado de un dispositivo Ethernet específico, utilice el comando bridge link show dev ethernet_device_name comando.

Recursos adicionales

11.2. Configuración de un puente de red mediante nm-connection-editor

Esta sección explica cómo configurar un puente de red utilizando la aplicación nm-connection-editor.

Tenga en cuenta que nm-connection-editor sólo puede añadir nuevos puertos a un puente. Para utilizar un perfil de conexión existente como puerto, cree el puente utilizando la utilidad nmcli como se describe en Sección 11.1, “Configuración de un puente de red mediante comandos nmcli”.

Requisitos previos

  • Dos o más dispositivos de red físicos o virtuales están instalados en el servidor.
  • Para utilizar dispositivos Ethernet como puertos del puente, los dispositivos Ethernet físicos o virtuales deben estar instalados en el servidor.
  • Para utilizar dispositivos de equipo, enlace o VLAN como puertos del puente, asegúrese de que estos dispositivos no estén ya configurados.

Procedimiento

  1. Abra un terminal e introduzca nm-connection-editor:

    $ nm-connection-editor
  2. Pulse el botón para añadir una nueva conexión.
  3. Seleccione el tipo de conexión Bridge y haga clic en Crear.
  4. En la pestaña Bridge:

    1. Opcional: Establezca el nombre de la interfaz de puente en el campo Interface name.
    2. Haga clic en el botón Añadir para crear un nuevo perfil de conexión para una interfaz de red y añadir el perfil como puerto al puente.

      1. Seleccione el tipo de conexión de la interfaz. Por ejemplo, seleccione Ethernet para una conexión por cable.
      2. Opcionalmente, establezca un nombre de conexión para el dispositivo de puerto.
      3. Si crea un perfil de conexión para un dispositivo Ethernet, abra la pestaña Ethernet, y seleccione en el campo Device la interfaz de red que desea añadir como puerto al puente. Si ha seleccionado un tipo de dispositivo diferente, configúrelo en consecuencia.
      4. Haga clic en Guardar.
    3. Repita el paso anterior para cada interfaz que desee añadir al puente.

      añadir nic al puente en el editor de conexiones nm

  5. Opcional: Configure más ajustes de puente, como las opciones del protocolo de árbol de expansión (STP).
  6. Configure los ajustes IP del puente. Omita este paso si desea utilizar este puente como puerto de otros dispositivos.

    1. En la pestaña IPv4 Settings, configure los ajustes de IPv4. Por ejemplo, configure una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS:

      puente configuración IPv4 nm editor de conexiones

    2. En la pestaña IPv6 Settings, configure los ajustes de IPv6. Por ejemplo, configure una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS:

      puente configuración IPv6 nm editor de conexiones

  7. Guarda la conexión del puente.
  8. Cerrar nm-connection-editor.

Pasos de verificación

  • Muestra el estado del enlace de los dispositivos Ethernet que son puertos de un puente específico.

    # ip link show master bridge0
    3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000
        link/ether 52:54:00:62:61:0e brd ff:ff:ff:ff:ff:ff
    4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000
        link/ether 52:54:00:9e:f1:ce brd ff:ff:ff:ff:ff:ff
  • Muestra el estado de los dispositivos Ethernet que son puertos en cualquier dispositivo puente:

    # bridge link show
    3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 100
    4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 100
    5: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 100
    6: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100
    ...

    Para mostrar el estado de un dispositivo Ethernet específico, utilice el comando bridge link show dev ethernet_device_name comando.

11.3. Configuración de un puente de red con RHEL System Roles

Puede utilizar el rol de sistema networking RHEL para configurar un puente Linux. Este procedimiento describe cómo configurar un puente de red que utiliza dos dispositivos Ethernet, y establece las direcciones IPv4 e IPv6, las puertas de enlace predeterminadas y la configuración de DNS.

Nota

Establezca la configuración IP en el puente y no en los puertos del puente Linux.

Requisitos previos

  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si utiliza un usuario remoto diferente a root cuando ejecuta el libro de jugadas, este usuario tiene los permisos apropiados de sudo en el nodo gestionado.
  • Dos o más dispositivos de red físicos o virtuales están instalados en el servidor.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    node.example.com
  2. Cree el libro de jugadas ~/bridge-ethernet.yml con el siguiente contenido:

    ---
    - name: Configure a network bridge that uses two Ethernet ports
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            # Define the bridge profile
            - name: bridge0
              type: bridge
              interface_name: bridge0
              ip:
                address:
                  - "192.0.2.1/24"
                  - "2001:db8:1::1/64"
                gateway4: 192.0.2.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 192.0.2.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
              state: up
    
            # Add an Ethernet profile to the bridge
            - name: bridge0-port1
              interface_name: enp7s0
              type: ethernet
              master: bridge0
              slave_type: bridge
              state: up
    
            # Add a second Ethernet profile to the bridge
            - name: bridge0-port2
              interface_name: enp8s0
              type: ethernet
              master: bridge0
              slave_type: bridge
              state: up
  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/bridge-ethernet.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/bridge-ethernet.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook solicite la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en network_connections y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

Capítulo 12. Configuración de la red en equipo

Esta sección describe los fundamentos de la formación de equipos de red, las diferencias entre bonding y teaming y cómo configurar un equipo de red en Red Hat Enterprise Linux 8.

Puedes crear equipos de red en diferentes tipos de dispositivos, como:

  • Dispositivos Ethernet físicos y virtuales
  • Bonos de red
  • Puentes de red
  • Dispositivos VLAN

12.1. Comprensión de los equipos de red

La agrupación de redes es una función que combina o agrega interfaces de red para proporcionar una interfaz lógica con mayor rendimiento o redundancia.

El network teaming utiliza un controlador de kernel para implementar el manejo rápido de los flujos de paquetes, así como bibliotecas y servicios de espacio de usuario para otras tareas. De este modo, el network teaming es una solución fácilmente ampliable y escalable para los requisitos de equilibrio de carga y redundancia.

Importante

Algunas características de la unión de redes, como el mecanismo de conmutación por error, no admiten conexiones directas por cable sin un conmutador de red. Para más detalles, consulte ¿Se admite la unión con conexión directa mediante cables cruzados?

12.2. Comprender el comportamiento por defecto de las interfaces de los controladores y de los puertos

Tenga en cuenta el siguiente comportamiento por defecto de, cuando la gestión o la solución de problemas de equipo o interfaces de puerto de enlace utilizando el servicio NetworkManager:

  • Al iniciar la interfaz del controlador no se inician automáticamente las interfaces de los puertos.
  • Al iniciar una interfaz de puerto siempre se inicia la interfaz del controlador.
  • Al detener la interfaz del controlador también se detiene la interfaz del puerto.
  • Un controlador sin puertos puede iniciar conexiones IP estáticas.
  • Un controlador sin puertos espera los puertos al iniciar las conexiones DHCP.
  • Un controlador con una conexión DHCP en espera de puertos se completa cuando se añade un puerto con un portador.
  • Un controlador con una conexión DHCP en espera de puertos sigue esperando cuando se añade un puerto sin portador.

12.3. Comparación de las características de los equipos de red y de los enlaces

Conozca las características que admiten los equipos de red y los bonos de red:

CaracterísticaVínculo de redEquipo de la red

Política de transmisión de emisiones

Política de Tx Round-robin

Política de transmisión de respaldo activo

Soporte de LACP (802.3ad)

Sí (sólo activo)

Política de transmisión basada en Hash

El usuario puede establecer la función hash

No

Soporte de equilibrio de carga de transmisión (TLB)

Selección de puerto LACP hash

Equilibrio de carga para el soporte de LACP

No

Supervisión de enlaces de Ethtool

Monitorización de enlaces ARP

Supervisión de enlaces NS/NA (IPv6)

No

Retrasos en la subida y bajada de los puertos

Prioridades portuarias y adherencia (mejora de la opción "primaria")

No

Configuración separada de la supervisión de los enlaces por puerto

No

Configuración de la monitorización de múltiples enlaces

Limitado

Ruta de Tx/Rx sin bloqueo

No (rwlock)

Sí (RCU)

Soporte de VLAN

Control del espacio de usuario en tiempo de ejecución

Limitado

Lógica en el espacio del usuario

No

Extensibilidad

Duro

Fácil

Diseño modular

No

Gastos generales de funcionamiento

Bajo

Muy bajo

Interfaz D-Bus

No

Apilamiento de varios dispositivos

Configuración cero mediante LLDP

No

(en planificación)

Soporte de NetworkManager

12.5. Instalación del servicio teamd

Para configurar un equipo de red en NetworkManager, se requiere el servicio teamd y el complemento de equipo para NetworkManager. Ambos están instalados en Red Hat Enterprise Linux 8 por defecto. Esta sección describe cómo instalar los paquetes necesarios en caso de que los elimine.

Requisitos previos

  • Se asigna una suscripción activa de Red Hat al host.

Procedimiento

  1. Instale los paquetes teamd y NetworkManager-team:

    # yum install teamd NetworkManager-team

12.6. Configuración de un equipo de red mediante comandos nmcli

Esta sección describe cómo configurar un equipo de red utilizando la utilidad nmcli.

Requisitos previos

Procedimiento

  1. Crear una interfaz de equipo:

    # nmcli connection add type team con-name team0 ifname team0 team.runner activebackup

    Este comando crea un equipo de red llamado team0 que utiliza el corredor activebackup.

  2. Opcionalmente, establezca un observador de enlaces. Por ejemplo, para establecer el observador de enlaces ethtool en el perfil de conexión team0:

    # nmcli connection modify team0 team.link-watchers "name=ethtool"

    Los observadores de enlaces admiten diferentes parámetros. Para establecer los parámetros de un observador de enlaces, especifíquelos separados por espacios en la propiedad name. Tenga en cuenta que la propiedad name debe estar rodeada de comillas. Por ejemplo, para utilizar el observador de enlaces ethtool y establecer su parámetro delay-up a 2500 milisegundos (2,5 segundos):

    # nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2500"

    Para establecer varios observadores de enlaces y cada uno de ellos con parámetros específicos, los observadores de enlaces deben estar separados por una coma. El siguiente ejemplo establece el observador de enlaces ethtool con el parámetro delay-up y el observador de enlaces arp_ping con los parámetros source-host y target-host:

    # nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2, name=arp_ping source-host=192.0.2.1 target-host=192.0.2.2"
  3. Visualice las interfaces de red y anote los nombres de las interfaces que desea añadir al equipo:

    # nmcli device status
    DEVICE  TYPE      STATE         CONNECTION
    enp7s0  ethernet  disconnected  --
    enp8s0  ethernet  disconnected  --
    bond0   bond      connected  bond0
    bond1   bond      connected  bond1
    ...

    En este ejemplo:

    • enp7s0 y enp8s0 no están configurados. Para utilizar estos dispositivos como puertos, añada perfiles de conexión en el siguiente paso. Tenga en cuenta que sólo puede utilizar interfaces Ethernet en un equipo que no esté asignado a ninguna conexión.
    • bond0 y bond1 tienen perfiles de conexión existentes. Para utilizar estos dispositivos como puertos, modifique sus perfiles en el siguiente paso.
  4. Asigne las interfaces de los puertos al equipo:

    1. Si las interfaces que desea asignar al equipo no están configuradas, cree nuevos perfiles de conexión para ellas:

      # nmcli connection add type ethernet slave-type team con-name team0-port1 ifname enp7s0 master team0
      # nmcli connection add type ethernet slave-type team con-name team0-port2 ifname enp8s0 master team0

      . Estos comandos crean perfiles para enp7s0 y enp8s0, y los añaden a la conexión team0.

    2. Para asignar un perfil de conexión existente al equipo, establezca el parámetro master de estas conexiones en team0:

      # nmcli connection modify bond0 master team0
      # nmcli connection modify bond1 master team0

      Estos comandos asignan los perfiles de conexión existentes denominados bond0 y bond1 a la conexión team0.

  5. Configure los ajustes de IP del equipo. Omita este paso si desea utilizar este equipo como puertos de otros dispositivos.

    1. Configure los ajustes de IPv4. Por ejemplo, para establecer una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS la conexión team0, introduzca:

      # nmcli connection modify team0 ipv4.addresses '192.0.2.1/24'
      # nmcli connection modify team0 ipv4.gateway '192.0.2.254'
      # nmcli connection modify team0 ipv4.dns '192.0.2.253'
      # nmcli connection modify team0 ipv4.dns-search 'example.com'
      # nmcli connection modify team0 ipv4.method manual
    2. Configure los ajustes de IPv6. Por ejemplo, para configurar una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS de la conexión team0, introduzca:

      # nmcli connection modify team0 ipv6.addresses '2001:db8:1::1/64'
      # nmcli connection modify team0 ipv6.gateway '2001:db8:1::fffe'
      # nmcli connection modify team0 ipv6.dns '2001:db8:1::fffd'
      # nmcli connection modify team0 ipv6.dns-search 'example.com'
      # nmcli connection modify team0 ipv6.method manual
  6. Activa la conexión:

    # nmcli connection up team0

Pasos de verificación

  • Muestra el estado del equipo:

    # teamdctl team0 state
    setup:
      runner: activebackup
    ports:
      enp7s0
        link watches:
          link summary: up
          instance[link_watch_0]:
            name: ethtool
            link: up
            down count: 0
      enp8s0
        link watches:
          link summary: up
          instance[link_watch_0]:
            name: ethtool
            link: up
            down count: 0
    runner:
      active port: enp7s0

    En este ejemplo, los dos puertos están en funcionamiento.

Recursos adicionales

12.7. Configuración de un equipo de red mediante nm-connection-editor

Esta sección describe cómo configurar un equipo de red utilizando la aplicación nm-connection-editor.

Tenga en cuenta que nm-connection-editor sólo puede añadir nuevos puertos a un equipo. Para utilizar un perfil de conexión existente como puerto, cree el equipo utilizando la utilidad nmcli como se describe en Sección 12.6, “Configuración de un equipo de red mediante comandos nmcli”.

Requisitos previos

  • Dos o más dispositivos de red físicos o virtuales están instalados en el servidor.
  • Para utilizar dispositivos Ethernet como puertos del equipo, los dispositivos Ethernet físicos o virtuales deben estar instalados en el servidor.
  • Para utilizar dispositivos de equipo, enlace o VLAN como puertos del equipo, asegúrese de que estos dispositivos no estén ya configurados.

Procedimiento

  1. Abra un terminal e introduzca nm-connection-editor:

    $ nm-connection-editor
  2. Pulse el botón para añadir una nueva conexión.
  3. Seleccione el tipo de conexión Team y haga clic en Crear.
  4. En la pestaña Team:

    1. Opcional: Establezca el nombre de la interfaz del equipo en el campo Interface name.
    2. Haga clic en el botón Agregar para añadir un nuevo perfil de conexión para una interfaz de red y añadir el perfil como un puerto al equipo.

      1. Seleccione el tipo de conexión de la interfaz. Por ejemplo, seleccione Ethernet para una conexión por cable.
      2. Opcional: Establezca un nombre de conexión para el puerto.
      3. Si crea un perfil de conexión para un dispositivo Ethernet, abra la pestaña Ethernet, y seleccione en el campo Device la interfaz de red que desea añadir como puerto al equipo. Si ha seleccionado un tipo de dispositivo diferente, configúrelo en consecuencia. Tenga en cuenta que sólo puede utilizar interfaces Ethernet en un equipo que no esté asignado a ninguna conexión.
      4. Haga clic en Guardar.
    3. Repita el paso anterior para cada interfaz que desee añadir al equipo.

      añadir nic al equipo en el editor de conexiones de nm

    4. Haga clic en el botón Avanzado para establecer opciones avanzadas para la conexión del equipo.

      1. En la pestaña Runner, seleccione el corredor.
      2. En la pestaña Link Watcher, configure el observador de enlaces y sus ajustes opcionales.
      3. Haga clic en Aceptar.
  5. Configure los ajustes de IP del equipo. Omita este paso si desea utilizar este equipo como puerto de otros dispositivos.

    1. En la pestaña IPv4 Settings, configure los ajustes de IPv4. Por ejemplo, configure una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS equipo Configuración IPv4 nm editor de conexiones
    2. En la pestaña IPv6 Settings, configure los ajustes de IPv6. Por ejemplo, establezca una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS equipo de configuración de IPv6 nm editor de conexiones
  6. Guarda la conexión del equipo.
  7. Cerrar nm-connection-editor.

Pasos de verificación

  • Muestra el estado del equipo:

    # teamdctl team0 state
    setup:
      runner: activebackup
    ports:
      enp7s0
        link watches:
          link summary: up
          instance[link_watch_0]:
            name: ethtool
            link: up
            down count: 0
      enp8s0
        link watches:
          link summary: up
          instance[link_watch_0]:
            name: ethtool
            link: up
            down count: 0
    runner:
      active port: enp7s0

Recursos adicionales

Capítulo 13. Configuración de la unión de redes

Esta sección describe los fundamentos de la vinculación de redes, las diferencias entre vinculación y teaming y cómo configurar una vinculación de redes en Red Hat Enterprise Linux 8.

Puedes crear bonos en diferentes tipos de dispositivos, como:

  • Dispositivos Ethernet físicos y virtuales
  • Puentes de red
  • Equipos de la red
  • Dispositivos VLAN

13.1. Comprender la vinculación de la red

La unión de redes es un método para combinar o agregar interfaces de red para proporcionar una interfaz lógica con mayor rendimiento o redundancia.

Los modos active-backup, balance-tlb, y balance-alb no requieren ninguna configuración específica del conmutador de red. Sin embargo, otros modos de enlace requieren configurar el conmutador para agregar los enlaces. Por ejemplo, los conmutadores Cisco requieren EtherChannel para los modos 0, 2 y 3, pero para el modo 4, se requiere el protocolo de control de agregación de enlaces (LACP) y EtherChannel.

Para más detalles, consulte la documentación de su conmutador y el CÓMO del controlador de enlace Ethernet de Linux.

Importante

Algunas funciones de enlace de red, como el mecanismo de conmutación por error, no admiten conexiones directas por cable sin un conmutador de red. Para más detalles, consulte la sección ¿Se admite la conexión directa con cables cruzados? Solución KCS.

13.2. Comprender el comportamiento por defecto de las interfaces de los controladores y de los puertos

Tenga en cuenta el siguiente comportamiento por defecto de, cuando la gestión o la solución de problemas de equipo o interfaces de puerto de enlace utilizando el servicio NetworkManager:

  • Al iniciar la interfaz del controlador no se inician automáticamente las interfaces de los puertos.
  • Al iniciar una interfaz de puerto siempre se inicia la interfaz del controlador.
  • Al detener la interfaz del controlador también se detiene la interfaz del puerto.
  • Un controlador sin puertos puede iniciar conexiones IP estáticas.
  • Un controlador sin puertos espera los puertos al iniciar las conexiones DHCP.
  • Un controlador con una conexión DHCP en espera de puertos se completa cuando se añade un puerto con un portador.
  • Un controlador con una conexión DHCP en espera de puertos sigue esperando cuando se añade un puerto sin portador.

13.3. Comparación de las características de los equipos de red y de los enlaces

Conozca las características que admiten los equipos de red y los bonos de red:

CaracterísticaVínculo de redEquipo de la red

Política de transmisión de emisiones

Política de Tx Round-robin

Política de transmisión de respaldo activo

Soporte de LACP (802.3ad)

Sí (sólo activo)

Política de transmisión basada en Hash

El usuario puede establecer la función hash

No

Soporte de equilibrio de carga de transmisión (TLB)

Selección de puerto LACP hash

Equilibrio de carga para el soporte de LACP

No

Supervisión de enlaces de Ethtool

Monitorización de enlaces ARP

Supervisión de enlaces NS/NA (IPv6)

No

Retrasos en la subida y bajada de los puertos

Prioridades portuarias y adherencia (mejora de la opción "primaria")

No

Configuración separada de la supervisión de los enlaces por puerto

No

Configuración de la monitorización de múltiples enlaces

Limitado

Ruta de Tx/Rx sin bloqueo

No (rwlock)

Sí (RCU)

Soporte de VLAN

Control del espacio de usuario en tiempo de ejecución

Limitado

Lógica en el espacio del usuario

No

Extensibilidad

Duro

Fácil

Diseño modular

No

Gastos generales de funcionamiento

Bajo

Muy bajo

Interfaz D-Bus

No

Apilamiento de varios dispositivos

Configuración cero mediante LLDP

No

(en planificación)

Soporte de NetworkManager

13.4. Configuración del conmutador ascendente en función de los modos de unión

En la siguiente tabla se describen los ajustes que debe aplicar al conmutador ascendente en función del modo de enlace:

Modo de uniónConfiguración en el conmutador

0 - balance-rr

Requiere Etherchannel estático habilitado (no negociado por LACP)

1 - active-backup

Requiere puertos autónomos

2 - balance-xor

Requiere Etherchannel estático habilitado (no negociado por LACP)

3 - broadcast

Requiere Etherchannel estático habilitado (no negociado por LACP)

4 - 802.3ad

Requiere Etherchannel negociado con LACP habilitado

5 - balance-tlb

Requiere puertos autónomos

6 - balance-alb

Requiere puertos autónomos

Para configurar estos ajustes en su conmutador, consulte la documentación del mismo.

13.5. Configuración de un enlace de red mediante comandos nmcli

Esta sección describe cómo configurar un enlace de red utilizando los comandos de nmcli.

Requisitos previos

Procedimiento

  1. Crear una interfaz de enlace:

    # nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"

    Este comando crea un enlace llamado bond0 que utiliza el modo active-backup.

    Para establecer adicionalmente un intervalo de monitorización de la interfaz independiente del medio (MII), añada la opción miimon=interval a la propiedad bond.options. Por ejemplo, para utilizar el mismo comando pero, adicionalmente, establecer el intervalo de monitoreo de MII a 1000 milisegundos (1 segundo), ingrese:

    # nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"
  2. Visualice las interfaces de red y anote los nombres de las interfaces que piensa añadir al enlace:

    # nmcli device status
    DEVICE   TYPE      STATE         CONNECTION
    enp7s0   ethernet  disconnected  --
    enp8s0   ethernet  disconnected  --
    bridge0  bridge    connected     bridge0
    bridge1  bridge    connected     bridge1
    ...

    En este ejemplo:

    • enp7s0 y enp8s0 no están configurados. Para utilizar estos dispositivos como puertos, añada perfiles de conexión en el siguiente paso.
    • bridge0 y bridge1 tienen perfiles de conexión existentes. Para utilizar estos dispositivos como puertos, modifique sus perfiles en el siguiente paso.
  3. Asignar interfaces al enlace:

    1. Si las interfaces que desea asignar al enlace no están configuradas, cree nuevos perfiles de conexión para ellas:

      # nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname enp7s0 master bond0
      # nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname enp8s0 master bond0

      Estos comandos crean perfiles para enp7s0 y enp8s0, y los añaden a la conexión bond0.

    2. Para asignar un perfil de conexión existente al enlace, establezca el parámetro master de estas conexiones en bond0:

      # nmcli connection modify bridge0 master bond0
      # nmcli connection modify bridge1 master bond0

      Estos comandos asignan los perfiles de conexión existentes denominados bridge0 y bridge1 a la conexión bond0.

  4. Configure los ajustes IP del enlace. Omita este paso si desea utilizar este enlace como puerto de otros dispositivos.

    1. Configure los ajustes de IPv4. Por ejemplo, para establecer una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS para la conexión bond0, introduzca:

      # nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24'
      # nmcli connection modify bond0 ipv4.gateway '192.0.2.254'
      # nmcli connection modify bond0 ipv4.dns '192.0.2.253'
      # nmcli connection modify bond0 ipv4.dns-search 'example.com'
      # nmcli connection modify bond0 ipv4.method manual
    2. Configure los ajustes de IPv6. Por ejemplo, para establecer una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS para la conexión bond0, introduzca:

      # nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64
      # nmcli connection modify bond0 ipv6.gateway '2001:db8:1::fffe'
      # nmcli connection modify bond0 ipv6.dns '2001:db8:1::fffd'
      # nmcli connection modify bond0 ipv6.dns-search 'example.com'
      # nmcli connection modify bond0 ipv6.method manual
  5. Activa la conexión:

    # nmcli connection up bond0
  6. Compruebe que los puertos están conectados y que la columna CONNECTION muestra el nombre de la conexión del puerto:

    # nmcli device
    DEVICE   TYPE      STATE      CONNECTION
    ...
    enp7s0   ethernet  connected  bond0-port1
    enp8s0   ethernet  connected  bond0-port2

    Red Hat Enterprise Linux activa el controlador y los dispositivos de puerto cuando el sistema arranca. Al activar cualquier conexión de puerto, el controlador también se activa. Sin embargo, en este caso, sólo se activa una conexión de puerto. Por defecto, la activación del controlador no activa automáticamente los puertos. Sin embargo, puede habilitar este comportamiento configurando:

    1. Habilitar el parámetro connection.autoconnect-slaves de la conexión del enlace:

      # nmcli connection modify bond0 connection.autoconnect-slaves 1
    2. Reactivar el puente:

      # nmcli connection up bond0

Pasos de verificación

  1. Muestra el estado del bono:

    # cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: enp7s0
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    Slave Interface: enp7s0
    MII Status: up
    Speed: Unknown
    Duplex: Unknown
    Link Failure Count: 0
    Permanent HW addr: 52:54:00:d5:e0:fb
    Slave queue ID: 0
    
    Slave Interface: enp8s0
    MII Status: up
    Speed: Unknown
    Duplex: Unknown
    Link Failure Count: 0
    Permanent HW addr: 52:54:00:b2:e2:63
    Slave queue ID: 0

    En este ejemplo, los dos puertos están en funcionamiento.

  2. Para verificar que la conmutación por error de enlace funciona:

    1. Retire temporalmente el cable de red del host. Tenga en cuenta que no hay ningún método para probar adecuadamente los eventos de fallo de enlace utilizando la línea de comandos.
    2. Muestra el estado del bono:

      # cat /proc/net/bonding/bond0

Recursos adicionales

13.6. Configuración de un enlace de red mediante nm-connection-editor

Esta sección describe cómo configurar un enlace de red utilizando la aplicación nm-connection-editor.

Tenga en cuenta que nm-connection-editor sólo puede añadir nuevos puertos a un enlace. Para utilizar un perfil de conexión existente como puerto, cree el enlace utilizando la utilidad nmcli como se describe en Sección 13.5, “Configuración de un enlace de red mediante comandos nmcli”.

Requisitos previos

  • Dos o más dispositivos de red físicos o virtuales están instalados en el servidor.
  • Para utilizar dispositivos Ethernet como puertos del enlace, los dispositivos Ethernet físicos o virtuales deben estar instalados en el servidor.
  • Para utilizar dispositivos de equipo, enlace o VLAN como puertos del enlace, asegúrese de que estos dispositivos no estén ya configurados.

Procedimiento

  1. Abra un terminal e introduzca nm-connection-editor:

    $ nm-connection-editor
  2. Pulse el botón para añadir una nueva conexión.
  3. Seleccione el tipo de conexión Bond y haga clic en Crear.
  4. En la pestaña Bond:

    1. Opcional: Establezca el nombre de la interfaz de enlace en el campo Interface name.
    2. Haga clic en el botón Agregar para añadir una interfaz de red como puerto al enlace.

      1. Seleccione el tipo de conexión de la interfaz. Por ejemplo, seleccione Ethernet para una conexión por cable.
      2. Opcional: Establezca un nombre de conexión para el puerto.
      3. Si crea un perfil de conexión para un dispositivo Ethernet, abra la pestaña Ethernet, y seleccione en el campo Device la interfaz de red que desea añadir como puerto al enlace. Si ha seleccionado un tipo de dispositivo diferente, configúrelo en consecuencia. Tenga en cuenta que sólo puede utilizar interfaces Ethernet en un enlace que no esté configurado.
      4. Haga clic en Guardar.
    3. Repita el paso anterior para cada interfaz que desee añadir al enlace:

      añadir nic a bond en el editor de conexiones nm

    4. Opcional: Establezca otras opciones, como el intervalo de supervisión de la interfaz independiente de medios (MII).
  5. Configure los ajustes IP del enlace. Omita este paso si desea utilizar este enlace como puerto de otros dispositivos.

    1. En la pestaña IPv4 Settings, configure los ajustes de IPv4. Por ejemplo, configure una dirección IPv4 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS:

      enlace de configuración de IPv4 nm editor de conexión

    2. En la pestaña IPv6 Settings, configure los ajustes de IPv6. Por ejemplo, configure una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS:

      enlace de la configuración de IPv6 nm editor de conexión

  6. Haga clic en Guardar para guardar la conexión de enlace.
  7. Cerrar nm-connection-editor.

Pasos de verificación

  • Ver el estado de la fianza:

    $ cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: enp7s0
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    Slave Interface: enp7s0
    MII Status: up
    Speed: Unknown
    Duplex: Unknown
    Link Failure Count: 0
    Permanent HW addr: 52:54:00:d5:e0:fb
    Slave queue ID: 0
    
    Slave Interface: enp8s0
    MII Status: up
    Speed: Unknown
    Duplex: Unknown
    Link Failure Count: 0
    Permanent HW addr: 52:54:00:b2:e2:63
    Slave queue ID: 0

    En este ejemplo, los dos puertos están en funcionamiento.

13.7. Configuración de un enlace de red usando RHEL System Roles

Puede utilizar el rol de sistema network RHEL para configurar un enlace de red. Este procedimiento describe cómo configurar un enlace en modo de respaldo activo que utiliza dos dispositivos Ethernet, y establece una dirección IPv4 e IPv6, puertas de enlace predeterminadas y la configuración de DNS.

Nota

Establezca la configuración IP en el puente y no en los puertos del puente Linux.

Requisitos previos

  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si utiliza un usuario remoto diferente a root cuando ejecuta el libro de jugadas, este usuario tiene los permisos apropiados de sudo en el nodo gestionado.
  • Dos o más dispositivos de red físicos o virtuales están instalados en el servidor.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    node.example.com
  2. Cree el libro de jugadas ~/bond-ethernet.yml con el siguiente contenido:

    ---
    - name: Configure a network bond that uses two Ethernet ports
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            # Define the bond profile
            - name: bond0
              type: bond
              interface_name: bond0
              ip:
                address:
                  - "192.0.2.1/24"
                  - "2001:db8:1::1/64"
                gateway4: 192.0.2.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 192.0.2.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
              bond:
                mode: active-backup
              state: up
    
            # Add an Ethernet profile to the bond
            - name: bond0-port1
              interface_name: enp7s0
              type: ethernet
              master: bond0
              state: up
    
            # Add a second Ethernet profile to the bond
            - name: bond0-port2
              interface_name: enp8s0
              type: ethernet
              master: bond0
              state: up
  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/bond-ethernet.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/bond-ethernet.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook solicite la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en network_connections y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

13.8. Creación de un enlace de red para permitir el cambio entre una conexión Ethernet y una inalámbrica sin interrumpir la VPN

Los usuarios de RHEL que conectan su estación de trabajo a la red de su empresa suelen utilizar una VPN para acceder a recursos remotos. Sin embargo, si la estación de trabajo cambia entre una conexión Ethernet y Wi-Fi, por ejemplo, si se libera un portátil de una estación de acoplamiento con una conexión Ethernet, la conexión VPN se interrumpe. Para evitar este problema, puede crear un enlace de red que utilice la conexión Ethernet y Wi-Fi en el modo active-backup.

Requisitos previos

  • El host contiene un dispositivo Ethernet y otro Wi-Fi.
  • Se ha creado un perfil de conexión Ethernet y Wi-Fi NetworkManager y ambas conexiones funcionan de forma independiente.

    Este procedimiento utiliza los siguientes perfiles de conexión para crear un enlace de red denominado bond0:

    • Docking_station asociado al dispositivo Ethernet enp11s0u1
    • Wi-Fi asociado al dispositivo Wi-Fi wlp61s0

Procedimiento

  1. Crear una interfaz de enlace en el modo active-backup:

    # nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"

    Este comando nombra tanto la interfaz como el perfil de conexión bond0.

  2. Configure los ajustes IPv4 del enlace:

    • Si un servidor DHCP en su red asigna direcciones IPv4 a los hosts, no es necesario realizar ninguna acción.
    • Si su red local requiere direcciones IPv4 estáticas, configure la dirección, la máscara de red, la puerta de enlace predeterminada, el servidor DNS y el dominio de búsqueda DNS en la conexión bond0:

      # nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24'
      # nmcli connection modify bond0 ipv4.gateway '192.0.2.254'
      # nmcli connection modify bond0 ipv4.dns '192.0.2.253'
      # nmcli connection modify bond0 ipv4.dns-search 'example.com'
      # nmcli connection modify bond0 ipv4.method manual
  3. Configure los ajustes IPv6 del enlace:

    • Si su router o un servidor DHCP en su red asigna direcciones IPv6 a los hosts, no es necesario realizar ninguna acción.
    • Si su red local requiere direcciones IPv6 estáticas, configure la dirección, la máscara de red, la puerta de enlace predeterminada, el servidor DNS y el dominio de búsqueda DNS en la conexión bond0:

      # nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64'
      # nmcli connection modify bond0 ipv6.gateway '2001:db8:1::fffe'
      # nmcli connection modify bond0 ipv6.dns '2001:db8:1::fffd'
      # nmcli connection modify bond0 ipv6.dns-search 'example.com'
      # nmcli connection modify bond0 ipv6.method manual
  4. Muestra los perfiles de conexión:

    # nmcli connection show
    NAME             UUID                                  TYPE      DEVICE
    Docking_station  256dd073-fecc-339d-91ae-9834a00407f9  ethernet  enp11s0u1
    Wi-Fi            1f1531c7-8737-4c60-91af-2d21164417e8  wifi      wlp61s0
    ...

    En los siguientes pasos se necesitan los nombres de los perfiles de conexión y el nombre del dispositivo Ethernet.

  5. Asigne el perfil de conexión de la conexión Ethernet al enlace:

    # nmcli connection modify Docking_station master bond0
  6. Asigna el perfil de conexión de la conexión Wi-Fi al enlace:

    # nmcli connection modify Wi-Fi master bond0
  7. Si su red Wi-Fi utiliza el filtrado MAC para permitir que sólo accedan a la red las direcciones MAC de una lista permitida, configure que NetworkManager asigne dinámicamente la dirección MAC del puerto activo al enlace:

    # nmcli connection modify bond0 bond.options fail_over_mac=1

    Con esta configuración, debe establecer sólo la dirección MAC del dispositivo Wi-Fi en la lista de permitidos en lugar de la dirección MAC de ambos dispositivos, Ethernet y Wi-Fi.

  8. Establezca el dispositivo asociado a la conexión Ethernet como dispositivo primario del enlace:

    # nmcli con modify bond0 bond.options "primary=enp11s0u1"

    Con esta configuración, el enlace siempre utiliza la conexión Ethernet si está disponible.

  9. Configure que NetworkManager active automáticamente los puertos cuando se active el dispositivo bond0:

    # nmcli connection modify bond0 connection.autoconnect-slaves 1
  10. Active la conexión bond0:

    # nmcli connection up bond0

Pasos de verificación

  • Muestra el dispositivo actualmente activo, el estado del enlace y sus puertos:

    # cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
    Primary Slave: enp11s0u1 (primary_reselect always)
    Currently Active Slave: enp11s0u1
    MII Status: up
    MII Polling Interval (ms): 1
    Up Delay (ms): 0
    Down Delay (ms): 0
    Peer Notification Delay (ms): 0
    
    Slave Interface: enp11s0u1
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:53:00:59:da:b7
    Slave queue ID: 0
    
    Slave Interface: wlp61s0
    MII Status: up
    Speed: Unknown
    Duplex: Unknown
    Link Failure Count: 2
    Permanent HW addr: 00:53:00:b3:22:ba
    Slave queue ID: 0

Capítulo 14. Configurar una conexión VPN

Esta sección explica cómo configurar una conexión de red privada virtual (VPN).

Una VPN es una forma de conectarse a una red local a través de Internet. IPsec proporcionada por Libreswan es el método preferido para crear una VPN. Libreswan es una implementación de espacio de usuario IPsec para VPN. Una VPN permite la comunicación entre su LAN y otra LAN remota mediante la creación de un túnel a través de una red intermedia como Internet. Por razones de seguridad, un túnel VPN siempre utiliza autenticación y encriptación. Para las operaciones criptográficas, Libreswan utiliza la biblioteca NSS.

14.1. Configuración de una conexión VPN con el centro de control

Este procedimiento describe cómo configurar una conexión VPN utilizando control-center.

Requisitos previos

  • El paquete NetworkManager-libreswan-gnome está instalado.

Procedimiento

  1. Pulse la tecla Super, escriba Settings, y pulse Enter para abrir la aplicación control-center.
  2. Seleccione la entrada Network de la izquierda.
  3. Haga clic en el icono .
  4. Seleccione VPN.
  5. Seleccione la entrada del menú Identity para ver las opciones básicas de configuración:

    General

    Gateway - El nombre o la dirección IP de la pasarela VPN remota.

    Authentication

    Type

    • IKEv2 (Certificate)- el cliente se autentifica mediante un certificado. Es más seguro (por defecto).
    • IKEv1 (XAUTH) - el cliente se autentifica mediante un nombre de usuario y una contraseña, o una clave precompartida (PSK).

      Los siguientes ajustes de configuración están disponibles en la sección Advanced:

      Figura 14.1. Opciones avanzadas de una conexión VPN

      networking vpn advanced options
      Aviso

      Cuando se configura una conexión VPN basada en IPsec utilizando la aplicación gnome-control-center, el diálogo Advanced muestra la configuración, pero no permite ningún cambio. Como consecuencia, los usuarios no pueden cambiar ninguna opción avanzada de IPsec. Utilice en su lugar las herramientas nm-connection-editor o nmcli para realizar la configuración de las propiedades avanzadas.

      Identification

    • Domain - Si es necesario, introduzca el nombre de dominio.

      Security

    • Phase1 Algorithms - corresponde al parámetro ike Libreswan - introduzca los algoritmos que se utilizarán para autenticar y establecer un canal cifrado.
    • Phase2 Algorithms - corresponde al parámetro esp Libreswan - introduzca los algoritmos que se utilizarán para las negociaciones IPsec.

      Marque el campo Disable PFS para desactivar el Perfect Forward Secrecy (PFS) para asegurar la compatibilidad con servidores antiguos que no soportan PFS.

    • Phase1 Lifetime - corresponde al parámetro ikelifetime Libreswan - cuánto tiempo será válida la clave utilizada para cifrar el tráfico.
    • Phase2 Lifetime - corresponde al parámetro salifetime Libreswan - cuánto tiempo debe durar una instancia particular de una conexión antes de expirar.

      Tenga en cuenta que la clave de cifrado debe cambiarse de vez en cuando por razones de seguridad.

    • Remote network - corresponde al parámetro rightsubnet Libreswan - la red privada remota de destino a la que se debe llegar a través de la VPN.

      Marque el campo narrowing para habilitar el estrechamiento. Tenga en cuenta que sólo es efectivo en la negociación IKEv2.

    • Enable fragmentation - corresponde al parámetro fragmentation Libreswan - permite o no la fragmentación de IKE. Los valores válidos son yes (por defecto) o no.
    • Enable Mobike - corresponde al parámetro mobike Libreswan - si se permite el Protocolo de Movilidad y Multihoming (MOBIKE, RFC 4555) para permitir que una conexión migre su punto final sin necesidad de reiniciar la conexión desde cero. Esto se utiliza en dispositivos móviles que cambian entre conexiones de datos por cable, inalámbricas o móviles. Los valores son no (por defecto) o yes.
  6. Seleccione la entrada del menú IPv4:

    IPv4 Method

    • Automatic (DHCP) - Elija esta opción si la red a la que se conecta utiliza anuncios de router (RA) o un servidor DHCP para asignar direcciones dinámicas IP.
    • Link-Local Only - Elija esta opción si la red a la que se conecta no tiene un servidor DHCP y no desea asignar manualmente las direcciones IP. Se asignarán direcciones aleatorias según RFC 3927 con el prefijo 169.254/16.
    • Manual - Elija esta opción si desea asignar manualmente las direcciones de IP.
    • Disable - IPv4 está desactivado para esta conexión.

      DNS

      En la sección DNS, cuando Automatic es ON, cámbialo por OFF para introducir la dirección IP de un servidor DNS que quieras utilizar separando las IPs por comas.

      Routes

      Tenga en cuenta que en la sección Routes, cuando Automatic es ON, se utilizan las rutas de DHCP, pero también puede añadir rutas estáticas adicionales. Cuando OFF, sólo se utilizan rutas estáticas.

    • Address - Introduzca la dirección IP de una red o host remoto.
    • Netmask - La máscara de red o la longitud del prefijo de la dirección IP introducida anteriormente.
    • Gateway - La dirección IP de la puerta de enlace que conduce a la red remota o al host introducido anteriormente.
    • Metric - Un coste de red, un valor de preferencia para dar a esta ruta. Los valores más bajos serán preferidos sobre los valores más altos.

      Use this connection only for resources on its network

      Seleccione esta casilla para evitar que la conexión se convierta en la ruta por defecto. La selección de esta opción significa que sólo el tráfico destinado específicamente a las rutas aprendidas automáticamente a través de la conexión o introducidas aquí manualmente se enruta a través de la conexión.

  7. Para configurar IPv6 en una conexión VPN, seleccione la entrada del menú IPv6:

    IPv6 Method

    • Automatic - Elija esta opción para utilizar IPv6 Stateless Address AutoConfiguration (SLAAC) para crear una configuración automática y sin estado basada en la dirección del hardware y en los anuncios del router (RA).
    • Automatic, DHCP only - Elija esta opción para no utilizar RA, sino solicitar información a DHCPv6 directamente para crear una configuración con estado.
    • Link-Local Only - Elija esta opción si la red a la que se conecta no tiene un servidor DHCP y no desea asignar manualmente las direcciones IP. Se asignarán direcciones aleatorias según RFC 4862 con el prefijo FE80::0.
    • Manual - Elija esta opción si desea asignar manualmente las direcciones de IP.
    • Disable - IPv6 está desactivado para esta conexión.

      Tenga en cuenta que DNS, Routes, Use this connection only for resources on its network son comunes a los ajustes de IPv4.

  8. Una vez que haya terminado de editar la conexión VPN, haga clic en el botón Añadir para personalizar la configuración o en el botón Aplicar para guardarla para la existente.
  9. Cambie el perfil a ON para activar la conexión VPN.

Recursos adicionales

  • Para más detalles sobre los parámetros soportados en Libreswan, consulte la página man nm-settings-libreswan(5).

14.2. Configuración de una conexión VPN mediante nm-connection-editor

Este procedimiento describe cómo configurar una conexión VPN utilizando nm-connection-editor.

Requisitos previos

  • El paquete NetworkManager-libreswan-gnome está instalado.
  • Si configura una conexión de intercambio de claves de Internet versión 2 (IKEv2):

    • El certificado se importa a la base de datos de los servicios de seguridad de la red IPsec (NSS).
    • Se conoce el apodo del certificado en la base de datos del NSS.

Procedimiento

  1. Abre un terminal y entra:

    $ nm-connection-editor
  2. Pulse el botón para añadir una nueva conexión.
  3. Seleccione el tipo de conexión IPsec based VPN y haga clic en Crear.
  4. En la pestaña VPN:

    1. Introduzca el nombre de host o la dirección IP de la pasarela VPN en el campo Gateway y seleccione un tipo de autenticación. En función del tipo de autenticación, debe introducir información adicional diferente:

      • IKEv2 (Certifiate) autentifica al cliente utilizando un certificado, lo cual es más seguro. Esta configuración requiere el apodo del certificado en la base de datos de IPsec NSS
      • IKEv1 (XAUTH) autentifica al usuario mediante un nombre de usuario y una contraseña (clave precompartida). Esta configuración requiere que se introduzcan los siguientes valores:

        • Nombre de usuario
        • Contraseña
        • Nombre del grupo
        • Secreto
    2. Si el servidor remoto especifica un identificador local para el intercambio IKE, introduzca la cadena exacta en el campo Remote ID. Si el servidor remoto ejecuta Libreswan, este valor se establece en el parámetro leftid del servidor.

      nm connection editor vpn tab

    3. Opcionalmente, configure ajustes adicionales haciendo clic en el botón Avanzado. Puede configurar los siguientes ajustes:

      • Identificación

        • Domain - Si es necesario, introduzca el nombre del dominio.
      • Seguridad

        • Phase1 Algorithms corresponde al parámetro ike Libreswan. Introduzca los algoritmos que se utilizarán para autenticar y establecer un canal cifrado.
        • Phase2 Algorithms corresponde al parámetro esp Libreswan. Introduzca los algoritmos que se utilizarán para las negociaciones de IPsec.

          Marque el campo Disable PFS para desactivar el Perfect Forward Secrecy (PFS) para asegurar la compatibilidad con servidores antiguos que no soportan PFS.

        • Phase1 Lifetime corresponde al parámetro ikelifetime Libreswan. Este parámetro define el tiempo de validez de la clave utilizada para cifrar el tráfico.
        • Phase2 Lifetime corresponde al parámetro salifetime Libreswan. Este parámetro define el tiempo de validez de una asociación de seguridad.
      • Conectividad

        • Remote network corresponde al parámetro rightsubnet Libreswan y define la red privada remota de destino a la que se debe llegar a través de la VPN.

          Marque el campo narrowing para habilitar el estrechamiento. Tenga en cuenta que sólo es efectivo en la negociación IKEv2.

        • Enable fragmentation corresponde al parámetro fragmentation de Libreswan y define si se permite o no la fragmentación de IKE. Los valores válidos son yes (por defecto) o no.
        • Enable Mobike corresponde al parámetro mobike Libreswan. El parámetro define si se permite el Protocolo de Movilidad y Multihoming (MOBIKE) (RFC 4555) para permitir que una conexión migre su punto final sin necesidad de reiniciar la conexión desde cero. Esto se utiliza en dispositivos móviles que cambian entre conexiones de datos por cable, inalámbricas o móviles. Los valores son no (por defecto) o yes.
  5. En la pestaña IPv4 Settings, seleccione el método de asignación de IP y, opcionalmente, configure direcciones estáticas adicionales, servidores DNS, dominios de búsqueda y rutas.

    Ficha IPsec IPv4

  6. Guarda la conexión.
  7. Cerrar nm-connection-editor.
Nota

Cuando se añade una nueva conexión haciendo clic en el botón , NetworkManager crea un nuevo archivo de configuración para esa conexión y luego abre el mismo diálogo que se utiliza para editar una conexión existente. La diferencia entre estos diálogos es que un perfil de conexión existente tiene una entrada de menú Details.

Recursos adicionales

  • Para más detalles sobre los parámetros IPsec soportados, consulte la página man nm-settings-libreswan(5).

Capítulo 15. Configuración de túneles IP

Al igual que una VPN, un túnel IP conecta directamente dos redes a través de una tercera red, como Internet. Sin embargo, no todos los protocolos de túneles admiten el cifrado.

Los routers de ambas redes que establecen el túnel requieren al menos dos interfaces:

  • Una interfaz conectada a la red local
  • Una interfaz que está conectada a la red a través de la cual se establece el túnel.

Para establecer el túnel, se crea una interfaz virtual en ambos routers con una dirección IP de la subred remota.

NetworkManager soporta los siguientes túneles IP:

  • Encapsulación de enrutamiento genérico (GRE)
  • Encapsulación de enrutamiento genérico sobre IPv6 (IP6GRE)
  • Punto de acceso terminal de encapsulación de enrutamiento genérico (GRETAP)
  • Punto de acceso terminal de encapsulación de enrutamiento genérico sobre IPv6 (IP6GRETAP)
  • IPv4 sobre IPv4 (IPIP)
  • IPv4 sobre IPv6 (IPIP6)
  • IPv6 sobre IPv6 (IP6IP6)
  • Transición simple a Internet (SIT)

Según el tipo, estos túneles actúan en la capa 2 o 3 del modelo de Interconexión de Sistemas Abiertos (OSI).

15.1. Configurar un túnel IPIP usando nmcli para encapsular el tráfico IPv4 en paquetes IPv4

Un túnel IP sobre IP (IPIP) funciona en la capa 3 de OSI y encapsula el tráfico IPv4 en paquetes IPv4, tal como se describe en el RFC 2003.

Importante

Los datos enviados a través de un túnel IPIP no están cifrados. Por razones de seguridad, utilice el túnel sólo para los datos que ya están cifrados, por ejemplo, por otros protocolos, como HTTPS.

Tenga en cuenta que los túneles IPIP sólo admiten paquetes unicast. Si necesita un túnel IPv4 que admita multidifusión, consulte Sección 15.2, “Configurar un túnel GRE usando nmcli para encapsular tráfico de capa 3 en paquetes IPv4”.

Este procedimiento describe cómo crear un túnel IPIP entre dos routers RHEL para conectar dos subredes internas a través de Internet, como se muestra en el siguiente diagrama:

IPIP tunnel

Requisitos previos

  • Cada router RHEL tiene una interfaz de red que se conecta a su subred local.
  • Cada router RHEL tiene una interfaz de red que se conecta a Internet.
  • El tráfico que quiere enviar a través del túnel es IPv4 unicast.

Procedimiento

  1. En el router RHEL de la red A:

    1. Cree una interfaz de túnel IPIP llamada tun0:

      # nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 198.51.100.5 local 203.0.113.10

      Los parámetros remote y local establecen las direcciones IP públicas de los routers remoto y local.

    2. Establezca la dirección IPv4 del dispositivo tun0:

      # nmcli connection modify tun0 ipv4.addresses '10.0.1.1/30'

      Tenga en cuenta que una subred /30 con dos direcciones IP utilizables es suficiente para el túnel.

    3. Configure la conexión tun0 para utilizar una configuración manual de IPv4:

      # nmcli connection modify tun0 ipv4.method manual
    4. Añada una ruta estática que dirija el tráfico a la red 172.16.0.0/24 a la IP del túnel en el router B:

      # nmcli connection modify tun0 ipv4.routes "172.16.0.0/24 10.0.1.2"
    5. Habilite la conexión tun0.

      # nmcli connection up tun0
    6. Activar el reenvío de paquetes:

      # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
      # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
  2. En el router RHEL de la red B:

    1. Cree una interfaz de túnel IPIP llamada tun0:

      # nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 203.0.113.10 local 198.51.100.5

      Los parámetros remote y local establecen las direcciones IP públicas de los routers remotos y locales.

    2. Establezca la dirección IPv4 del dispositivo tun0:

      # nmcli connection modify tun0 ipv4.addresses '10.0.1.2/30'
    3. Configure la conexión tun0 para utilizar una configuración manual de IPv4:

      # nmcli connection modify tun0 ipv4.method manual
    4. Añade una ruta estática que dirija el tráfico a la red 192.0.2.0/24 a la IP del túnel en el router A:

      # nmcli connection modify tun0 ipv4.routes "192.0.2.0/24 10.0.1.1"
    5. Habilite la conexión tun0.

      # nmcli connection up tun0
    6. Activar el reenvío de paquetes:

      # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
      # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

Pasos de verificación

  1. Desde cada router RHEL, haz un ping a la dirección IP de la interfaz interna del otro router:

    1. En el router A, haga un ping a 172.16.0.1:

      # ping 172.16.0.1
    2. En el router B, haga ping a 192.0.2.1:

      # ping 192.0.2.1

Recursos adicionales

  • Para más detalles sobre el uso de nmcli, consulte la página de manual nmcli.
  • Para más detalles sobre la configuración del túnel que puede establecer con nmcli, consulte la sección ip-tunnel settings en la página de manual nm-settings(5).

15.2. Configurar un túnel GRE usando nmcli para encapsular tráfico de capa 3 en paquetes IPv4

Un túnel de encapsulación de enrutamiento genérico (GRE) encapsula el tráfico de capa 3 en paquetes IPv4 como se describe en el RFC 2784. Un túnel GRE puede encapsular cualquier protocolo de capa 3 con un tipo de Ethernet válido.

Importante

Los datos enviados a través de un túnel GRE no están cifrados. Por razones de seguridad, utilice el túnel sólo para los datos que ya están cifrados, por ejemplo, por otros protocolos, como HTTPS.

Este procedimiento describe cómo crear un túnel GRE entre dos routers RHEL para conectar dos subredes internas a través de Internet, como se muestra en el siguiente diagrama:

GRE tunnel
Nota

El nombre del dispositivo gre0 está reservado. Utilice gre1 o un nombre diferente para el dispositivo.

Requisitos previos

  • Cada router RHEL tiene una interfaz de red que se conecta a su subred local.
  • Cada router RHEL tiene una interfaz de red que se conecta a Internet.

Procedimiento

  1. En el router RHEL de la red A:

    1. Cree una interfaz de túnel GRE llamada gre1:

      # nmcli connection add type ip-tunnel ip-tunnel.mode gre con-name gre1 ifname gre1 remote 198.51.100.5 local 203.0.113.10

      Los parámetros remote y local establecen las direcciones IP públicas de los routers remoto y local.

    2. Establezca la dirección IPv4 del dispositivo gre1:

      # nmcli connection modify gre1 ipv4.addresses '10.0.1.1/30'

      Tenga en cuenta que una subred /30 con dos direcciones IP utilizables es suficiente para el túnel.

    3. Configure la conexión gre1 para utilizar una configuración manual de IPv4:

      # nmcli connection modify gre1 ipv4.method manual
    4. Añada una ruta estática que dirija el tráfico a la red 172.16.0.0/24 a la IP del túnel en el router B:

      # nmcli connection modify tun0 ipv4.routes "172.16.0.0/24 10.0.1.2"
    5. Habilite la conexión gre1.

      # nmcli connection up gre1
    6. Activar el reenvío de paquetes:

      # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
      # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
  2. En el router RHEL de la red B:

    1. Cree una interfaz de túnel GRE llamada gre1:

      # nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name gre1 ifname gre1 remote 203.0.113.10 local 198.51.100.5

      Los parámetros remote y local establecen las direcciones IP públicas de los routers remoto y local.

    2. Establezca la dirección IPv4 del dispositivo gre1:

      # nmcli connection modify gre1 ipv4.addresses '10.0.1.2/30'
    3. Configure la conexión gre1 para utilizar una configuración manual de IPv4:

      # nmcli connection modify gre1 ipv4.method manual
    4. Añade una ruta estática que dirija el tráfico a la red 192.0.2.0/24 a la IP del túnel en el router A:

      # nmcli connection modify tun0 ipv4.routes "192.0.2.0/24 10.0.1.1"
    5. Habilite la conexión gre1.

      # nmcli connection up gre1
    6. Activar el reenvío de paquetes:

      # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
      # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

Pasos de verificación

  1. Desde cada router RHEL, haz un ping a la dirección IP de la interfaz interna del otro router:

    1. En el router A, haga un ping a 172.16.0.1:

      # ping 172.16.0.1
    2. En el router B, haga ping a 192.0.2.1:

      # ping 192.0.2.1

Recursos adicionales

  • Para más detalles sobre el uso de nmcli, consulte la página de manual nmcli.
  • Para más detalles sobre la configuración del túnel que puede establecer con nmcli, consulte la sección ip-tunnel settings en la página de manual nm-settings(5).

15.3. Configuración de un túnel GRETAP para transferir tramas Ethernet sobre IPv4

Un túnel GRETAP (Generic Routing Encapsulation Terminal Access Point) funciona en el nivel 2 de OSI y encapsula el tráfico Ethernet en paquetes IPv4, tal como se describe en el RFC 2784.

Importante

Los datos enviados a través de un túnel GRETAP no están cifrados. Por razones de seguridad, establezca el túnel a través de una VPN o una conexión cifrada diferente.

Este procedimiento describe cómo crear un túnel GRETAP entre dos routers RHEL para conectar dos redes utilizando un puente como se muestra en el siguiente diagrama:

GRETAP tunnel
Nota

El nombre del dispositivo gretap0 está reservado. Utilice gretap1 o un nombre diferente para el dispositivo.

Requisitos previos

  • Cada router RHEL tiene una interfaz de red que está conectada a su red local, y la interfaz no tiene asignada ninguna configuración IP.
  • Cada router RHEL tiene una interfaz de red que se conecta a Internet.

Procedimiento

  1. En el router RHEL de la red A:

    1. Cree una interfaz de puente llamada bridge0:

      # nmcli connection add type bridge con-name bridge0 ifname bridge0
    2. Configure los ajustes IP del puente:

      # nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24'
      # nmcli connection modify bridge0 ipv4.method manual
    3. Añade un nuevo perfil de conexión para la interfaz que está conectada a la red local al puente:

      # nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp1s0 master bridge0
    4. Añade un nuevo perfil de conexión para la interfaz del túnel GRETAP al puente:

      # nmcli connection add type ip-tunnel ip-tunnel.mode gretap slave-type bridge con-name bridge0-port2 ifname gretap1 remote 198.51.100.5 local 203.0.113.10 master bridge0

      Los parámetros remote y local establecen las direcciones IP públicas de los routers remoto y local.

    5. Opcional: Desactive el protocolo de árbol de expansión (STP) si no lo necesita:

      # nmcli connection modify bridge0 bridge.stp no

      Por defecto, el STP está activado y provoca un retraso antes de poder utilizar la conexión.

    6. Configure que al activar la conexión bridge0 se activen automáticamente los puertos del puente:

      # nmcli connection modify bridge0 connection.autoconnect-slaves 1
    7. Activa la conexión bridge0:

      # nmcli connection up bridge0
  2. En el router RHEL de la red B:

    1. Cree una interfaz de puente llamada bridge0:

      # nmcli connection add type bridge con-name bridge0 ifname bridge0
    2. Configure los ajustes IP del puente:

      # nmcli connection modify bridge0 ipv4.addresses '192.0.2.2/24'
      # nmcli connection modify bridge0 ipv4.method manual
    3. Añade un nuevo perfil de conexión para la interfaz que está conectada a la red local al puente:

      # nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp1s0 master bridge0
    4. Añade un nuevo perfil de conexión para la interfaz del túnel GRETAP al puente:

      # nmcli connection add type ip-tunnel ip-tunnel.mode gretap slave-type bridge con-name bridge0-port2 ifname gretap1 remote 203.0.113.10 local 198.51.100.5 master bridge0

      Los parámetros remote y local establecen las direcciones IP públicas de los routers remoto y local.

    5. Opcional: Desactive el protocolo de árbol de expansión (STP) si no lo necesita:

      # nmcli connection modify bridge0 bridge.stp no
    6. Configure que al activar la conexión bridge0 se activen automáticamente los puertos del puente:

      # nmcli connection modify bridge0 connection.autoconnect-slaves 1
    7. Activa la conexión bridge0:

      # nmcli connection up bridge0

Pasos de verificación

  1. En ambos routers, compruebe que las conexiones enp1s0 y gretap1 están conectadas y que la columna CONNECTION muestra el nombre de la conexión del puerto:

    # nmcli device
    nmcli device
    DEVICE   TYPE      STATE      CONNECTION
    ...
    bridge0  bridge    connected  bridge0
    enp1s0   ethernet  connected  bridge0-port1
    gretap1  iptunnel  connected  bridge0-port2
  2. Desde cada router RHEL, haz un ping a la dirección IP de la interfaz interna del otro router:

    1. En el router A, haga un ping a 192.0.2.2:

      # ping 192.0.2.2
    2. En el router B, haga ping a 192.0.2.1:

      # ping 192.0.2.1

Recursos adicionales

  • Para más detalles sobre el uso de nmcli, consulte la página de manual nmcli.
  • Para más detalles sobre la configuración del túnel que puede establecer con nmcli, consulte la sección ip-tunnel settings en la página de manual nm-settings(5).

15.4. Recursos adicionales

  • Para ver una lista de interfaces de túnel y sobre la configuración temporal de túneles mediante la utilidad ip, consulte la página de manual ip-link(8).

Capítulo 16. Configuración del canal de fibra sobre Ethernet

Basado en el estándar IEEE T11 FC-BB-5, Fibre Channel over Ethernet (FCoE) es un protocolo para transmitir tramas de Fibre Channel a través de redes Ethernet. Normalmente, los centros de datos tienen una LAN y una red de área de almacenamiento (SAN) dedicadas y separadas entre sí con su propia configuración específica. FCoE combina estas redes en una estructura de red única y convergente. Las ventajas de FCoE son, por ejemplo, menores costes de hardware y energía.

16.1. Uso de HBAs FCoE por hardware en RHEL

En Red Hat Enterprise Linux se puede utilizar el adaptador de bus de host (HBA) FCoE por hardware con el apoyo de los siguientes controladores:

  • qedf
  • bnx2fc
  • fnic

Si utiliza un HBA de este tipo, configure los ajustes de FCoE en la configuración del HBA. Para más detalles, consulte la documentación del adaptador.

Después de configurar el HBA en su configuración, los números de unidad lógica (LUN) exportados desde la red de área de almacenamiento (SAN) están automáticamente disponibles para RHEL como dispositivos /dev/sd*. Puede utilizar estos dispositivos de forma similar a los dispositivos de almacenamiento local.

16.2. Configuración de un dispositivo FCoE por software

Un dispositivo FCoE por software permite acceder a Números de Unidad Lógica (LUN) a través de FCoE utilizando un adaptador Ethernet que soporta parcialmente la descarga de FCoE.

Importante

RHEL no admite dispositivos FCoE por software que requieran el módulo del kernel fcoe.ko. Para más detalles, consulte la eliminación del software FCoE en la documentación de Considerations in adopting RHEL 8.

Después de completar este procedimiento, los LUNs exportados de la Red de Área de Almacenamiento (SAN) están automáticamente disponibles para RHEL como dispositivos /dev/sd*. Puede utilizar estos dispositivos de forma similar a los dispositivos de almacenamiento local.

Requisitos previos

  • El adaptador de bus de host (HBA) utiliza el controlador qedf, bnx2fc, o fnic y no requiere el módulo del kernel fcoe.ko.
  • La SAN utiliza una VLAN para separar el tráfico de almacenamiento del tráfico Ethernet normal.
  • El conmutador de red ha sido configurado para soportar la VLAN.
  • El HBA del servidor se configura en su BIOS. Para más detalles, consulte la documentación de su HBA.
  • El HBA está conectado a la red y el enlace está activo.

Procedimiento

  1. Instale el paquete fcoe-utils:

    # yum install fcoe-utils
  2. Copie el archivo de plantilla /etc/fcoe/cfg-ethx en /etc/fcoe/cfg-interface_name. Por ejemplo, si desea configurar la interfaz enp1s0 para utilizar FCoE, introduzca

    # cp /etc/fcoe/cfg-ethx /etc/fcoe/cfg-enp1s0
  3. Habilite e inicie el servicio fcoe:

    # systemctl enable --now fcoe
  4. Descubra el ID de la VLAN FCoE, inicie el iniciador y cree un dispositivo de red para la VLAN descubierta:

    # fipvlan -s -c enp1s0
    Created VLAN device enp1s0.200
    Starting FCoE on interface enp1s0.200
    Fibre Channel Forwarders Discovered
    interface       | VLAN | FCF MAC
    ------------------------------------------
    enp1s0          | 200  | 00:53:00:a7:e7:1b
  5. Opcional: Para mostrar detalles sobre los objetivos descubiertos, los LUNs y los dispositivos asociados a los LUNs, introduzca:

    # fcoeadm -t
    Interface:        enp1s0.200
    Roles:            FCP Target
    Node Name:        0x500a0980824acd15
    Port Name:        0x500a0982824acd15
    Target ID:        0
    MaxFrameSize:     2048 bytes
    OS Device Name:   rport-11:0-1
    FC-ID (Port ID):  0xba00a0
    State:            Online
    
    LUN ID  Device Name   Capacity   Block Size  Description
    ------  -----------  ----------  ----------  ---------------------
         0  sdb           28.38 GiB      512     NETAPP LUN (rev 820a)
         ...

    Este ejemplo muestra que el LUN 0 de la SAN se ha conectado al host como dispositivo /dev/sdb.

Pasos de verificación

  • Utilice el comando fcoeadm -i para mostrar información sobre todas las interfaces FCoE activas:

    # fcoeadm -i
    Description:      BCM57840 NetXtreme II 10 Gigabit Ethernet
    Revision:         11
    Manufacturer:     Broadcom Inc. and subsidiaries
    Serial Number:    000AG703A9B7
    
    Driver:           bnx2x Unknown
    Number of Ports:  1
    
        Symbolic Name:     bnx2fc (QLogic BCM57840) v2.12.13 over enp1s0.200
        OS Device Name:    host11
        Node Name:         0x2000000af70ae935
        Port Name:         0x2001000af70ae935
        Fabric Name:       0x20c8002a6aa7e701
        Speed:             10 Gbit
        Supported Speed:   1 Gbit, 10 Gbit
        MaxFrameSize:      2048 bytes
        FC-ID (Port ID):   0xba02c0
        State:             Online

Recursos adicionales

  • Para más detalles sobre la utilidad fcoeadm, consulte la página de manual fcoeadm(8).
  • Para obtener detalles sobre cómo montar el almacenamiento conectado a través de un software FCoE cuando el sistema arranca, consulte el archivo /usr/share/doc/fcoe-utils/README.

16.3. Recursos adicionales

Capítulo 17. Autenticación de un cliente RHEL en la red mediante el estándar 802.1X

Los administradores utilizan con frecuencia el Control de Acceso a la Red (NAC) basado en el estándar IEEE 802.1X para proteger una red de clientes LAN y Wi-Fi no autorizados. Los procedimientos de esta sección describen diferentes opciones para configurar la autenticación de la red.

17.1. Configuración de la autenticación de red 802.1X en una conexión Ethernet existente mediante nmcli

Utilizando la utilidad nmcli, puede configurar el cliente para que se autentique en la red. Este procedimiento describe cómo configurar la autenticación del Protocolo de Autenticación Extensible Protegido (PEAP) con el Protocolo de Autenticación Microsoft Challenge-Handshake versión 2 (MSCHAPv2) en un perfil de conexión Ethernet existente de NetworkManager llamado enp1s0.

Requisitos previos

  1. La red debe tener autenticación de red 802.1X.
  2. El perfil de conexión Ethernet existe en NetworkManager y tiene una configuración IP válida.
  3. Si el cliente debe verificar el certificado del autentificador, el certificado de la Autoridad de Certificación (CA) debe estar almacenado en el directorio /etc/pki/ca-trust/source/anchors/.
  4. El paquete wpa_supplicant está instalado.

Procedimiento

  1. Establezca el Protocolo de Autenticación Extensible (EAP) en peap, el protocolo de autenticación interna en mschapv2, y el nombre de usuario:

    # nmcli connection modify enp1s0 802-1x.eap peap 802-1x.phase2-auth mschapv2 802-1x.identity user_name

    Tenga en cuenta que debe establecer los parámetros 802-1x.eap, 802-1x.phase2-auth, y 802-1x.identity en un solo comando.

  2. Opcionalmente, guarde la contraseña en la configuración:

    # nmcli connection modify enp1s0 802-1x.password password
    Importante

    Por defecto, NetworkManager almacena la contraseña en texto claro en el archivo /etc/sysconfig/network-scripts/keys-connection_name que sólo puede leer el usuario de root. Sin embargo, las contraseñas en texto claro en un archivo de configuración pueden ser un riesgo para la seguridad.

    Para aumentar la seguridad, establezca el parámetro 802-1x.password-flags a 0x1. Con esta configuración, en los servidores con el entorno de escritorio GNOME o el nm-applet en ejecución, NetworkManager recupera la contraseña de estos servicios. En otros casos, NetworkManager solicita la contraseña.

  3. Si se requiere que el cliente verifique el certificado del autentificador, establezca el parámetro 802-1x.ca-cert en el perfil de conexión a la ruta del certificado de la CA:

    # nmcli connection modify enp1s0 802-1x.ca-cert /etc/pki/ca-trust/source/anchors/ca.crt
    Nota

    Por razones de seguridad, Red Hat recomienda utilizar el certificado del autentificador para permitir a los clientes validar la identidad del autentificador.

  4. Activar el perfil de conexión:

    # nmcli connection up enp1s0

Pasos de verificación

  • Acceder a los recursos de la red que requieren autenticación de red.

Recursos adicionales

  • Para más detalles sobre cómo añadir un perfil de conexión Ethernet de NetworkManager, consulte Capítulo 8, Configurar una conexión Ethernet.
  • Para otros parámetros relacionados con 802.1X y sus descripciones, consulte la sección 802-1x settings en la página de manual nm-settings(5).
  • Para más detalles sobre la utilidad nmcli, consulte la página de manual nmcli(1).

17.2. Configuración de una conexión Ethernet estática con autenticación de red 802.1X mediante RHEL System Roles

Utilizando RHEL System Roles, puede automatizar la creación de una conexión Ethernet que utilice el estándar 802.1X para autenticar al cliente. Este procedimiento describe cómo añadir remotamente una conexión Ethernet para la interfaz enp1s0 con la siguiente configuración mediante la ejecución de un playbook de Ansible:

  • Una dirección IPv4 estática - 192.0.2.1 con una máscara de subred /24
  • Una dirección IPv6 estática - 2001:db8:1::1 con una máscara de subred /64
  • Una pasarela por defecto IPv4 - 192.0.2.254
  • Una pasarela por defecto IPv6 - 2001:db8:1::fffe
  • Un servidor DNS IPv4 - 192.0.2.200
  • Un servidor DNS IPv6 - 2001:db8:1::ffbb
  • Un dominio de búsqueda DNS - example.com
  • 802.Autenticación de red 1X mediante el protocolo de autenticación extensible (EAP) TLS

Ejecute este procedimiento en el nodo de control de Ansible.

Requisitos previos

  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si utiliza un usuario remoto diferente a root cuando ejecuta el libro de jugadas, debe tener los permisos apropiados de sudo en el nodo gestionado.
  • La red es compatible con la autenticación de red 802.1X.
  • El nodo gestionado utiliza NetworkManager.
  • Los siguientes archivos necesarios para la autenticación TLS existen en el nodo de control:

    • La clave del cliente almacenada en el archivo /srv/data/client.key.
    • El certificado del cliente almacenado en el archivo /srv/data/client.crt.
    • El certificado de la Autoridad de Certificación (CA) almacenado en el archivo /srv/data/ca.crt.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    node.example.com
  2. Cree el libro de jugadas ~/enable-802.1x.yml con el siguiente contenido:

    ---
    - name: Configure an Ethernet connection with 802.1X authentication
      hosts: node.example.com
      become: true
      tasks:
        - name: Copy client key for 802.1X authentication
          copy:
            src: "/srv/data/client.key"
            dest: "/etc/pki/tls/private/client.key"
            mode: 0600
    
        - name: Copy client certificate for 802.1X authentication
          copy:
            src: "/srv/data/client.crt"
            dest: "/etc/pki/tls/certs/client.crt"
    
        - name: Copy CA certificate for 802.1X authentication
          copy:
            src: "/srv/data/ca.crt"
            dest: "/etc/pki/ca-trust/source/anchors/ca.crt"
    
        - include_role:
            name: linux-system-roles.network
          vars:
            network_connections:
              - name: enp1s0
                type: ethernet
                autoconnect: yes
                ip:
                  address:
                    - 192.0.2.1/24
                    - 2001:db8:1::1/64
                  gateway4: 192.0.2.254
                  gateway6: 2001:db8:1::fffe
                  dns:
                    - 192.0.2.200
                    - 2001:db8:1::ffbb
                  dns_search:
                    - example.com
                ieee802_1x:
                  identity: user_name
                  eap: tls
                  private_key: "/etc/pki/tls/private/client.key"
                  private_key_password: "password"
                  client_cert: "/etc/pki/tls/certs/client.crt"
                  ca_cert: "/etc/pki/ca-trust/source/anchors/ca.crt"
                  domain_suffix_match: example.com
                state: up
  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/enable-802.1x.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook solicite la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en network_connections y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para más detalles sobre los parámetros 802.1X, consulte la sección ieee802_1x en el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

17.3. Configuración de la autenticación de red 802.1X en una conexión Wi-Fi existente mediante nmcli

Utilizando la utilidad nmcli, puede configurar el cliente para que se autentique en la red. Este procedimiento describe cómo configurar la autenticación del Protocolo de Autenticación Extensible Protegido (PEAP) con el Protocolo de Autenticación Microsoft Challenge-Handshake versión 2 (MSCHAPv2) en un perfil de conexión Wi-Fi existente de NetworkManager llamado wlp1s0.

Requisitos previos

  1. La red debe tener autenticación de red 802.1X.
  2. El perfil de conexión Wi-Fi existe en NetworkManager y tiene una configuración IP válida.
  3. Si el cliente debe verificar el certificado del autentificador, el certificado de la Autoridad de Certificación (CA) debe estar almacenado en el directorio /etc/pki/ca-trust/source/anchors/.
  4. El paquete wpa_supplicant está instalado.

Procedimiento

  1. Establezca el modo de seguridad Wi-Fi en wpa-eap, el protocolo de autenticación extensible (EAP) en peap, el protocolo de autenticación interna en mschapv2, y el nombre de usuario:

    # nmcli connection modify wpl1s0 802-11-wireless-security.key-mgmt wpa-eap 802-1x.eap peap 802-1x.phase2-auth mschapv2 802-1x.identity user_name

    Tenga en cuenta que debe establecer los parámetros 802-11-wireless-security.key-mgmt, 802-1x.eap, 802-1x.phase2-auth, y 802-1x.identity en un solo comando.

  2. Opcionalmente, guarde la contraseña en la configuración:

    # nmcli connection modify wpl1s0 802-1x.password password
    Importante

    Por defecto, NetworkManager almacena la contraseña en texto claro en el archivo /etc/sysconfig/network-scripts/keys-connection_name que sólo puede leer el usuario de root. Sin embargo, las contraseñas en texto claro en un archivo de configuración pueden ser un riesgo para la seguridad.

    Para aumentar la seguridad, establezca el parámetro 802-1x.password-flags a 0x1. Con esta configuración, en los servidores con el entorno de escritorio GNOME o el nm-applet en ejecución, NetworkManager recupera la contraseña de estos servicios. En otros casos, NetworkManager solicita la contraseña.

  3. Si se requiere que el cliente verifique el certificado del autentificador, establezca el parámetro 802-1x.ca-cert en el perfil de conexión a la ruta del certificado de la CA:

    # nmcli connection modify wpl1s0 802-1x.ca-cert /etc/pki/ca-trust/source/anchors/ca.crt
    Nota

    Por razones de seguridad, Red Hat recomienda utilizar el certificado del autentificador para permitir a los clientes validar la identidad del autentificador.

  4. Activar el perfil de conexión:

    # nmcli connection up wpl1s0

Pasos de verificación

  • Acceder a los recursos de la red que requieren autenticación de red.

Recursos adicionales

  • Para más detalles sobre cómo añadir un perfil de conexión Ethernet de NetworkManager, consulte Capítulo 9, Gestión de las conexiones Wi-Fi.
  • Para otros parámetros relacionados con 802.1X y sus descripciones, consulte la sección 802-1x settings en la página de manual nm-settings(5).
  • Para más detalles sobre la utilidad nmcli, consulte la página de manual nmcli(1).

Capítulo 18. Gestión de la configuración de la pasarela por defecto

La pasarela por defecto es un router que reenvía los paquetes de red cuando ninguna otra ruta coincide con el destino de un paquete. En una red local, la pasarela por defecto suele ser el host que está un salto más cerca de Internet.

18.1. Configuración de la puerta de enlace predeterminada en una conexión existente mediante nmcli

En la mayoría de las situaciones, los administradores establecen la puerta de enlace predeterminada cuando crean una conexión, como se explica, por ejemplo, en Sección 8.1, “Configuración de una conexión Ethernet estática mediante nmcli”.

Esta sección describe cómo establecer o actualizar la puerta de enlace predeterminada en una conexión previamente creada utilizando la utilidad nmcli.

Requisitos previos

  • Debe configurarse al menos una dirección IP estática en la conexión en la que se establecerá la puerta de enlace predeterminada.
  • Si el usuario está conectado en una consola física, los permisos de usuario son suficientes. En caso contrario, el usuario debe tener permisos de root.

Procedimiento

  1. Establezca la dirección IP de la pasarela por defecto.

    Por ejemplo, para establecer la dirección IPv4 de la pasarela por defecto en la example conexión a 192.0.2.1:

    $ sudo nmcli connection modify example ipv4.gateway "192.0.2.1"

    Por ejemplo, para establecer la dirección IPv6 de la pasarela por defecto en la example conexión a 2001:db8:1::1:

    $ sudo nmcli connection modify example ipv6.gateway "2001:db8:1::1"
  2. Reinicie la conexión de red para que los cambios surtan efecto. Por ejemplo, para reiniciar la example conexión mediante la línea de comandos:

    $ sudo nmcli connection up example
    Aviso

    Todas las conexiones que actualmente utilizan esta conexión de red se interrumpen temporalmente durante el reinicio.

  3. Opcionalmente, verifique que la ruta esté activa.

    Para mostrar la puerta de enlace por defecto IPv4:

    $ ip -4 route
    default via 192.0.2.1 dev example proto static metric 100

    Para mostrar la puerta de enlace predeterminada IPv6:

    $ ip -6 route
    default via 2001:db8:1::1 dev example proto static metric 100 pref medium

18.2. Configuración de la puerta de enlace por defecto en una conexión existente utilizando el modo interactivo nmcli

En la mayoría de las situaciones, los administradores establecen la puerta de enlace predeterminada cuando crean una conexión, como se explica, por ejemplo, en Sección 8.5, “Configuración de una conexión Ethernet dinámica mediante el editor interactivo nmcli”.

Esta sección describe cómo establecer o actualizar la puerta de enlace predeterminada en una conexión previamente creada utilizando el modo interactivo de la utilidad nmcli.

Requisitos previos

  • Debe configurarse al menos una dirección IP estática en la conexión en la que se establecerá la puerta de enlace predeterminada.
  • Si el usuario está conectado en una consola física, los permisos de usuario son suficientes. En caso contrario, el usuario debe tener permisos de root.

Procedimiento

  1. Abra el modo interactivo nmcli para la conexión requerida. Por ejemplo, para abrir el modo interactivo nmcli para la conexión example:

    $ sudo nmcli connection edit example
  2. Establezca la puerta de enlace por defecto.

    Por ejemplo, para establecer la dirección IPv4 de la pasarela por defecto en la example conexión a 192.0.2.1:

    nmcli> set ipv4.gateway 192.0.2.1

    Por ejemplo, para establecer la dirección IPv6 de la pasarela por defecto en la example conexión a 2001:db8:1::1:

    nmcli> set ipv6.gateway 2001:db8:1::1
  3. Opcionalmente, verifique que la puerta de enlace por defecto se ha configurado correctamente:

    nmcli> print
    ...
    ipv4.gateway:                           192.0.2.1
    ...
    ipv6.gateway:                           2001:db8:1::1
    ...
  4. Guarde la configuración:

    nmcli> save persistent
  5. Reinicie la conexión de red para que los cambios surtan efecto:

    nmcli> activate example
    Aviso

    Todas las conexiones que actualmente utilizan esta conexión de red se interrumpen temporalmente durante el reinicio.

  6. Salga del modo interactivo de nmcli:

    nmcli> quit
  7. Opcionalmente, verifique que la ruta esté activa.

    Para mostrar la puerta de enlace por defecto IPv4:

    $ ip -4 route
    default via 192.0.2.1 dev example proto static metric 100

    Para mostrar la puerta de enlace predeterminada IPv6:

    $ ip -6 route
    default via 2001:db8:1::1 dev example proto static metric 100 pref medium

18.3. Configuración de la pasarela por defecto en una conexión existente mediante nm-connection-editor

En la mayoría de las situaciones, los administradores establecen la puerta de enlace por defecto cuando crean una conexión. Esta sección describe cómo establecer o actualizar la puerta de enlace predeterminada en una conexión previamente creada utilizando la aplicación nm-connection-editor.

Requisitos previos

  • Debe configurarse al menos una dirección IP estática en la conexión en la que se establecerá la puerta de enlace predeterminada.

Procedimiento

  1. Abra un terminal e introduzca nm-connection-editor:

    $ nm-connection-editor
  2. Seleccione la conexión que desea modificar y haga clic en el icono de la rueda dentada para editar la conexión existente.
  3. Establezca la puerta de enlace por defecto IPv4. Por ejemplo, para establecer la dirección IPv4 de la pasarela por defecto en la conexión a 192.0.2.1:

    1. Abra la pestaña IPv4 Settings.
    2. Introduzca la dirección en el campo gateway junto al rango de IP en el que se encuentra la dirección de la pasarela:

      establecer gw por defecto en el editor de conexiones nm ipv4

  4. Establezca la puerta de enlace por defecto IPv6. Por ejemplo, para establecer la dirección IPv6 de la pasarela por defecto en la conexión a 2001:db8:1::1:

    1. Abra la pestaña IPv6.
    2. Introduzca la dirección en el campo gateway junto al rango de IP en el que se encuentra la dirección de la pasarela:

      establecer gw por defecto en el editor de conexiones nm ipv6

  5. Haga clic en Aceptar.
  6. Haga clic en Guardar.
  7. Reinicie la conexión de red para que los cambios surtan efecto. Por ejemplo, para reiniciar la example conexión mediante la línea de comandos:

    $ sudo nmcli connection up example
    Aviso

    Todas las conexiones que actualmente utilizan esta conexión de red se interrumpen temporalmente durante el reinicio.

  8. Opcionalmente, verifique que la ruta esté activa.

    Para mostrar la puerta de enlace por defecto IPv4:

    $ ip -4 route
    default via 192.0.2.1 dev example proto static metric 100

    Para mostrar la puerta de enlace predeterminada IPv6:

    $ ip -6 route
    default via 2001:db8:1::1 dev example proto static metric 100 pref medium

18.4. Configuración de la puerta de enlace predeterminada en una conexión existente mediante el centro de control

En la mayoría de las situaciones, los administradores establecen la puerta de enlace por defecto cuando crean una conexión. Esta sección describe cómo establecer o actualizar la puerta de enlace predeterminada en una conexión previamente creada utilizando la aplicación control-center.

Requisitos previos

  • Debe configurarse al menos una dirección IP estática en la conexión en la que se establecerá la puerta de enlace predeterminada.
  • La configuración de red de la conexión está abierta en la aplicación control-center.

Procedimiento

  1. Establezca la puerta de enlace por defecto IPv4. Por ejemplo, para establecer la dirección IPv4 de la pasarela por defecto en la conexión a 192.0.2.1:

    1. Abra la pestaña IPv4.
    2. Introduzca la dirección en el campo gateway junto al rango de IP en el que se encuentra la dirección de la pasarela:

      establecer gw por defecto en el centro de control ipv4

  2. Establezca la puerta de enlace por defecto IPv6. Por ejemplo, para establecer la dirección IPv6 de la pasarela por defecto en la conexión a 2001:db8:1::1:

    1. Abra la pestaña IPv6.
    2. Introduzca la dirección en el campo gateway junto al rango de IP en el que se encuentra la dirección de la pasarela:

      establecer gw por defecto en el centro de control ipv6

  3. Haga clic en Aplicar.
  4. De vuelta en la ventana Network, desactive y vuelva a activar la conexión cambiando el botón de la conexión a Off y de nuevo a On para que los cambios surtan efecto.

    Aviso

    Todas las conexiones que actualmente utilizan esta conexión de red se interrumpen temporalmente durante el reinicio.

  5. Opcionalmente, verifique que la ruta esté activa.

    Para mostrar la puerta de enlace por defecto IPv4:

    $ ip -4 route
    default via 192.0.2.1 dev example proto static metric 100

    Para mostrar la puerta de enlace predeterminada IPv6:

    $ ip -6 route
    default via 2001:db8:1::1 dev example proto static metric 100 pref medium

18.5. Configuración de la puerta de enlace predeterminada en una conexión existente mediante las funciones del sistema

Puede utilizar la función del sistema networking RHEL para establecer la puerta de enlace predeterminada.

Importante

Cuando se ejecuta una obra que utiliza el rol de sistema networking RHEL, el rol de sistema anula un perfil de conexión existente con el mismo nombre si la configuración no coincide con la especificada en la obra. Por lo tanto, especifique siempre toda la configuración del perfil de conexión de red en la obra, incluso si, por ejemplo, la configuración de IP ya existe. De lo contrario, la función restablece estos valores a sus valores por defecto.

Dependiendo de si ya existe, el procedimiento crea o actualiza el perfil de conexión enp1s0 con la siguiente configuración:

  • Una dirección IPv4 estática - 198.51.100.20 con una máscara de subred /24
  • Una dirección IPv6 estática - 2001:db8:1::1 con una máscara de subred /64
  • Una pasarela por defecto IPv4 - 198.51.100.254
  • Una pasarela por defecto IPv6 - 2001:db8:1::fffe
  • Un servidor DNS IPv4 - 198.51.100.200
  • Un servidor DNS IPv6 - 2001:db8:1::ffbb
  • Un dominio de búsqueda DNS - example.com

Requisitos previos

  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si utiliza un usuario remoto diferente a root cuando ejecuta el libro de jugadas, este usuario tiene los permisos apropiados de sudo en el nodo gestionado.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    nodo.ejemplo.com
  2. Cree el libro de jugadas ~/ethernet-connection.yml con el siguiente contenido:

    ---
    - name: Configure an Ethernet connection with static IP and default gateway
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            - name: enp1s0
              type: ethernet
              autoconnect: yes
              ip:
                address:
                  - 198.51.100.20/24
                  - 2001:db8:1::1/64
                gateway4: 198.51.100.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 198.51.100.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
              state: up
  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/ethernet-connection.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/ethernet-connection.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook solicite la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en network_connections y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

18.6. Configuración de la puerta de enlace por defecto en una conexión existente cuando se utilizan los scripts de red heredados

Este procedimiento describe cómo configurar una puerta de enlace por defecto cuando se utilizan los scripts de red heredados. El ejemplo establece la pasarela por defecto en 192.0.2.1 que es accesible a través de la interfaz enp1s0.

Requisitos previos

  • El paquete NetworkManager no está instalado o el servicio NetworkManager está desactivado.
  • El paquete network-scripts está instalado.

Procedimiento

  1. Ajuste el parámetro GATEWAY en el archivo /etc/sysconfig/network-scripts/ifcfg-enp1s0 a 192.0.2.1:

    GATEWAY=192.0.2.1
  2. Añada la entrada default en el archivo /etc/sysconfig/network-scripts/route-enp0s1:

    por defecto vía 192.0.2.1
  3. Reinicia la red:

    # systemctl restart network

18.7. Cómo gestiona NetworkManager varias pasarelas por defecto

En ciertas situaciones, por ejemplo por razones de fallback, se establecen múltiples puertas de enlace por defecto en un host. Sin embargo, para evitar problemas de enrutamiento asíncrono, cada pasarela por defecto del mismo protocolo requiere un valor métrico separado. Tenga en cuenta que RHEL sólo utiliza la conexión a la pasarela por defecto que tenga la métrica más baja establecida.

Puede establecer la métrica tanto para la puerta de enlace IPv4 como para la IPv6 de una conexión utilizando el siguiente comando:

# nmcli connection modify connection-name ipv4.route-metric value ipv6.route-metric value
Importante

No establezca el mismo valor de métrica para el mismo protocolo en varios perfiles de conexión para evitar problemas de enrutamiento.

Si se establece una puerta de enlace por defecto sin valor de métrica, NetworkManager establece automáticamente el valor de la métrica en función del tipo de interfaz. Para ello, NetworkManager asigna el valor por defecto de este tipo de red a la primera conexión que se activa, y establece un valor incrementado a cada una de las demás conexiones del mismo tipo en el orden en que se activan. Por ejemplo, si existen dos conexiones Ethernet con una pasarela por defecto, NetworkManager establece una métrica de 100 en la ruta a la pasarela por defecto de la conexión que se activa primero. Para la segunda conexión, NetworkManager establece 101.

A continuación se presenta un resumen de los tipos de red más utilizados y sus métricas por defecto:

Tipo de conexiónValor métrico por defecto

VPN

50

Ethernet

100

MACsec

125

InfiniBand

150

Bono

300

Equipo

350

VLAN

400

Puente

425

TUN

450

Wi-Fi

600

Túnel IP

675

Recursos adicionales

18.8. Configuración de NetworkManager para evitar el uso de un perfil específico para proporcionar una puerta de enlace predeterminada

Puede configurar que NetworkManager no utilice nunca un perfil específico para proporcionar la puerta de enlace predeterminada. Siga este procedimiento para los perfiles de conexión que no están conectados a la puerta de enlace predeterminada.

Requisitos previos

  • El perfil de conexión de NetworkManager para la conexión que no está conectada a la pasarela por defecto existe.

Procedimiento

  1. Si la conexión utiliza una configuración IP dinámica, configure que NetworkManager no utilice la conexión como ruta por defecto para las conexiones IPv4 e IPv6:

    # nmcli connection modify connection_name ipv4.never-default yes ipv6.never-default yes

    Tenga en cuenta que al configurar ipv4.never-default y ipv6.never-default en yes, se elimina automáticamente la dirección IP de la pasarela por defecto para el protocolo correspondiente del perfil de conexión.

  2. Activa la conexión:

    # nmcli connection up connection_name

Pasos de verificación

  • Utilice los comandos ip -4 route y ip -6 route para verificar que RHEL no utiliza la interfaz de red para la ruta por defecto para el protocolo IPv4 e IPv6.

18.9. Corrección de un comportamiento de enrutamiento inesperado debido a múltiples puertas de enlace por defecto

Sólo hay unos pocos escenarios, como cuando se utiliza TCP multirruta, en los que se requieren múltiples pasarelas por defecto en un host. En la mayoría de los casos, sólo se configura una única puerta de enlace por defecto para evitar comportamientos de enrutamiento inesperados o problemas de enrutamiento asíncrono.

Nota

Para enrutar el tráfico a diferentes proveedores de Internet, utilice el enrutamiento basado en políticas en lugar de múltiples puertas de enlace predeterminadas.

Requisitos previos

  • El host utiliza NetworkManager para gestionar las conexiones de red, que es el valor por defecto.
  • El host tiene múltiples interfaces de red.
  • El host tiene configuradas varias pasarelas por defecto.

Procedimiento

  1. Muestra la tabla de enrutamiento:

    • Para IPv4, introduzca:

      # ip -4 route
      default via 192.0.2.1 dev enp1s0 proto static metric 101
      default via 198.51.100.1 dev enp7s0 proto static metric 102
      ...
    • Para IPv6, introduzca:

      # ip -6 route
      default via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium
      default via 2001:db8:2::1 dev enp7s0 proto static metric 102 pref medium
      ...

    Las entradas que comienzan con default indican una ruta por defecto. Observe los nombres de las interfaces de estas entradas que aparecen junto a dev.

  2. Utilice los siguientes comandos para mostrar las conexiones de NetworkManager que utilizan las interfaces que identificó en el paso anterior:

    # nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp1s0
    GENERAL.CONNECTION:      Corporate-LAN
    IP4.GATEWAY:             192.168.122.1
    IP6.GATEWAY:             2001:db8:1::1
    
    # nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp7s0
    GENERAL.CONNECTION:      Internet-Provider
    IP4.GATEWAY:             198.51.100.1
    IP6.GATEWAY:             2001:db8:2::1

    En estos ejemplos, los perfiles llamados Corporate-LAN y Internet-Provider tienen las puertas de enlace por defecto establecidas. Dado que, en una red local, la puerta de enlace por defecto suele ser el host que está un salto más cerca de Internet, el resto de este procedimiento asume que las puertas de enlace por defecto en Corporate-LAN son incorrectas.

  3. Configure que NetworkManager no utilice la conexión Corporate-LAN como ruta por defecto para las conexiones IPv4 e IPv6:

    # nmcli connection modify Corporate-LAN ipv4.never-default yes ipv6.never-default yes

    Tenga en cuenta que al configurar ipv4.never-default y ipv6.never-default en yes, se elimina automáticamente la dirección IP de la pasarela por defecto para el protocolo correspondiente del perfil de conexión.

  4. Active la conexión Corporate-LAN:

    # nmcli connection up Corporate-LAN

Pasos de verificación

  • Visualice las tablas de enrutamiento IPv4 e IPv6 y verifique que sólo hay una puerta de enlace predeterminada para cada protocolo:

    • Para IPv4, introduzca:

      # ip -4 route
      default via 192.0.2.1 dev enp1s0 proto static metric 101
      ...
    • Para IPv6, introduzca:

      # ip -6 route
      default via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium
      ...

Recursos adicionales

Capítulo 19. Configuración de rutas estáticas

Por defecto, y si se configura una puerta de enlace por defecto, Red Hat Enterprise Linux reenvía el tráfico para las redes que no están directamente conectadas al host a la puerta de enlace por defecto. Usando una ruta estática, puede configurar que Red Hat Enterprise Linux reenvíe el tráfico para un host o red específica a un enrutador diferente a la puerta de enlace por defecto. Esta sección describe diferentes opciones de cómo configurar rutas estáticas.

19.1. Cómo utilizar el comando nmcli para configurar una ruta estática

Para configurar una ruta estática, utilice la utilidad nmcli con la siguiente sintaxis:

$ nmcli connection modify connection_name ipv4.routes "ip[/prefix] [next_hop] [metric] [attribute=value] [attribute=value] ..."

El comando admite los siguientes atributos de ruta:

  • table=n
  • src=address
  • tos=n
  • onlink=true|false
  • window=n
  • cwnd=n
  • mtu=n
  • lock-window=true|false
  • lock-cwdn=true|false
  • lock-mtu=true|false

Si utiliza el subcomando ipv4.routes, nmcli anula todos los ajustes actuales de este parámetro. Para añadir una ruta adicional, utilice el comando nmcli connection modify connection_name ipv4.routes "…​" para añadir una ruta adicional. De forma similar, puede utilizar nmcli connection modify connection_name -ipv4.routes "…​" para eliminar una ruta específica.

19.2. Configuración de una ruta estática mediante un comando nmcli

Puede añadir una ruta estática a la configuración de una conexión de red mediante el comando nmcli connection modify.

El procedimiento de esta sección describe cómo añadir una ruta a la red 192.0.2.0/24 que utiliza la pasarela que se ejecuta en 198.51.100.1, a la que se puede acceder a través de la conexión example.

Requisitos previos

  • La red está configurada
  • La puerta de enlace para la ruta estática debe ser directamente alcanzable en la interfaz.
  • Si el usuario está conectado en una consola física, los permisos de usuario son suficientes. En caso contrario, el comando requiere permisos de root.

Procedimiento

  1. Añade la ruta estática a la conexión example:

    $ sudo nmcli connection modify example ipv4.routes "192.0.2.0/24 198.51.100.1"

    Para establecer varias rutas en un solo paso, pase las rutas individuales separadas por comas al comando. Por ejemplo, para añadir una ruta a las redes 192.0.2.0/24 y 203.0.113.0/24, ambas enrutadas a través de la pasarela 198.51.100.1, introduzca:

    $ sudo nmcli connection modify example ipv4.routes "192.0.2.0/24 198.51.100.1, 203.0.113.0/24 198.51.100.1"
  2. Opcionalmente, verifique que las rutas se han añadido correctamente a la configuración:

    $ nmcli connection show example
    ...
    ipv4.routes:        { ip = 192.0.2.1/24, nh = 198.51.100.1 }
    ...
  3. Reinicie la conexión de red:

    $ sudo nmcli connection up example
    Aviso

    El reinicio de la conexión interrumpe brevemente la conectividad en esa interfaz.

  4. Opcionalmente, verifique que la ruta esté activa:

    $ ip route
    ...
    192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100

Recursos adicionales

  • Para más detalles sobre nmcli, consulte la página de manual nmcli(1).

19.3. Configuración de una ruta estática mediante el centro de control

Puede utilizar control-center en GNOME para añadir una ruta estática a la configuración de una conexión de red.

El procedimiento de esta sección describe cómo añadir una ruta a la red 192.0.2.0/24 que utiliza la pasarela que se ejecuta en 198.51.100.1.

Requisitos previos

Procedimiento

  1. Abra la pestaña IPv4.
  2. Opcionalmente, desactive las rutas automáticas haciendo clic en el botón On en la sección Routes de la pestaña IPv4 para utilizar sólo rutas estáticas. Si las rutas automáticas están habilitadas, Red Hat Enterprise Linux utiliza rutas estáticas y rutas recibidas de un servidor DHCP.
  3. Introduzca la dirección, la máscara de red, la puerta de enlace y, opcionalmente, un valor métrico:

    Ruta estática IPv4 en el centro de control

  4. Haga clic en Aplicar.
  5. De vuelta en la ventana Network, desactive y vuelva a activar la conexión cambiando el botón de la conexión a Off y de nuevo a On para que los cambios surtan efecto.

    Aviso

    El reinicio de la conexión interrumpe brevemente la conectividad en esa interfaz.

  6. Opcionalmente, verifique que la ruta esté activa:

    $ ip route
    ...
    192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100

19.4. Configuración de una ruta estática mediante nm-connection-editor

Puede utilizar la aplicación nm-connection-editor para añadir una ruta estática a la configuración de una conexión de red.

El procedimiento de esta sección describe cómo añadir una ruta a la red 192.0.2.0/24 que utiliza la pasarela que se ejecuta en 198.51.100.1, a la que se puede acceder a través de la conexión example.

Requisitos previos

  • La red está configurada.
  • La puerta de enlace para la ruta estática debe ser directamente alcanzable en la interfaz.

Procedimiento

  1. Abra un terminal e introduzca nm-connection-editor:

    $ nm-connection-editor
  2. Seleccione la conexión example y haga clic en el icono de la rueda dentada para editar la conexión existente.
  3. Abra la pestaña IPv4.
  4. Haga clic en el botón Rutas.
  5. Haga clic en el botón Añadir e introduzca la dirección, la máscara de red, la puerta de enlace y, opcionalmente, un valor métrico.

    Ruta estática IPv4 en el editor de conexiones nm

  6. Haga clic en Aceptar.
  7. Haga clic en Guardar.
  8. Reinicie la conexión de red para que los cambios surtan efecto. Por ejemplo, para reiniciar la conexión example utilizando la línea de comandos:

    $ sudo nmcli connection up example
  9. Opcionalmente, verifique que la ruta esté activa:

    $ ip route
    ...
    192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100

19.5. Configurar una ruta estática utilizando el modo interactivo nmcli

Puede utilizar el modo interactivo de la utilidad nmcli para añadir una ruta estática a la configuración de una conexión de red.

El procedimiento de esta sección describe cómo añadir una ruta a la red 192.0.2.0/24 que utiliza la pasarela que se ejecuta en 198.51.100.1, a la que se puede acceder a través de la conexión example.

Requisitos previos

  • La red está configurada
  • La puerta de enlace para la ruta estática debe ser directamente alcanzable en la interfaz.
  • Si el usuario está conectado en una consola física, los permisos de usuario son suficientes. En caso contrario, el comando requiere permisos de root.

Procedimiento

  1. Abra el modo interactivo nmcli para la conexión example:

    $ sudo nmcli connection edit example
  2. Añade la ruta estática:

    nmcli> set ipv4.routes 192.0.2.0/24 198.51.100.1
  3. Opcionalmente, verifique que las rutas se han añadido correctamente a la configuración:

    nmcli> print
    ...
    ipv4.routes:        { ip = 192.0.2.1/24, nh = 198.51.100.1 }
    ...

    El atributo ip muestra la red a enrutar y el atributo nh la puerta de enlace (siguiente salto).

  4. Guarde la configuración:

    nmcli> save persistent
  5. Reinicie la conexión de red:

    nmcli> activate example
    Aviso

    Cuando se reinicie la conexión, todas las conexiones que estén utilizando esta conexión se interrumpirán temporalmente.

  6. Salga del modo interactivo de nmcli:

    nmcli> quit
  7. Opcionalmente, verifique que la ruta esté activa:

    $ ip route
    ...
    192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100

Recursos adicionales

  • Para ver la lista de comandos disponibles en el modo interactivo, introduzca help en el shell interactivo.

19.6. Configuración de una ruta estática mediante RHEL System Roles

Puede utilizar el rol de sistema networking RHEL para configurar rutas estáticas.

Importante

Cuando se ejecuta una obra que utiliza el rol de sistema networking RHEL, el rol de sistema anula un perfil de conexión existente con el mismo nombre si la configuración no coincide con la especificada en la obra. Por lo tanto, especifique siempre toda la configuración del perfil de conexión de red en la obra, incluso si, por ejemplo, la configuración de IP ya existe. De lo contrario, la función restablece estos valores a sus valores por defecto.

Dependiendo de si ya existe, el procedimiento crea o actualiza el perfil de conexión enp7s0 con la siguiente configuración:

  • Una dirección IPv4 estática - 198.51.100.20 con una máscara de subred /24
  • Una dirección IPv6 estática - 2001:db8:1::1 con una máscara de subred /64
  • Una pasarela por defecto IPv4 - 198.51.100.254
  • Una pasarela por defecto IPv6 - 2001:db8:1::fffe
  • Un servidor DNS IPv4 - 198.51.100.200
  • Un servidor DNS IPv6 - 2001:db8:1::ffbb
  • Un dominio de búsqueda DNS - example.com
  • Rutas estáticas:

    • 192.0.2.0/24 con puerta de enlace 198.51.100.1
    • 203.0.113.0/24 con puerta de enlace 198.51.100.2

Requisitos previos

  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si utiliza un usuario remoto diferente a root cuando ejecuta el libro de jugadas, este usuario tiene los permisos apropiados de sudo en el nodo gestionado.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    nodo.ejemplo.com
  2. Cree el libro de jugadas ~/add-static-routes.yml con el siguiente contenido:

    ---
    - name: Configure an Ethernet connection with static IP and additional routes
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            - name: enp7s0
              type: ethernet
              autoconnect: yes
              ip:
                address:
                  - 198.51.100.20/24
                  - 2001:db8:1::1/64
                gateway4: 198.51.100.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 198.51.100.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
                route:
                  - network: 192.0.2.0
                    prefix: 24
                    gateway: 198.51.100.1
                  - network: 203.0.113.0
                    prefix: 24
                    gateway: 198.51.100.2
              state: up
  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/add-static-routes.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/add-static-routes.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook solicite la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Pasos de verificación

  • Muestra la tabla de enrutamiento:

    # ip -4 route
    default via 198.51.100.254 dev enp7s0 proto static metric 100
    192.0.2.0/24 via 198.51.100.1 dev enp7s0 proto static metric 100
    203.0.113.0/24 via 198.51.100.2 dev enp7s0 proto static metric 100
    ...

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en network_connections y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

19.7. Creación de archivos de configuración de rutas estáticas en formato clave-valor cuando se utilizan los scripts de red heredados

Este procedimiento describe cómo crear manualmente un archivo de configuración de enrutamiento para una ruta IPv4 a la red 192.0.2.0/24 cuando se utilizan los scripts de red heredados en lugar de NetworkManager. En este ejemplo, la puerta de enlace correspondiente con la dirección IP 198.51.100.1 es accesible a través de la interfaz enp1s0.

El ejemplo de este procedimiento utiliza entradas de configuración en formato clave-valor.

Nota

Los scripts de red heredados sólo admiten el formato clave-valor para las rutas estáticas IPv4. Para las rutas IPv6, utilice el formato ip-command-. Véase Sección 19.8, “Creación de archivos de configuración de rutas estáticas en formato ip-command cuando se utilizan los scripts de red heredados”.

Requisitos previos

  • La puerta de enlace para la ruta estática debe ser directamente alcanzable en la interfaz.
  • El paquete NetworkManager no está instalado o el servicio NetworkManager está desactivado.
  • El paquete network-scripts está instalado.

Procedimiento

  1. Añade la ruta estática IPv4 al archivo /etc/sysconfig/network-scripts/route-enp0s1:

    ADDRESS0=192.0.2.0
    NETMASK0=255.255.255.0
    GATEWAY0=198.51.100.1
    • La variable ADDRESS0 define la red de la primera entrada de enrutamiento.
    • La variable NETMASK0 define la máscara de red de la primera entrada de enrutamiento.
    • La variable GATEWAY0 define la dirección IP de la puerta de enlace a la red o al host remoto para la primera entrada de enrutamiento.

      Si añade varias rutas estáticas, aumente el número en los nombres de las variables. Tenga en cuenta que las variables de cada ruta deben estar numeradas secuencialmente. Por ejemplo, ADDRESS0, ADDRESS1, ADDRESS3, y así sucesivamente.

  2. Reinicia la red:

    # systemctl restart network

Recursos adicionales

  • Para más detalles sobre la configuración de los scripts de red heredados, consulte el archivo /usr/share/doc/network-scripts/sysconfig.txt.

19.8. Creación de archivos de configuración de rutas estáticas en formato ip-command cuando se utilizan los scripts de red heredados

Este procedimiento describe cómo crear manualmente un archivo de configuración de enrutamiento para las siguientes rutas estáticas cuando se utilizan scripts de red heredados:

  • Una ruta IPv4 hacia la red 192.0.2.0/24. La pasarela correspondiente con la dirección IP 198.51.100.1 es accesible a través de la interfaz enp1s0.
  • Una ruta IPv6 hacia la red 2001:db8:1::/64. La pasarela correspondiente con la dirección IP 2001:db8:2::1 es accesible a través de la interfaz enp1s0.

El ejemplo de este procedimiento utiliza las entradas de configuración en ip-command-format.

Requisitos previos

  • La puerta de enlace para la ruta estática debe ser directamente alcanzable en la interfaz.
  • El paquete NetworkManager no está instalado o el servicio NetworkManager está desactivado.
  • El paquete network-scripts está instalado.

Procedimiento

  1. Añade la ruta estática IPv4 al archivo /etc/sysconfig/network-scripts/route-enp0s1:

    192.0.2.0/24 vía 198.51.100.1 dev enp0s1
  2. Añade la ruta estática IPv6 al archivo /etc/sysconfig/network-scripts/route6-enp0s1:

    2001:db8:1::/64 vía 2001:db8:2::1 dev enp0s1
  3. Reinicia la red:

    # systemctl restart network

Recursos adicionales

  • Para más detalles sobre la configuración de los scripts de red heredados, consulte el archivo /usr/share/doc/network-scripts/sysconfig.txt.

Capítulo 20. Configuración del enrutamiento basado en políticas para definir rutas alternativas

Por defecto, el kernel de RHEL decide dónde reenviar los paquetes de red en función de la dirección de destino utilizando una tabla de enrutamiento. El enrutamiento basado en políticas le permite configurar escenarios de enrutamiento complejos. Por ejemplo, puede enrutar los paquetes basándose en varios criterios, como la dirección de origen, los metadatos del paquete o el protocolo.

Esta sección describe cómo configurar el enrutamiento basado en políticas utilizando NetworkManager.

Nota

En los sistemas que utilizan NetworkManager, sólo la utilidad nmcli permite establecer reglas de enrutamiento y asignar rutas a tablas específicas.

20.1. Enrutamiento del tráfico de una subred específica a una puerta de enlace predeterminada diferente utilizando NetworkManager

Esta sección describe cómo configurar RHEL como un enrutador que, por defecto, enruta todo el tráfico al proveedor de Internet A utilizando la ruta por defecto. Utilizando el enrutamiento basado en políticas, RHEL enruta el tráfico recibido desde la subred de las estaciones de trabajo internas hacia el proveedor B.

El procedimiento supone la siguiente topología de red:

enrutamiento basado en políticas

Requisitos previos

  • El sistema utiliza NetworkManager para configurar la red, que es la predeterminada en RHEL 8.
  • El router RHEL que se quiere configurar en el procedimiento tiene cuatro interfaces de red:

    • La interfaz enp7s0 está conectada a la red del proveedor A. La IP de la pasarela en la red del proveedor es 198.51.100.2, y la red utiliza una máscara de red /30.
    • La interfaz enp1s0 está conectada a la red del proveedor B. La IP de la pasarela en la red del proveedor es 192.0.2.2, y la red utiliza una máscara de red /30.
    • La interfaz enp8s0 está conectada a la subred 10.0.0.0/24 con estaciones de trabajo internas.
    • La interfaz enp9s0 está conectada a la subred 203.0.113.0/24 con los servidores de la empresa.
  • Los hosts de la subred de las estaciones de trabajo internas utilizan 10.0.0.1 como pasarela por defecto. En el procedimiento, se asigna esta dirección IP a la interfaz de red enp8s0 del router.
  • Los hosts de la subred del servidor utilizan 203.0.113.1 como pasarela por defecto. En el procedimiento, se asigna esta dirección IP a la interfaz de red enp9s0 del router.
  • El servicio firewalld está habilitado y activo.

Procedimiento

  1. Configure la interfaz de red para el proveedor A:

    # nmcli connection add type ethernet con-name Provider-A ifname enp7s0 ipv4.method manual ipv4.addresses 198.51.100.1/30 ipv4.gateway 198.51.100.2 ipv4.dns 198.51.100.200 connection.zone external

    El comando nmcli connection add crea un perfil de conexión de NetworkManager. La siguiente lista describe las opciones del comando:

    • type ethernet : Define que el tipo de conexión es Ethernet.
    • con-nameconnection_name: Establece el nombre del perfil. Utilice un nombre significativo para evitar confusiones.
    • ifnamenetwork_device: Establece la interfaz de red.
    • ipv4.method manual : Permite configurar una dirección IP estática.
    • ipv4.addressesIP_address/subnet_mask: Establece las direcciones IPv4 y la máscara de subred.
    • ipv4.gatewayIP_address: Establece la dirección de la puerta de enlace por defecto.
    • ipv4.dnsIP_of_DNS_server: Establece la dirección IPv4 del servidor DNS.
    • connection.zonefirewalld_zone: Asigna la interfaz de red a la zona firewalld definida. Tenga en cuenta que firewalld activa automáticamente el enmascaramiento para las interfaces asignadas a la zona external.
  2. Configure la interfaz de red para el proveedor B:

    # nmcli connection add type ethernet con-name Provider-B ifname enp1s0 ipv4.method manual ipv4.addresses 192.0.2.1/30 ipv4.routes "0.0.0.0/0 192.0.2.2 table=5000" connection.zone external

    Este comando utiliza el parámetro ipv4.routes en lugar de ipv4.gateway para establecer la puerta de enlace predeterminada. Esto es necesario para asignar la puerta de enlace por defecto para esta conexión a una tabla de enrutamiento diferente (5000) a la predeterminada. NetworkManager crea automáticamente esta nueva tabla de enrutamiento cuando se activa la conexión.

  3. Configure la interfaz de red a la subred de las estaciones de trabajo internas:

    # nmcli connection add type ethernet con-name Internal-Workstations ifname enp8s0 ipv4.method manual ipv4.addresses 10.0.0.1/24 ipv4.routes "10.0.0.0/24 src=192.0.2.1 table=5000" ipv4.routing-rules "priority 5 from 10.0.0.0/24 table 5000" connection.zone internal

    Este comando utiliza el parámetro ipv4.routes para añadir una ruta estática a la tabla de enrutamiento con el ID 5000. Esta ruta estática para la subred 10.0.0.0/24 utiliza la IP de la interfaz de la red local al proveedor B (192.0.2.1) como siguiente salto.

    Además, el comando utiliza el parámetro ipv4.routing-rules para añadir una regla de enrutamiento con prioridad 5 que dirige el tráfico de la subred 10.0.0.0/24 a la tabla 5000. Los valores bajos tienen una prioridad alta.

    Tenga en cuenta que la sintaxis del parámetro ipv4.routing-rules es la misma que la de un comando ip route add, excepto que ipv4.routing-rules siempre requiere especificar una prioridad.

  4. Configure la interfaz de red a la subred del servidor:

    # nmcli connection add type ethernet con-name Servers ifname enp9s0 ipv4.method manual ipv4.addresses 203.0.113.1/24 connection.zone internal

Pasos de verificación

  1. En un host RHEL en la subred interna de la estación de trabajo:

    1. Instale el paquete traceroute:

      # yum install traceroute
    2. Utilice la utilidad traceroute para mostrar la ruta a un host en Internet:

      # traceroute redhat.com
      traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets
       1  10.0.0.1 (10.0.0.1)     0.337 ms  0.260 ms  0.223 ms
       2  192.0.2.1 (192.0.2.1)   0.884 ms  1.066 ms  1.248 ms
       ...

      La salida del comando muestra que el router envía paquetes a través de 192.0.2.1, que es la red del proveedor B.

  2. En un host RHEL en la subred del servidor:

    1. Instale el paquete traceroute:

      # yum install traceroute
    2. Utilice la utilidad traceroute para mostrar la ruta a un host en Internet:

      # traceroute redhat.com
      traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets
       1  203.0.113.1 (203.0.113.1)    2.179 ms  2.073 ms  1.944 ms
       2  198.51.100.2 (198.51.100.2)  1.868 ms  1.798 ms  1.549 ms
       ...

      La salida del comando muestra que el router envía paquetes a través de 198.51.100.2, que es la red del proveedor A.

Pasos para la resolución de problemas

En el router RHEL:

  1. Muestra la lista de reglas:

    # ip rule list
    0:	from all lookup local
    5:	from 10.0.0.0/24 lookup 5000
    32766:	from all lookup main
    32767:	from all lookup default

    Por defecto, RHEL contiene reglas para las tablas local, main, y default.

  2. Muestra las rutas en la tabla 5000:

    # ip route list table 5000
    0.0.0.0/0 via 192.0.2.2 dev enp1s0 proto static metric 100
    10.0.0.0/24 dev enp8s0 proto static scope link src 192.0.2.1 metric 102
  3. Muestra las interfaces y las zonas del cortafuegos:

    # firewall-cmd --get-active-zones
    external
      interfaces: enp1s0 enp7s0
    internal
      interfaces: enp8s0 enp9s0
  4. Compruebe que la zona external tiene activado el enmascaramiento:

    # firewall-cmd --info-zone=external
    external (active)
      target: default
      icmp-block-inversion: no
      interfaces: enp1s0 enp7s0
      sources:
      services: ssh
      ports:
      protocols:
      masquerade: yes
      ...

Recursos adicionales

  • Para más detalles sobre los parámetros de ipv4.* que puede establecer en el comando nmcli connection add, consulte la sección IPv4 settings en la página de manual nm-settings(5).
  • Para más detalles sobre los parámetros de connection.* que puede establecer en el comando nmcli connection add, consulte la sección Connection settings en la página de manual nm-settings(5).
  • Para más detalles sobre la gestión de las conexiones de NetworkManager utilizando nmcli, consulte la sección Connection management commands en la página man nmcli(1).

20.2. Visión general de los archivos de configuración implicados en el enrutamiento basado en políticas cuando se utilizan los scripts de red heredados

Si utiliza los scripts de red heredados en lugar de NetworkManager para configurar su red, también puede configurar el enrutamiento basado en políticas.

Nota

La configuración de la red utilizando los scripts de red heredados proporcionados por el paquete network-scripts está obsoleta en RHEL 8. Red Hat recomienda que utilice NetworkManager para configurar el enrutamiento basado en políticas. Para un ejemplo, vea Sección 20.1, “Enrutamiento del tráfico de una subred específica a una puerta de enlace predeterminada diferente utilizando NetworkManager”.

Los siguientes archivos de configuración intervienen en el enrutamiento basado en políticas cuando se utilizan los scripts de red heredados:

  • /etc/sysconfig/network-scripts/route-interface: Este archivo define las rutas IPv4. Utilice la opción table para especificar la tabla de enrutamiento. Por ejemplo:

    192.0.2.0/24 via 198.51.100.1 table 1
    203.0.113.0/24 via 198.51.100.2 table 2
  • /etc/sysconfig/network-scripts/route6-interface: Este archivo define las rutas IPv6.
  • /etc/sysconfig/network-scripts/rule-interface: Este archivo define las reglas para las redes de origen IPv4 para las cuales el kernel enruta el tráfico a tablas de enrutamiento específicas. Por ejemplo:

    from 192.0.2.0/24 lookup 1
    from 203.0.113.0/24 lookup 2
  • /etc/sysconfig/network-scripts/rule6-interface: Este archivo define las reglas para las redes de origen IPv6 para las cuales el kernel enruta el tráfico a tablas de enrutamiento específicas.
  • /etc/iproute2/rt_tables: Este archivo define los mapeos si desea utilizar nombres en lugar de números para referirse a tablas de enrutamiento específicas. Por ejemplo:

    1     Provider_A
    2     Provider_B

Recursos adicionales

  • Para más detalles sobre el enrutamiento IP, consulte la página de manual ip-route(8).
  • Para más detalles sobre las reglas de enrutamiento, consulte la página man ip-rule(8).

20.3. Enrutamiento del tráfico de una subred específica a una puerta de enlace predeterminada diferente utilizando los scripts de red heredados

Esta sección describe cómo configurar RHEL como un enrutador que, por defecto, enruta todo el tráfico al proveedor de Internet A utilizando la ruta por defecto. Utilizando el enrutamiento basado en políticas, RHEL enruta el tráfico recibido desde la subred de las estaciones de trabajo internas hacia el proveedor B.

Importante

La configuración de la red mediante los scripts de red heredados proporcionados por el paquete network-scripts está obsoleta en RHEL 8. Siga el procedimiento de esta sección sólo si utiliza los scripts de red heredados en lugar de NetworkManager en su host. Si utiliza NetworkManager para gestionar la configuración de la red, consulte Sección 20.1, “Enrutamiento del tráfico de una subred específica a una puerta de enlace predeterminada diferente utilizando NetworkManager”.

El procedimiento supone la siguiente topología de red:

enrutamiento basado en políticas

Nota

Los scripts de red heredados procesan los archivos de configuración en orden alfabético. Por lo tanto, debe nombrar los archivos de configuración de manera que se garantice que una interfaz, que se utiliza en las reglas y rutas de otras interfaces, esté lista cuando una interfaz dependiente la requiera. Para lograr el orden correcto, este procedimiento utiliza números en los archivos ifcfg-*, route-*, y rules-*.

Requisitos previos

  • El paquete NetworkManager no está instalado o el servicio NetworkManager está desactivado.
  • El paquete network-scripts está instalado.
  • El router RHEL que se quiere configurar en el procedimiento tiene cuatro interfaces de red:

    • La interfaz enp7s0 está conectada a la red del proveedor A. La IP de la pasarela en la red del proveedor es 198.51.100.2, y la red utiliza una máscara de red /30.
    • La interfaz enp1s0 está conectada a la red del proveedor B. La IP de la pasarela en la red del proveedor es 192.0.2.2, y la red utiliza una máscara de red /30.
    • La interfaz enp8s0 está conectada a la subred 10.0.0.0/24 con estaciones de trabajo internas.
    • La interfaz enp9s0 está conectada a la subred 203.0.113.0/24 con los servidores de la empresa.
  • Los hosts de la subred de las estaciones de trabajo internas utilizan 10.0.0.1 como pasarela por defecto. En el procedimiento, se asigna esta dirección IP a la interfaz de red enp8s0 del router.
  • Los hosts de la subred del servidor utilizan 203.0.113.1 como pasarela por defecto. En el procedimiento, se asigna esta dirección IP a la interfaz de red enp9s0 del router.
  • El servicio firewalld está habilitado y activo.

Procedimiento

  1. Añade la configuración de la interfaz de red al proveedor A creando el archivo /etc/sysconfig/network-scripts/ifcfg-1_Provider-A con el siguiente contenido:

    TYPE=Ethernet
    IPADDR=198.51.100.1
    PREFIX=30
    GATEWAY=198.51.100.2
    DNS1=198.51.100.200
    DEFROUTE=yes
    NAME=1_Provider-A
    DEVICE=enp7s0
    ONBOOT=yes
    ZONE=external

    La siguiente lista describe los parámetros utilizados en el archivo de configuración:

    • TYPE=Ethernet: Define que el tipo de conexión es Ethernet.
    • IPADDR=IP_address: Establece la dirección IPv4.
    • PREFIX=subnet_mask: Establece la máscara de subred.
    • GATEWAY=IP_address: Establece la dirección de la puerta de enlace por defecto.
    • DNS1=IP_of_DNS_server: Establece la dirección IPv4 del servidor DNS.
    • DEFROUTE=yes|no: Define si la conexión es una ruta por defecto o no.
    • NAME=connection_name: Establece el nombre del perfil de conexión. Utilice un nombre significativo para evitar confusiones.
    • DEVICE=network_device: Establece la interfaz de red.
    • ONBOOT=yes: Define que RHEL inicie esta conexión al arrancar el sistema.
    • ZONE=firewalld_zone: Asigna la interfaz de red a la zona firewalld definida. Tenga en cuenta que firewalld activa automáticamente el enmascaramiento para las interfaces asignadas a la zona external.
  2. Añade la configuración de la interfaz de red al proveedor B:

    1. Cree el archivo /etc/sysconfig/network-scripts/ifcfg-2_Provider-B con el siguiente contenido:

      TYPE=Ethernet
      IPADDR=192.0.2.1
      PREFIX=30
      DEFROUTE=no
      NAME=2_Provider-B
      DEVICE=enp1s0
      ONBOOT=yes
      ZONE=external

      Tenga en cuenta que el archivo de configuración de esta interfaz no contiene una configuración de puerta de enlace predeterminada.

    2. Asigne la pasarela para la conexión 2_Provider-B a una tabla de enrutamiento separada. Por lo tanto, cree el archivo /etc/sysconfig/network-scripts/route-2_Provider-B con el siguiente contenido:

      0.0.0.0/0 vía 192.0.2.2 tabla 5000

      Esta entrada asigna la pasarela y el tráfico de todas las subredes enrutadas a través de esta pasarela a la tabla 5000.

  3. Cree la configuración para la interfaz de red a la subred de las estaciones de trabajo internas:

    1. Cree el archivo /etc/sysconfig/network-scripts/ifcfg-3_Internal-Workstations con el siguiente contenido:

      TYPE=Ethernet
      IPADDR=10.0.0.1
      PREFIX=24
      DEFROUTE=no
      NAME=3_Internal-Workstations
      DEVICE=enp8s0
      ONBOOT=yes
      ZONE=internal
    2. Añade la configuración de la regla de enrutamiento para la subred interna de la estación de trabajo. Por lo tanto, cree el archivo /etc/sysconfig/network-scripts/rule-3_Internal-Workstations con el siguiente contenido:

      pri 5 de 10.0.0.0/24 tabla 5000

      Esta configuración define una regla de enrutamiento con prioridad 5 que enruta todo el tráfico de la subred 10.0.0.0/24 a la tabla 5000. Los valores bajos tienen una prioridad alta.

    3. Cree el archivo /etc/sysconfig/network-scripts/route-3_Internal-Workstations con el siguiente contenido para añadir una ruta estática a la tabla de enrutamiento con el ID 5000:

      10.0.0.0/24 vía 192.0.2.1 tabla 5000

      Esta ruta estática define que RHEL envía el tráfico de la subred 10.0.0.0/24 a la IP de la interfaz de red local al proveedor B (192.0.2.1). Esta interfaz es a la tabla de enrutamiento 5000 y se utiliza como el siguiente salto.

  4. Añada la configuración de la interfaz de red a la subred del servidor creando el archivo /etc/sysconfig/network-scripts/ifcfg-4_Servers con el siguiente contenido:

    TYPE=Ethernet
    IPADDR=203.0.113.1
    PREFIX=24
    DEFROUTE=no
    NAME=4_Servers
    DEVICE=enp9s0
    ONBOOT=yes
    ZONE=internal
  5. Reinicia la red:

    # systemctl restart network

Pasos de verificación

  1. En un host RHEL en la subred interna de la estación de trabajo:

    1. Instale el paquete traceroute:

      # yum install traceroute
    2. Utilice la utilidad traceroute para mostrar la ruta a un host en Internet:

      # traceroute redhat.com
      traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets
       1  10.0.0.1 (10.0.0.1)     0.337 ms  0.260 ms  0.223 ms
       2  192.0.2.1 (192.0.2.1)   0.884 ms  1.066 ms  1.248 ms
       ...

      La salida del comando muestra que el router envía paquetes a través de 192.0.2.1, que es la red del proveedor B.

  2. En un host RHEL en la subred del servidor:

    1. Instale el paquete traceroute:

      # yum install traceroute
    2. Utilice la utilidad traceroute para mostrar la ruta a un host en Internet:

      # traceroute redhat.com
      traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets
       1  203.0.113.1 (203.0.113.1)    2.179 ms  2.073 ms  1.944 ms
       2  198.51.100.2 (198.51.100.2)  1.868 ms  1.798 ms  1.549 ms
       ...

      La salida del comando muestra que el router envía paquetes a través de 198.51.100.2, que es la red del proveedor A.

Pasos para la resolución de problemas

En el router RHEL:

  1. Muestra la lista de reglas:

    # ip rule list
    0:      from all lookup local
    5:      from 10.0.0.0/24 lookup 5000
    32766:  from all lookup main
    32767:  from all lookup default

    Por defecto, RHEL contiene reglas para las tablas local, main, y default.

  2. Muestra las rutas en la tabla 5000:

    # ip route list table 5000
    default via 192.0.2.2 dev enp1s0
    10.0.0.0/24 via 192.0.2.1 dev enp1s0
  3. Muestra las interfaces y las zonas del cortafuegos:

    # firewall-cmd --get-active-zones
    external
      interfaces: enp1s0 enp7s0
    internal
      interfaces: enp8s0 enp9s0
  4. Compruebe que la zona external tiene activado el enmascaramiento:

    # firewall-cmd --info-zone=external
    external (active)
      target: default
      icmp-block-inversion: no
      interfaces: enp1s0 enp7s0
      sources:
      services: ssh
      ports:
      protocols:
      masquerade: yes
      ...

Recursos adicionales

Capítulo 21. Creación de una interfaz ficticia

Como usuario de Red Hat Enterprise Linux, puede crear y utilizar interfaces de red ficticias para propósitos de depuración y pruebas. Una interfaz ficticia proporciona un dispositivo para enrutar paquetes sin transmitirlos realmente. Le permite crear dispositivos adicionales tipo loopback gestionados por NetworkManager y hace que una dirección SLIP (Serial Line Internet Protocol) inactiva parezca una dirección real para los programas locales.

21.1. Creación de una interfaz ficticia con una dirección IPv4 e IPv6 mediante nmcli

Puede crear una interfaz ficticia con varias configuraciones. Este procedimiento describe cómo crear una interfaz ficticia con una dirección IPv4 e IPv6. Después de crear la interfaz ficticia, NetworkManager la asigna automáticamente a la zona de firewall predeterminada public.

Nota

Para configurar una interfaz ficticia sin dirección IPv4 o IPv6, establezca los parámetros ipv4.method y ipv6.method en disabled. De lo contrario, la autoconfiguración de IP falla y NetworkManager desactiva la conexión y elimina el dispositivo ficticio.

Procedimiento

  1. Para crear una interfaz ficticia llamada dummy0 con direcciones IPv4 e IPv6 estáticas, introduzca:

    # nmcli connection add type dummy ifname dummy0 ipv4.method manual ipv4.addresses 192.0.2.1/24 ipv6.method manual ipv6.addresses 2001:db8:2::1/64
  2. Opcional: Para ver la interfaz ficticia, introduzca:

    # nmcli connection show
    NAME            UUID                                  TYPE      DEVICE
    enp1s0          db1060e9-c164-476f-b2b5-caec62dc1b05  ethernet    ens3
    dummy-dummy0    aaf6eb56-73e5-4746-9037-eed42caa8a65  dummy    dummy0

Recursos adicionales

  • La página man de nm-settings(5)

Capítulo 22. Uso de netconsole para registrar los mensajes del kernel a través de una red

Utilizando el módulo del kernel netconsole y el servicio del mismo nombre, puede registrar los mensajes del kernel a través de una red para depurar el kernel cuando el registro en el disco falla o cuando no es posible utilizar una consola en serie.

22.1. Configurar el servicio netconsole para registrar los mensajes del kernel en un host remoto

Utilizando el módulo del kernel netconsole, puede registrar los mensajes del kernel en un servicio de registro del sistema remoto.

Requisitos previos

  • Un servicio de registro del sistema, como rsyslog está instalado en el host remoto.
  • El servicio de registro del sistema remoto está configurado para recibir entradas de registro de este host.

Procedimiento

  1. Instale el paquete netconsole-service:

    # yum install netconsole-service
  2. Edite el archivo /etc/sysconfig/netconsole y configure el parámetro SYSLOGADDR con la dirección IP del host remoto:

    # SYSLOGADDR=192.0.2.1
  3. Habilite e inicie el servicio netconsole:

    # systemctl enable --now netconsole

Pasos de verificación

  • Muestra el archivo /var/log/messages en el servidor de registro del sistema remoto.

Recursos adicionales

  • Para más detalles sobre cómo habilitar el host remoto para que reciba los mensajes de registro, consulte la sección Configuración de una solución de registro remoto en la documentación de Configuring basic system settings.

Capítulo 23. Objetivos y servicios de red Systemd

NetworkManager configura la red durante el proceso de arranque del sistema. Sin embargo, cuando se arranca con una raíz remota (/), como por ejemplo si el directorio raíz se almacena en un dispositivo iSCSI, la configuración de red se aplica en el disco RAM inicial (initrd) antes de que se inicie RHEL. Por ejemplo, si la configuración de red se especifica en la línea de comandos del kernel utilizando rd.neednet=1 o se especifica una configuración para montar sistemas de archivos remotos, entonces la configuración de red se aplica en initrd.

Esta sección describe diferentes objetivos como network, network-online, y el servicio NetworkManager-wait-online que se utilizan mientras se aplican los ajustes de red, y cómo configurar el servicio systemd para que se inicie después de que se inicie el servicio network-online.

23.1. Diferencias entre el objetivo systemd en red y en línea

Systemd mantiene las unidades de destino network y network-online. Las unidades especiales como NetworkManager-wait-online.service, tienen los parámetros WantedBy=network-online.target y Before=network-online.target. Si están habilitadas, estas unidades se inician con network-online.target y retrasan el objetivo a alcanzar hasta que se establezca algún tipo de conectividad de red. Retrasan el objetivo network-online hasta que la red esté conectada.

El objetivo network-online inicia un servicio, que añade retrasos sustanciales a la ejecución posterior. Systemd agrega automáticamente dependencias con parámetros Wants y After para esta unidad de destino a todas las unidades de servicio de scripts System V (SysV) init con un encabezado Linux Standard Base (LSB) que hace referencia a la instalación $network. La cabecera LSB es un metadato para los scripts init. Se puede utilizar para especificar las dependencias. Es similar al objetivo systemd.

El objetivo network no retrasa significativamente la ejecución del proceso de arranque. Alcanzar el objetivo network significa que el servicio responsable de configurar la red se ha iniciado. Sin embargo, no significa que se haya configurado un dispositivo de red. Este objetivo es importante durante el apagado del sistema. Por ejemplo, si usted tiene un servicio que fue ordenado después del objetivo network durante el arranque, entonces esta dependencia se invierte durante el apagado. La red no se desconecta hasta que su servicio se haya detenido. Todas las unidades de montaje para sistemas de archivos de red remotos inician automáticamente la unidad de destino network-online y se ordenan después de ella.

Nota

La unidad de destino network-online sólo es útil durante el arranque del sistema. Después de que el sistema haya terminado de arrancar, este objetivo no rastrea el estado en línea de la red. Por lo tanto, no se puede utilizar network-online para supervisar la conexión de red. Este objetivo proporciona un concepto de arranque del sistema de una sola vez.

23.2. Resumen de NetworkManager-wait-online

Los scripts de red heredados sincrónicos iteran a través de todos los archivos de configuración para configurar los dispositivos. Aplican todas las configuraciones relacionadas con la red y se aseguran de que la red esté en línea.

El servicio NetworkManager-wait-online espera con un tiempo de espera a que se configure la red. Esta configuración de la red implica conectar un dispositivo Ethernet, buscar un dispositivo Wi-Fi, etc. NetworkManager activa automáticamente los perfiles adecuados que están configurados para iniciarse automáticamente. El fallo del proceso de activación automática debido a un tiempo de espera de DHCP o un evento similar podría mantener a NetworkManager ocupado durante un largo periodo de tiempo. Dependiendo de la configuración, NetworkManager reintenta activar el mismo perfil o un perfil diferente.

Cuando la puesta en marcha se completa, todos los perfiles están en estado de desconexión o se activan con éxito. Puede configurar los perfiles para que se conecten automáticamente. A continuación se muestran algunos ejemplos de parámetros que establecen tiempos de espera o definen cuándo se considera que la conexión está activa:

  • connection.wait-device-timeout - establece el tiempo de espera para que el controlador detecte el dispositivo
  • ipv4.may-fail y ipv6.may-fail - establece la activación con una familia de direcciones IP lista, o si una familia de direcciones particular debe haber completado la configuración.
  • ipv4.gateway-ping-timeout - retrasa la activación.

Recursos adicionales

  • La página de manual nm-settings(5)

23.3. Configurar un servicio systemd para que se inicie después de que se haya iniciado la red

Red Hat Enterprise Linux instala los archivos de servicio systemd en el directorio /usr/lib/systemd/system/. Este procedimiento crea un fragmento para un archivo de servicio en /etc/systemd/system/service_name.service.d/ que se utiliza junto con el archivo de servicio en /usr/lib/systemd/system/ para iniciar un service particular después de que la red esté en línea. Tiene una mayor prioridad si los ajustes del fragmento drop-in se solapan con los del archivo de servicio en /usr/lib/systemd/system/.

Procedimiento

  1. Para abrir el archivo de servicio en el editor, introduzca:

    # systemctl edit service_name

  2. Introduzca lo siguiente y guarde los cambios:

    [Unit]
    After=network-online.target
  3. Recargue el servicio systemd.

    # systemctl daemon-reload

Capítulo 24. Control de tráfico de Linux

Linux ofrece herramientas para gestionar y manipular la transmisión de paquetes. El subsistema Linux Traffic Control (TC) ayuda a vigilar, clasificar, dar forma y programar el tráfico de la red. El TC también manipula el contenido de los paquetes durante la clasificación utilizando filtros y acciones. El subsistema TC logra esto utilizando disciplinas de colas (qdisc), un elemento fundamental de la arquitectura TC.

El mecanismo de programación ordena o reordena los paquetes antes de que entren o salgan de las diferentes colas. El planificador más común es el planificador FIFO (First-In-First-Out). Puede realizar las operaciones de qdiscs temporalmente utilizando la utilidad tc o permanentemente utilizando NetworkManager.

En esta sección se explican las disciplinas de colas y se describe cómo actualizar la dirección qdiscs por defecto en RHEL.

24.1. Visión general de las disciplinas de colas

Las disciplinas de colas (qdiscs) ayudan a poner en cola y, posteriormente, a programar la transmisión del tráfico por una interfaz de red. Un qdisc tiene dos operaciones;

  • solicitudes de cola para que un paquete pueda ser puesto en cola para su posterior transmisión y
  • las solicitudes de retirada de la cola para que uno de los paquetes en cola pueda ser elegido para su transmisión inmediata.

Cada qdisc tiene un número de identificación hexadecimal de 16 bits llamado handle, con dos puntos adjuntos, como 1: o abcd:. Este número se denomina número mayor de qdisc. Si un qdisc tiene clases, los identificadores se forman como un par de dos números con el número mayor antes del menor, <major>:<minor>, por ejemplo abcd:1. El esquema de numeración de los números menores depende del tipo de qdisc. A veces la numeración es sistemática, donde la primera clase tiene el identificador <major>:1, la segunda <major>:2, y así sucesivamente. Algunos qdiscs permiten al usuario establecer los números menores de las clases de forma arbitraria al crear la clase.

Clase qdiscs

Existen diferentes tipos de qdiscs que ayudan en la transferencia de paquetes hacia y desde una interfaz de red. Se puede configurar qdiscs con clases raíz, padre o hijo. El punto al que se pueden adjuntar los hijos se llaman clases. Las clases en qdisc son flexibles y siempre pueden contener varias clases hijas o una sola hija, qdisc. No existe ninguna prohibición de que una clase contenga a su vez una clase qdisc, lo que facilita los escenarios complejos de control de tráfico. La clase qdiscs no almacena ningún paquete. En su lugar, ponen en cola y decaen las peticiones hasta uno de sus hijos de acuerdo con los criterios específicos de qdisc. Al final, este paso recursivo de paquetes termina en el lugar donde se almacenan los paquetes (o se recogen en el caso de dequeuing).

Sin clase qdiscs

Algunos qdiscs no contienen clases hijas y se denominan qdiscs sin clase. Los qdiscs sin clase requieren menos personalización que los qdiscs con clase. Por lo general, basta con adjuntarlas a una interfaz.

Recursos adicionales

  • Para obtener información detallada sobre las clases sin y con clase qdiscs, consulte la página de manual tc(8).
  • Para obtener información detallada sobre las acciones, consulte las páginas de manual actions y tc-actions.8.

24.2. Discos disponibles en RHEL

Cada qdisc aborda problemas únicos relacionados con las redes. La siguiente es la lista de qdiscs disponible en RHEL. Puede utilizar cualquiera de los siguientes qdisc para dar forma al tráfico de red en función de sus necesidades de red.

Tabla 24.1. Programadores disponibles en RHEL

qdisc nombreIncluido enApoyo a la descarga

Modo de transferencia asíncrona (ATM)

kernel-modules-extra

 

Colas de espera por clases

kernel-modules-extra

 

Formador basado en el crédito

kernel-modules-extra

CHOose y Keep para flujos que responden, CHOose y Kill para flujos que no responden (CHOKE)

kernel-modules-extra

 

Retraso controlado (CoDel)

kernel-core

 

Deficit Round Robin (DRR)

kernel-modules-extra

 

Marcador de servicios diferenciados (DSMARK)

kernel-modules-extra

 

Selección de transmisión mejorada (ETS)

kernel-modules-extra

Cola justa (FQ)

kernel-core

 

Retraso controlado de colas justas (FQ_CODel)

kernel-core

 

Detección temprana aleatoria generalizada (GRED)

kernel-modules-extra

 

Curva jerárquica de servicio justo (HSFC)

kernel-core

 

Filtro de alta intensidad (HHF)

kernel-core

 

Cubo de fichas de jerarquía (HTB)

kernel-core

 

INGRESS

kernel-core

Prioridad de colas múltiples (MQPRIO)

kernel-modules-extra

Cola múltiple (MULTIQ)

kernel-modules-extra

Emulador de red (NETEM)

kernel-modules-extra

 

Controlador integral proporcional mejorado (PIE)

kernel-core

 

ENCHUFE

kernel-core

 

Cola justa rápida (QFQ)

kernel-modules-extra

 

Detección temprana aleatoria (RED)

kernel-modules-extra

Azul justo estocástico (SFB)

kernel-modules-extra

 

Colas estocásticas equitativas (SFQ)

kernel-core

 

Filtro de cubo de fichas (TBF)

kernel-core

Ecualizador de enlace trivial (TEQL)

kernel-modules-extra

 
Importante

La descarga de qdisc requiere soporte de hardware y controlador en la NIC.

Recursos adicionales

  • Para obtener información completa de los parámetros y filtros utilizados para configurar el qdiscs, consulte las páginas de manual tc(8), cbq, cbs, choke, CoDel, drr, fq, htb, mqprio, netem, pie, sfb, pfifo, tc-red, sfq, tbf, y prio.

24.3. Inspección de los discos de una interfaz de red mediante la utilidad tc

Por defecto, los sistemas Red Hat Enterprise Linux utilizan fq_codel qdisc . Este procedimiento describe cómo inspeccionar los contadores de qdisc.

Procedimiento

  1. Opcional: Ver su actual qdisc:

    # tc qdisc show dev enp0s1

  2. Inspeccione los contadores actuales de qdisc:

    # tc -s qdisc show dev enp0s1
    qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
    Sent 1008193 bytes 5559 pkt (dropped 233, overlimits 55 requeues 77)
    backlog 0b 0p requeues 0
    ....
  • dropped - el número de veces que un paquete se abandona porque todas las colas están llenas
  • overlimits - el número de veces que se llena la capacidad de enlace configurada
  • sent - el número de colas

24.4. Actualización del qdisc por defecto

Si observa pérdidas de paquetes en la red con el actual qdisc, puede cambiar el qdisc en función de los requisitos de su red. Puede seleccionar el qdisc, que cumpla con sus requerimientos de red. Este procedimiento describe cómo cambiar el valor por defecto qdisc en Red Hat Enterprise Linux.

Procedimiento

  1. Ver el valor por defecto actual qdisc:

    # sysctl -a | grep qdisc
    net.core.default_qdisc = fq_codel
  2. Ver el qdisc de la conexión Ethernet actual:

    # tc -s qdisc show dev enp0s1
    qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
    Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
    backlog 0b 0p requeues 0
    maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
    new_flows_len 0 old_flows_len 0
  3. Actualice la página web qdisc existente:

    # sysctl -w net.core.default_qdisc=pfifo_fast

  4. Para aplicar los cambios, vuelva a cargar el controlador de red:

    # rmmod NETWORKDRIVERNAME

    # modprobe NETWORKDRIVERNAME

  5. Inicie la interfaz de red:

    # ip link set enp0s1 up

Pasos de verificación

  • Ver el qdisc de la conexión Ethernet:

    # tc -s qdisc show dev enp0s1
    qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
     Sent 373186 bytes 5333 pkt (dropped 0, overlimits 0 requeues 0)
     backlog 0b 0p requeues 0
    ....

Recursos adicionales

24.5. Establecer temporalmente el qdisk actual de una interfaz de red mediante la utilidad tc

Puede actualizar el qdisc actual sin cambiar el predeterminado. Este procedimiento describe cómo cambiar el qdisc actual en Red Hat Enterprise Linux.

Procedimiento

  1. Opcional: Ver la página web actual qdisc:

    # tc -s qdisc show dev enp0s1

  2. Actualice la actual qdisc:

    # tc qdisc replace dev enp0s1 root htb

Paso de verificación

  • Vea la versión actualizada de qdisc:

    # tc -s qdisc show dev enp0s1
    qdisc htb 8001: root refcnt 2 r2q 10 default 0 direct_packets_stat 0 direct_qlen 1000
    Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
    backlog 0b 0p requeues 0

24.6. Establecer permanentemente el qdisk actual de una interfaz de red utilizando NetworkManager

Puede actualizar el valor actual de qdisc de una conexión NetworkManager.

Procedimiento

  1. Opcional: Ver la página web actual qdisc:

    # tc qdisc show dev enp0s1
      qdisc fq_codel 0: root refcnt 2
  2. Actualice la actual qdisc:

    # nmcli connection modify enp0s1 tc.qdiscs ‘root pfifo_fast’

  3. Opcional: Para añadir otro qdisc sobre el existente qdisc, utilice la opción tc.qdisc:

    # nmcli connection modify enp0s1 tc.qdisc ‘ingress handle ffff:’

  4. Activa los cambios:

    # nmcli connection up enp0s1

Pasos de verificación

  • Ver la corriente qdisc la interfaz de red:

    # tc qdisc show dev _enp0s1_
    qdisc _pfifo_fast_ 8001: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
    qdisc ingress ffff: parent ffff:fff1 ----------------

Recursos adicionales

  • Para más información, consulte la página de manual nm-settings(5).

Capítulo 25. Introducción al TCP multirruta

Importante

El TCP multirruta se proporciona sólo como una Muestra de Tecnología. Las funciones de la Muestra de Tecnología no son compatibles con los Acuerdos de Nivel de Servicio (SLA) de producción de Red Hat, pueden no ser funcionalmente completas y Red Hat no recomienda su uso para la producción. Estas vistas previas proporcionan un acceso temprano a las próximas características del producto, permitiendo a los clientes probar la funcionalidad y proporcionar comentarios durante el proceso de desarrollo.

Consulte el alcance del soporte de las características de Technology Preview en el Portal del Cliente de Red Hat para obtener información sobre el alcance del soporte de las características de Technology Preview.

El TCP multirruta (MPTCP) es una extensión del Protocolo de Control de Transmisión (TCP). Mediante el Protocolo de Internet (IP), un host puede enviar paquetes a un destino. TCP garantiza la entrega fiable de los datos a través de Internet y ajusta automáticamente su ancho de banda en respuesta a la carga de la red.

Las ventajas de MPTCP son las siguientes:

  • Permite el uso de TCP en dispositivos equipados con dos o más interfaces de red.
  • Permite a los usuarios utilizar simultáneamente diferentes interfaces de red o cambiar sin problemas de una conexión a otra.
  • Mejora el uso de los recursos dentro de la red y la resistencia a los fallos de la misma.

Esta sección describe cómo:

  • crear una nueva conexión MPTCP,
  • utilizar iproute2 para añadir nuevos subflujos y direcciones IP a las conexiones MPTCP, y
  • desactivar MPTCP en el kernel para evitar que las aplicaciones utilicen conexiones MPTCP.

25.1. Preparación de RHEL para habilitar el soporte de MPTCP

Pocas aplicaciones soportan nativamente MPTCP. En su mayoría, los sockets orientados a la conexión y al flujo solicitan el protocolo TCP en la llamada socket() al sistema operativo. Puede habilitar el soporte de MPTCP en RHEL utilizando la herramienta sysctl para los programas que soportan MPTCP de forma nativa. La implementación de MPTCP también está diseñada para permitir el uso del protocolo MPTCP para las aplicaciones que solicitan la llamada IPPROTO_TCP al kernel.

Este procedimiento describe cómo habilitar el soporte de MPTCP y preparar a RHEL para habilitar MPTCP en todo el sistema utilizando un script de SystemTap.

Requisitos previos

Los siguientes paquetes están instalados:

  • kernel-debuginfo
  • kernel-debuginfo-common
  • systemtap
  • systemtap-devel
  • kernel-devel
  • nmap-ncat

Procedimiento

  1. Habilitar los sockets MPTCP en el kernel:

    # echo "net.mptcp.enabled=1" > /etc/sysctl.d/90-enable-MPTCP.conf
    # sysctl -p /etc/sysctl.d/90-enable-MPTCP.conf
  2. Cree un archivo mptcp.stap con el siguiente contenido:

    #! /usr/bin/env stap
    
    %{
    #include <linux/in.h>
    #include <linux/ip.h>
    %}
    
    /* according to [1], RSI contains 'type' and RDX
     * contains 'protocol'.
     * [1] https://github.com/torvalds/linux/blob/master/arch/x86/entry/entry_64.S#L79
     */
    
    function mptcpify () %{
        if (CONTEXT->kregs->si == SOCK_STREAM &&
            (CONTEXT->kregs->dx == IPPROTO_TCP ||
             CONTEXT->kregs->dx == 0)) {
                    CONTEXT->kregs->dx = IPPROTO_MPTCP;
                    STAP_RETVALUE = 1;
        } else {
               STAP_RETVALUE = 0;
        }
    %}
    
    probe kernel.function("__sys_socket") {
            if (mptcpify() == 1) {
                    printf("command %16s mptcpified\n", execname());
            }
    }
  3. Sustituye el socket TCP por MPTCP:

    # stap -vg mptcp.stap

    Nota: Utilice Ctrl+C para volver a convertir la conexión a TCP desde MPTCP.

  4. Inicie un servidor que escuche el puerto TCP 4321:

    # ncat -4 -l 4321

  5. Conectar con el servidor e intercambiar tráfico. Por ejemplo, aquí el cliente escribe "Hola mundo" al servidor 5 veces, luego termina la conexión.

    # ncat -4 192.0.2.1 4321
    Hello world 1
    Hello world 2
    Hello world 3
    Hello world 4
    Hello world 5

    Pulse Ctrl+D para salir.

Pasos de verificación

  1. Verifique que MPTCP está habilitado en el kernel:

    # sysctl -a | grep mptcp.enabled
    net.mptcp.enabled = 1
  2. Después de que el script mptcp.stap instale la sonda del kernel, aparecen las siguientes advertencias en la salida del kernel dmesg

    # dmesg
    ...
    [ 1752.694072] Kprobes globally unoptimized
    [ 1752.730147] stap_1ade3b3356f3e68765322e26dec00c3d_1476: module_layout: kernel tainted.
    [ 1752.732162] Disabling lock debugging due to kernel taint
    [ 1752.733468] stap_1ade3b3356f3e68765322e26dec00c3d_1476: loading out-of-tree module taints kernel.
    [ 1752.737219] stap_1ade3b3356f3e68765322e26dec00c3d_1476: module verification failed: signature and/or required key missing - tainting kernel
  3. Una vez establecida la conexión, verifique la salida de ss para ver el estado específico del subflujo:

    # ss -nti '( dport :4321 )' dst 192.0.2.1
    State Recv-Q Send-Q Local Address:Port    Peer Address:Port Process
    
    ESTAB 0      0          192.0.2.2:60874      192.0.2.1:4321
    cubic wscale:7,7 rto:201 rtt:0.042/0.017 mss:1448 pmtu:1500 rcvmss:536 advmss:1448 cwnd:10 bytes_sent:64 bytes_$cked:65 segs_out:6 segs_in:5 data_segs_out:4 send 2758095238bps lastsnd:57 lastrcv:3054 lastack:57 pacing_rate 540361516$bps delivery_rate 413714280bps delivered:5 rcv_space:29200 rcv_ssthresh:29200 minrtt:0.009 tcp-ulp-mptcp flags:Mmec token:0000(id:0)/4bffe73d(id:0) seq:c11f40d6c5337463 sfseq:1 ssnoff:f7455705 maplen:0
  4. Capturar el tráfico mediante tcpdump y comprobar el uso de la subopción MPTCP:

    # tcpdump -tnni interface tcp port 4321
    client Out IP 192.0.2.2.60802 > 192.0.2.1.4321: Flags [S], seq 3420255622, win 29200, options [mss 1460,sackOK,TS val 411 4539945 ecr 0,nop,wscale 7,mptcp capable v1], length 0
    client In  IP 192.0.2.1.4321 > 192.0.2.2.60802: Flags [S.], seq 2619315374, ack 3420255623, win 28960, options [mss 1460 sackOK,TS val 3241564233 ecr 4114539945,nop,wscale 7,mptcp capable v1 {0xb6f8dc721aee7f64}], length 0
    client Out IP 192.0.2.2.60802 > 192.0.2.1.4321: Flags [.], ack 1, win 229, options [nop,nop,TS val 4114539945 ecr 3241564 233,mptcp capable v1 {0xcc58d5d632a32d13,0xb6f8dc721aee7f64}], length 0
    client Out IP 192.0.2.2.60802 > 192.0.2.1.4321: Flags [P.], seq 1:17, ack 1, win 229, options [nop,nop,TS val 4114539945 ecr 3241564233,mptcp capable v1 {0xcc58d5d632a32d13,0xb6f8dc721aee7f64},nop,nop], length 16
    client In  IP 192.0.2.1.4321 > 192.0.2.2.60802: Flags [.], ack 17, win 227, options [nop,nop,TS val 3241564233 ecr 411459945,mptcp dss ack 1105509586894558345], length 0
    client Out IP 192.0.2.2.60802 > 192.0.2.1.4321: Flags [P.], seq 17:33, ack 1, win 229, options [nop,nop,TS val 4114540939 ecr 3241564233,mptcp dss ack 13265586846326199424 seq 105509586894558345 subseq 17 len 16,nop,nop], length 16

    El paquete tcpdump es necesario para ejecutar este comando.

Recursos adicionales

25.2. Uso de iproute2 para notificar a las aplicaciones sobre múltiples rutas disponibles

Por defecto, el socket MPTCP se inicia con un único subflujo, pero puede añadir nuevos subflujos y direcciones IP a la conexión una vez que la cree por primera vez. Este procedimiento describe cómo actualizar los límites por conexión para los subflujos y las direcciones IP, y añadir nuevas direcciones IP (puntos finales) a la conexión MPTCP.

Tenga en cuenta que MPTCP todavía no admite puntos finales mixtos IPv6 e IPv4 para el mismo socket. Utilice puntos finales que pertenezcan a la misma familia de direcciones.

Procedimiento

  1. Establezca los límites por conexión y por dirección IP en 1 en el servidor:

    # ip mptcp limits set subflow 1

  2. Establezca los límites por conexión y por dirección IP en 1 en el cliente:

    # ip mptcp limits set subflow 1 add_addr_accepted 1

  3. Añade la dirección IP 198.51.100.1 como nuevo punto final MPTCP en el servidor:

    # ip mptcp endpoint add 198.51.100.1 dev enp1s0 signal

    Importante

    Puede establecer los siguientes valores para las banderas: subflow, backup, signal. Fijar la bandera en;

    • signal, envía un paquete ADD_ADDR después de que se haya completado el apretón de manos a tres bandas
    • subflow, envía un MP_JOIN SYN por el cliente
    • backup, establece el punto final como dirección de reserva
  4. Inicie el servidor vinculado a 0.0.0.0 con el argumento -k para evitar que [systemitem]'ncat' cierre el socket de escucha después de aceptar la primera conexión y hacer que el servidor rechace MP_JOIN SYN hecho por el cliente.

    # ncat -4 0.0.0.0 -k -l 4321

  5. Inicie el cliente y conéctese al servidor para intercambiar tráfico. Por ejemplo, aquí el cliente escribe "Hola mundo" al servidor 5 veces, y luego termina la conexión.

    # ncat -4 192.0.2.1 4321
    Hello world 1
    Hello world 2
    Hello world 3
    Hello world 4
    Hello world 5

    Pulse Ctrl+D para salir.

Pasos de verificación

  1. Verifique la conexión y el límite de la dirección IP:

    # ip mptcp limit show

  2. Verifique el nuevo punto final añadido:

    # ip mptcp endpoint show

  3. Capturar el tráfico mediante tcpdump y comprobar el uso de la subopción MPTCP:

    # tcpdump -tnni interface tcp port 4321
    client Out IP 192.0.2.2.56868 > 192.0.2.1.4321: Flags [S], seq 3107783947, win 29200, options [mss 1460,sackOK,TS val 2568752336 ecr 0,nop,wscale 7,mptcp capable v1], length 0
    client In  IP 192.0.2.1.4321 > 192.0.2.2.56868: Flags [S.], seq 4222339923, ack 3107783948, win 28960, options [mss 1460,sackOK,TS val 1713130246 ecr 2568752336,nop,wscale 7,mptcp capable v1 {0xf51c07a47cc2ba75}], length 0
    client Out IP 192.0.2.2.56868 > 192.0.2.1.4321: Flags [.], ack 1, win 229, options [nop,nop,TS val 2568752336 ecr 1713130246,mptcp capable v1 {0xb243376cc5af60bd,0xf51c07a47cc2ba75}], length 0
    client Out IP 192.0.2.2.56868 > 192.0.2.1.4321: Flags [P.], seq 1:17, ack 1, win 229, options [nop,nop,TS val 2568752336 ecr 1713130246,mptcp capable v1 {0xb243376cc5af60bd,0xf51c07a47cc2ba75},nop,nop], length 16
    client In  IP 192.0.2.1.4321 > 192.0.2.2.56868: Flags [.], ack 17, win 227, options [nop,nop,TS val 1713130246 ecr 2568752336,mptcp add-addr id 1 198.51.100.1 hmac 0xe445335073818837,mptcp dss ack 5562689076006296132], length 0
    client Out IP 198.51.100.2.42403 > 198.51.100.1.4321: Flags [S], seq 3356992178, win 29200, options [mss 1460,sackOK,TS val 4038525523 ecr 0,nop,wscale 7,mptcp join backup id 0 token 0xad58df1 nonce 0x74a8137f], length 0
    client In  IP 198.51.100.1.4321 > 198.51.100.2.42403: Flags [S.], seq 1680863152, ack 3356992179, win 28960, options [mss 1460,sackOK,TS val 4213669942 ecr 4038525523,nop,wscale 7,mptcp join backup id 0 hmac 0x9eff7a1bf4e65937 nonce 0x77303fd8], length 0
    client Out IP 198.51.100.2.42403 > 198.51.100.1.4321: Flags [.], ack 1, win 229, options [nop,nop,TS val 4038525523 ecr 4213669942,mptcp join hmac 0xdfdc0129424f627ea774c094461328ce49d195bc], length 0
    client In  IP 198.51.100.1.4321 > 198.51.100.2.42403: Flags [.], ack 1, win 227, options [nop,nop,TS val 4213669942 ecr 4038525523,mptcp dss ack 5562689076006296132], length 0

    El paquete tcpdump es necesario para ejecutar este comando.

Recursos adicionales

  • Para más información sobre las banderas disponibles para los puntos finales, consulte la página man ip-mptcp(8).

25.3. Desactivación de Multipath TCP en el kernel

Este procedimiento describe cómo desactivar la opción MPTCP en el kernel.

Procedimiento

  • Desactive la opción mptcp.enabled.

    # echo "net.mptcp.enabled=0" > /etc/sysctl.d/90-enable-MPTCP.conf
    # sysctl -p /etc/sysctl.d/90-enable-MPTCP.conf

Pasos de verificación

  • Verifique si el mptcp.enabled está desactivado en el kernel.

    # sysctl -a | grep mptcp.enabled
    net.mptcp.enabled = 0

Capítulo 26. Configurar el orden de los servidores DNS

La mayoría de las aplicaciones utilizan la función getaddrinfo() de la biblioteca glibc para resolver las peticiones DNS. Por defecto, glibc envía todas las solicitudes DNS al primer servidor DNS especificado en el archivo /etc/resolv.conf. Si este servidor no responde, Red Hat Enterprise Linux utiliza el siguiente servidor en este archivo.

Esta sección describe cómo personalizar el orden de los servidores DNS.

26.1. Cómo NetworkManager ordena los servidores DNS en /etc/resolv.conf

NetworkManager ordena los servidores DNS en el archivo /etc/resolv.conf basándose en las siguientes reglas:

  • Si sólo existe un perfil de conexión, NetworkManager utiliza el orden del servidor DNS IPv4 e IPv6 especificado en esa conexión.
  • Si se activan varios perfiles de conexión, NetworkManager ordena los servidores DNS basándose en un valor de prioridad DNS. Si establece prioridades DNS, el comportamiento de NetworkManager depende del valor establecido en el parámetro dns. Puede establecer este parámetro en la sección [main] del archivo /etc/NetworkManager/NetworkManager.conf:

    • dns=default o si el parámetro dns no está configurado:

      NetworkManager ordena los servidores DNS de las diferentes conexiones basándose en los parámetros ipv4.dns-priority y ipv6.dns-priority de cada conexión.

      Si no establece ningún valor o establece ipv4.dns-priority y ipv6.dns-priority a 0, NetworkManager utiliza el valor global por defecto. Véase “Valores por defecto de los parámetros de prioridad DNS”.

    • dns=dnsmasq o dns=systemd-resolved:

      Cuando se utiliza una de estas configuraciones, NetworkManager establece 127.0.0.1 para dnsmasq o 127.0.0.53 como entrada nameserver en el archivo /etc/resolv.conf.

      Tanto los servicios dnsmasq como systemd-resolved reenvían las consultas para el dominio de búsqueda establecido en una conexión de NetworkManager al servidor DNS especificado en esa conexión, y reenvían las consultas a otros dominios a la conexión con la ruta por defecto. Cuando varias conexiones tienen el mismo dominio de búsqueda establecido, dnsmasq y systemd-resolved reenvían las consultas para este dominio al servidor DNS establecido en la conexión con el valor de prioridad más bajo.

Valores por defecto de los parámetros de prioridad DNS

NetworkManager utiliza los siguientes valores por defecto para las conexiones:

  • 50 para conexiones VPN
  • 100 para otras conexiones

Valores de prioridad DNS válidos:

Puede establecer tanto los parámetros globales por defecto como los específicos de la conexión ipv4.dns-priority y ipv6.dns-priority a un valor entre -2147483647 y 2147483647.

  • Un valor más bajo tiene mayor prioridad.
  • Los valores negativos tienen el efecto especial de excluir otras configuraciones con un valor mayor. Por ejemplo, si existe al menos una conexión con un valor de prioridad negativo, NetworkManager utiliza sólo los servidores DNS especificados en el perfil de conexión con la prioridad más baja.
  • Si varias conexiones tienen la misma prioridad de DNS, NetworkManager prioriza los DNS en el siguiente orden:

    1. Conexiones VPN
    2. Conexión con una ruta por defecto activa. La ruta por defecto activa es la ruta por defecto la métrica más baja.

Recursos adicionales

  • Para más detalles sobre cómo NetworkManager ordena las entradas del servidor DNS en el archivo /etc/resolv.conf, consulte la descripción del parámetro dns-priority en las secciones ipv4 y ipv6 en la página de manual nm-settings(5).
  • Para más detalles sobre el uso de systemd-resolved para utilizar diferentes servidores DNS para diferentes dominios, consulte Capítulo 34, Uso de diferentes servidores DNS para diferentes dominios.

26.2. Establecer un valor de prioridad del servidor DNS por defecto en todo NetworkManager

NetworkManager utiliza los siguientes valores por defecto de prioridad DNS para las conexiones:

  • 50 para conexiones VPN
  • 100 para otras conexiones

Esta sección describe cómo anular estos valores predeterminados de todo el sistema con un valor predeterminado personalizado para las conexiones IPv4 e IPv6.

Procedimiento

  1. Edite el archivo /etc/NetworkManager/NetworkManager.conf:

    1. Añada la sección [connection], si no existe:

      [conexión]
    2. Añada los valores predeterminados personalizados a la sección [connection]. Por ejemplo, para establecer el nuevo valor por defecto tanto para IPv4 como para IPv6 en 200, añada:

      ipv4.dns-priority=200
      ipv6.dns-priority=200

      Puede ajustar los parámetros a un valor entre -2147483647 y 2147483647. Tenga en cuenta que al establecer los parámetros en 0 se activan los valores predeterminados incorporados (50 para conexiones VPN y 100 para otras conexiones).

  2. Recargue el servicio NetworkManager:

    # systemctl reload NetworkManager

Recursos adicionales

  • Para más detalles sobre cómo establecer los valores por defecto para todas las conexiones de NetworkManager, consulte Connection Section en la página de manual NetworkManager.conf(5).

26.3. Establecer la prioridad DNS de una conexión de NetworkManager

Esta sección describe cómo definir el orden de los servidores DNS cuando NetworkManager crea o actualiza el archivo /etc/resolv.conf.

Tenga en cuenta que el establecimiento de prioridades DNS sólo tiene sentido si tiene varias conexiones con diferentes servidores DNS configurados. Si sólo tiene una conexión con varios servidores DNS configurados, establezca manualmente los servidores DNS en el orden preferido en el perfil de conexión.

Requisitos previos

  • El sistema tiene configuradas varias conexiones de NetworkManager.
  • El sistema no tiene configurado el parámetro dns en el archivo /etc/NetworkManager/NetworkManager.conf o el parámetro está configurado en default.

Procedimiento

  1. Opcionalmente, mostrar las conexiones disponibles:

    # nmcli connection show
    NAME           UUID                                  TYPE      DEVICE
    Example_con_1  d17ee488-4665-4de2-b28a-48befab0cd43  ethernet  enp1s0
    Example_con_2  916e4f67-7145-3ffa-9f7b-e7cada8f6bf7  ethernet  enp7s0
    ...
  2. Establezca los parámetros ipv4.dns-priority y ipv6.dns-priority. Por ejemplo, para establecer ambos parámetros en 10 para la conexión Example_con_1:

    # nmcli connection modify Example_con_1 ipv4.dns-priority 10 ipv6.dns-priority 10
  3. Opcionalmente, repita el paso anterior para otras conexiones.
  4. Vuelva a activar la conexión que actualizó:

    # nmcli connection up Example_con_1

Pasos de verificación

  • Visualice el contenido del archivo /etc/resolv.conf para verificar que el orden de los servidores DNS es correcto:

    # cat /etc/resolv.conf

Capítulo 27. Configuración de redes ip con archivos ifcfg

Esta sección describe cómo configurar una interfaz de red manualmente mediante la edición de los archivos ifcfg.

Los archivos de configuración de interfaz (ifcfg) controlan las interfaces de software para los dispositivos de red individuales. Cuando el sistema arranca, utiliza estos archivos para determinar qué interfaces deben aparecer y cómo configurarlas. Estos archivos suelen llamarse ifcfg-namedonde el sufijo name se refiere al nombre del dispositivo que controla el archivo de configuración. Por convención, el sufijo del archivo ifcfg es el mismo que la cadena dada por la directiva DEVICE en el propio archivo de configuración.

27.1. Configuración de una interfaz con ajustes de red estáticos mediante archivos ifcfg

Este procedimiento describe cómo configurar una interfaz de red utilizando los archivos ifcfg.

Procedimiento

  • Para configurar una interfaz con ajustes de red estáticos utilizando archivos ifcfg, para una interfaz con el nombre enp1s0, cree un archivo con el nombre ifcfg-enp1s0 en el directorio /etc/sysconfig/network-scripts/ que contenga:

    • Para la configuración de IPv4:

      DEVICE=enp1s0
      BOOTPROTO=none
      ONBOOT=yes
      PREFIX=24
      IPADDR=10.0.1.27
      GATEWAY=10.0.1.1
    • Para la configuración de IPv6:

      DEVICE=enp1s0
      BOOTPROTO=none
      ONBOOT=yes
      IPV6INIT=yes
      IPV6ADDR=2001:db8:1::2/64

Recursos adicionales

27.2. Configuración de una interfaz con ajustes de red dinámicos mediante archivos ifcfg

Este procedimiento describe cómo configurar una interfaz de red con ajustes de red dinámicos utilizando los archivos ifcfg.

Procedimiento

  1. Para configurar una interfaz denominada em1 con ajustes de red dinámicos mediante archivos ifcfg, cree un archivo con el nombre ifcfg-em1 en el directorio /etc/sysconfig/network-scripts/ que contenga:

    DEVICE=em1
    BOOTPROTO=dhcp
    ONBOOT=yes
  2. Para configurar una interfaz para que envíe un nombre de host diferente al servidor DHCP, añada la siguiente línea al archivo ifcfg:

    DHCP_HOSTNAME=hostname
  3. Para configurar una interfaz para que envíe un nombre de dominio completamente cualificado (FQDN) diferente al servidor DHCP, añada la siguiente línea al archivo ifcfg:

    DHCP_FQDN=fully.qualified.domain.name
    Nota

    Sólo debe utilizarse una directiva, ya sea DHCP_HOSTNAME o DHCP_FQDN, en un determinado archivo ifcfg. En caso de que se especifique tanto DHCP_HOSTNAME como DHCP_FQDN, sólo se utilizará esta última.

  4. Para configurar una interfaz para que utilice determinados servidores DNS, añada las siguientes líneas al archivo ifcfg:

      PEERDNS=no
      DNS1=ip-address
      DNS2=ip-address

    donde ip-address es la dirección de un servidor DNS. Esto hará que el servicio de red actualice /etc/resolv.conf con los servidores DNS especificados. Sólo es necesaria una dirección de servidor DNS, la otra es opcional.

27.3. Gestión de perfiles de conexión privados y para todo el sistema con archivos ifcfg

Este procedimiento describe cómo configurar los archivos ifcfg para gestionar los perfiles de conexión privados y de todo el sistema.

Procedimiento

Los permisos corresponden a la directiva USERS en los archivos ifcfg. Si la directiva USERS no está presente, el perfil de red estará disponible para todos los usuarios.

  1. Como ejemplo, modifique el archivo ifcfg con la siguiente fila, que hará que la conexión esté disponible sólo para los usuarios indicados:

    USERS="joe bob alice"

Capítulo 28. Uso de NetworkManager para desactivar IPv6 para una conexión específica

Esta sección describe cómo desactivar el protocolo IPv6 en un sistema que utiliza NetworkManager para gestionar las interfaces de red. Si desactiva IPv6, NetworkManager establece automáticamente los valores correspondientes de sysctl en el Kernel.

Nota

El servicio NetworkManager establece ciertos valores de sysctl cuando inicia una conexión. Para evitar comportamientos inesperados, no establezca manualmente los valores de sysctl para desactivar IPv6.

Requisitos previos

  • El sistema utiliza NetworkManager para gestionar las interfaces de red, que es el valor por defecto en Red Hat Enterprise Linux 8.
  • El sistema ejecuta Red Hat Enterprise Linux 8.1 o posterior.

28.1. Desactivación de IPv6 en una conexión mediante nmcli

Utilice esta sección para desactivar el protocolo IPv6 mediante la utilidad nmcli.

Procedimiento

  1. Opcionalmente, mostrar la lista de conexiones de red:

    # nmcli connection show
    NAME    UUID                                  TYPE      DEVICE
    Example 7a7e0151-9c18-4e6f-89ee-65bb2d64d365  ethernet  enp1s0
    ...
  2. Ajuste el parámetro ipv6.method de la conexión a disabled:

    # nmcli connection modify Example ipv6.method \ ~ disabled"
  3. Reinicie la conexión de red:

    # nmcli connection up Example

Pasos de verificación

  1. Introduzca el comando ip address show para mostrar la configuración IP del dispositivo:

    # ip address show enp1s0
    2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 52:54:00:6b:74:be brd ff:ff:ff:ff:ff:ff
        inet 192.0.2.1/24 brd 192.10.2.255 scope global noprefixroute enp1s0
           valid_lft forever preferred_lft forever

    Si no se muestra ninguna entrada en inet6, IPv6 está desactivado en el dispositivo.

  2. Compruebe que el archivo /proc/sys/net/ipv6/conf/enp1s0/disable_ipv6 contiene ahora el valor 1:

    # cat /proc/sys/net/ipv6/conf/enp1s0/disable_ipv6
    1

    El valor 1 significa que IPv6 está desactivado para el dispositivo.

Capítulo 29. Configuración manual del archivo /etc/resolv.conf

Por defecto, NetworkManager en Red Hat Enterprise Linux (RHEL) 8 actualiza dinámicamente el archivo /etc/resolv.conf con la configuración DNS de los perfiles de conexión activos de NetworkManager. Esta sección describe diferentes opciones sobre cómo desactivar esta característica para configurar manualmente los ajustes DNS en /etc/resolv.conf.

29.1. Desactivación del procesamiento de DNS en la configuración de NetworkManager

Esta sección describe cómo desactivar el procesamiento de DNS en la configuración de NetworkManager para configurar manualmente el archivo /etc/resolv.conf.

Procedimiento

  1. Como usuario root, cree el archivo /etc/NetworkManager/conf.d/90-dns-none.conf con el siguiente contenido utilizando un editor de texto:

    [main]
    dns=none
  2. Recargue el servicio NetworkManager:

    # systemctl reload NetworkManager
    Nota

    Después de recargar el servicio, NetworkManager ya no actualiza el archivo /etc/resolv.conf. Sin embargo, se conserva el último contenido del archivo.

  3. Opcionalmente, elimine el comentario Generated by NetworkManager de /etc/resolv.conf para evitar confusiones.

Pasos de verificación

  1. Edite el archivo /etc/resolv.conf y actualice manualmente la configuración.
  2. Recargue el servicio NetworkManager:

    # systemctl reload NetworkManager
  3. Muestra el archivo /etc/resolv.conf:

    # cat /etc/resolv.conf

    Si ha desactivado correctamente el procesamiento de DNS, NetworkManager no ha anulado los ajustes configurados manualmente.

Recursos adicionales

  • Para más detalles, consulte la descripción del parámetro dns en la página de manual NetworkManager.conf(5).

Capítulo 31. Configuración de las funciones de descarga de ethtool

Las tarjetas de interfaz de red pueden utilizar el motor de descarga TCP (TOE) para descargar el procesamiento de ciertas operaciones al controlador de red para mejorar el rendimiento de la red.

Esta sección describe cómo configurar las funciones de descarga.

31.1. Funciones de descarga soportadas por NetworkManager

Puede configurar las siguientes funciones de descarga de ethtool mediante NetworkManager:

  • ethtool.feature-esp-hw-offload
  • ethtool.feature-esp-tx-csum-hw-offload
  • ethtool.feature-fcoe-mtu
  • ethtool.feature-gro
  • ethtool.feature-gso
  • ethtool.feature-highdma
  • ethtool.feature-hw-tc-offload
  • ethtool.feature-l2-fwd-offload
  • ethtool.feature-loopback
  • ethtool.feature-lro
  • ethtool.feature-ntuple
  • ethtool.feature-rx
  • ethtool.feature-rx-all
  • ethtool.feature-rx-fcs
  • ethtool.feature-rx-gro-hw
  • ethtool.feature-rx-udp_tunnel-port-offload
  • ethtool.feature-rx-vlan-filter
  • ethtool.feature-rx-vlan-stag-filter
  • ethtool.feature-rx-vlan-stag-hw-parse
  • ethtool.feature-rxhash
  • ethtool.feature-rxvlan
  • ethtool.feature-sg
  • ethtool.feature-tls-hw-record
  • ethtool.feature-tls-hw-tx-offload
  • ethtool.feature-tso
  • ethtool.feature-tx
  • ethtool.feature-tx-checksum-fcoe-crc
  • ethtool.feature-tx-checksum-ip-generic
  • ethtool.feature-tx-checksum-ipv4
  • ethtool.feature-tx-checksum-ipv6
  • ethtool.feature-tx-checksum-sctp
  • ethtool.feature-tx-esp-segmentation
  • ethtool.feature-tx-fcoe-segmentation
  • ethtool.feature-tx-gre-csum-segmentation
  • ethtool.feature-tx-gre-segmentation
  • ethtool.feature-tx-gso-partial
  • ethtool.feature-tx-gso-robust
  • ethtool.feature-tx-ipxip4-segmentation
  • ethtool.feature-tx-ipxip6-segmentation
  • ethtool.feature-tx-nocache-copy
  • ethtool.feature-tx-scatter-gather
  • ethtool.feature-tx-scatter-gather-fraglist
  • ethtool.feature-tx-sctp-segmentation
  • ethtool.feature-tx-tcp-ecn-segmentation
  • ethtool.feature-tx-tcp-mangleid-segmentation
  • ethtool.feature-tx-tcp-segmentation
  • ethtool.feature-tx-tcp6-segmentation
  • ethtool.feature-tx-udp-segmentation
  • ethtool.feature-tx-udp_tnl-csum-segmentation
  • ethtool.feature-tx-udp_tnl-segmentation
  • ethtool.feature-tx-vlan-stag-hw-insert
  • ethtool.feature-txvlan

Para más detalles sobre las funciones individuales de descarga, consulte la documentación de la utilidad ethtool y la documentación del kernel.

31.2. Configuración de una función de descarga de ethtool mediante NetworkManager

Esta sección describe cómo activar y desactivar las funciones de descarga de ethtool mediante NetworkManager, así como cómo eliminar la configuración de una función de un perfil de conexión de NetworkManager.

Procedimiento

  1. Por ejemplo, para activar la función de descarga de recepción y desactivar la descarga de transmisión en el perfil de conexión enp1s0, introduzca:

    # nmcli con modify enp1s0 ethtool.feature-rx on ethtool.feature-tx off

    Este comando activa explícitamente la descarga de recepción y desactiva la descarga de transmisión.

  2. Para eliminar la configuración de una función de descarga que haya activado o desactivado previamente, establezca el parámetro de la función en ignore. Por ejemplo, para eliminar la configuración de la descarga de TX, introduzca:

    # nmcli con modify enp1s0 ethtool.feature-tx ignore
  3. Reactivar el perfil de red:

    # nmcli connection up enp1s0

Pasos de verificación

  1. Utilice el comando ethtool -k para mostrar las características actuales de descarga de un dispositivo de red:

    # ethtool -k network_device

Recursos adicionales

31.3. Uso de los roles del sistema para establecer las características de ethtool

Puede utilizar el rol de sistema networking RHEL para configurar las características de ethtool de una conexión NetworkManager.

Importante

Cuando se ejecuta una obra que utiliza el rol de sistema networking RHEL, el rol de sistema anula un perfil de conexión existente con el mismo nombre si la configuración no coincide con la especificada en la obra. Por lo tanto, especifique siempre toda la configuración del perfil de conexión de red en la obra, incluso si, por ejemplo, la configuración de IP, ya existe. De lo contrario, el rol restablece estos valores a sus valores por defecto.

Dependiendo de si ya existe, el procedimiento crea o actualiza el perfil de conexión enp1s0 con la siguiente configuración:

  • Una dirección IPv4 estática - 198.51.100.20 con una máscara de subred /24
  • Una dirección IPv6 estática - 2001:db8:1::1 con una máscara de subred /64
  • Una pasarela por defecto IPv4 - 198.51.100.254
  • Una pasarela por defecto IPv6 - 2001:db8:1::fffe
  • Un servidor DNS IPv4 - 198.51.100.200
  • Un servidor DNS IPv6 - 2001:db8:1::ffbb
  • Un dominio de búsqueda DNS - example.com
  • ethtool características:

    • Descarga de recepción genérica (GRO): desactivada
    • Descarga de segmentación genérica (GSO): activada
    • Segmentación del protocolo de control de transmisión de flujos (SCTP): desactivada

Requisitos previos

  • Los paquetes ansible y rhel-system-roles se instalan en el nodo de control.
  • Si se utiliza un usuario remoto diferente a root cuando se ejecuta el libro de jugadas, este usuario tiene los permisos apropiados de sudo en el nodo gestionado.

Procedimiento

  1. Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible /etc/ansible/hosts:

    nodo.ejemplo.com
  2. Cree el libro de jugadas ~/configure-ethernet-device-with-ethtool-features.yml con el siguiente contenido:

    ---
    - name. Configure an Ethernet connection with ethtool features
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            - name: enp1s0
              type: ethernet
              autoconnect: yes
              ip:
                address:
                  - 198.51.100.20/24
                  - 2001:db8:1::1/64
                gateway4: 198.51.100.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 198.51.100.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
              ethtool:
                feature:
                  gro: "no"
                  gso: "yes"
                  tx_sctp_segmentation: "no"
              state: up
  3. Ejecuta el libro de jugadas:

    • Para conectarse como usuario de root al host gestionado, introduzca:

      # ansible-playbook -u root ~/configure-ethernet-device-with-ethtool-features.yml
    • Para conectarse como usuario al host gestionado, introduzca:

      # ansible-playbook -u user_name --ask-become-pass ~/configure-ethernet-device-with-ethtool-features.yml

      La opción --ask-become-pass asegura que el comando ansible-playbook solicite la contraseña sudo del usuario definido en la opción -u user_name opción.

    Si no se especifica la opción -u user_name ansible-playbook se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.

Recursos adicionales

  • Para obtener una lista completa de las características de ethtool y detalles sobre los parámetros utilizados en network_connections, y para obtener información adicional sobre el rol del sistema network, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.network/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).

Capítulo 32. Configuración de los ajustes de ethtool coalesce

Utilizando la coalescencia de interrupciones, el sistema recoge los paquetes de red y genera una única interrupción para varios paquetes. Esto aumenta la cantidad de datos enviados al núcleo con una sola interrupción de hardware, lo que reduce la carga de interrupciones y maximiza el rendimiento.

Esta sección proporciona diferentes opciones para establecer los ajustes de coalescencia de ethtool.

32.1. Ajustes de coalescencia soportados por NetworkManager

Puede establecer los siguientes ajustes de coalescencia de ethtool utilizando NetworkManager:

  • [parámetro]`coalesce-adaptive-rx'
  • [parámetro]`coalesce-adaptive-tx'
  • [parámetro]`coalesce-pkt-rate-high'
  • [parámetro]`coalesce-pkt-rate-low'
  • [parámetro]`coalesce-rx-frames'
  • [parámetro]`coalesce-rx-frames-high'
  • [parámetro]`coalesce-rx-frames-irq'
  • [parámetro]`coalesce-rx-frames-low'
  • [parámetro]`coalesce-rx-usecs'
  • [parámetro]`coalesce-rx-usecs-high'
  • [parámetro]`coalesce-rx-usecs-irq'
  • [parámetro]`coalesce-rx-usecs-low'
  • [parámetro]`intervalo de coalescencia de la muestra'
  • [parámetro]`coalesce-stats-block-usecs'
  • [parámetro]`coalesce-tx-frames'
  • [parámetro]`coalesce-tx-frames-high'
  • [parámetro]`coalesce-tx-frames-irq'
  • [parámetro]`coalesce-tx-frames-low'
  • [parámetro]`coalesce-tx-usecs'
  • [parámetro]`coalesce-tx-usecs-high'
  • [parámetro]`coalesce-tx-usecs-irq'
  • [parámetro]`coalesce-tx-usecs-low'

32.2. Configuración de los ajustes de ethtool coalesce mediante NetworkManager

Esta sección describe cómo establecer la configuración de coalescencia de ethtool utilizando NetworkManager, así como cómo eliminar la configuración de un perfil de conexión de NetworkManager.

Procedimiento

  1. Por ejemplo, para establecer el número máximo de paquetes recibidos para retrasar a 128 en el perfil de conexión enp1s0, introduzca:

    # nmcli connection modify enp1s0 ethtool.coalesce-rx-frames 128
  2. Para eliminar una configuración de coalescencia, establezca la configuración en ignore. Por ejemplo, para eliminar la configuración de ethtool.coalesce-rx-frames, introduzca:

    # nmcli connection modify enp1s0 ethtool.coalesce-rx-frames ignore
  3. Para reactivar el perfil de red:

    # nmcli connection up enp1s0

Pasos de verificación

  1. Utilice el comando ethtool -c para mostrar las características actuales de descarga de un dispositivo de red:

    # ethtool -c network_device

Recursos adicionales

Capítulo 33. Configuración de MACsec

La siguiente sección proporciona información sobre cómo configurar Media Control Access Security (MACsec), que es una tecnología de seguridad estándar 802.1AE IEEE para la comunicación segura en todo el tráfico de los enlaces Ethernet.

33.1. Introducción a MACsec

Media Access Control Security (MACsec, IEEE 802.1AE) cifra y autentifica todo el tráfico en las redes LAN con el algoritmo GCM-AES-128. MACsec puede proteger no sólo IP sino también el Protocolo de Resolución de Direcciones (ARP), el Descubrimiento de Vecinos (ND) o DHCP. Mientras que IPsec opera en la capa de red (capa 3) y SSL o TLS en la capa de aplicación (capa 7), MACsec opera en la capa de enlace de datos (capa 2). Combina MACsec con protocolos de seguridad para otras capas de red para aprovechar las diferentes características de seguridad que ofrecen estos estándares.

33.2. Uso de MACsec con la herramienta nmcli

Este procedimiento muestra cómo configurar MACsec con la herramienta nmcli.

Requisitos previos

  • El NetworkManager debe estar en funcionamiento.
  • Ya tiene un CAK hexadecimal de 16 bytes ($MKA_CAK) y un CKN hexadecimal de 32 bytes ($MKA_CKN).

Procedimiento

  1. Para añadir una nueva conexión utilizando nmcli, introduzca:

    ~]# nmcli connection add type macsec \
      con-name test-macsec+ ifname macsec0 \
      connection.autoconnect no \
      macsec.parent enp1s0 macsec.mode psk \
      macsec.mka-cak $MKA_CAK \
      macsec.mka-ckn $MKA_CKN

    Sustituya macsec0 por el nombre del dispositivo que desea configurar.

  2. Para activar la conexión, introduzca:

    ~]# nmcli connection up test-macsec

Después de este paso, el dispositivo macsec0 está configurado y puede utilizarse para la conexión en red.

33.3. Uso de MACsec con wpa_supplicant

Este procedimiento muestra cómo habilitar MACsec con un conmutador que realiza la autenticación utilizando un par precompartido de clave de asociación de conectividad/nombre CAK (CAK/CKN).

Procedimiento

  1. Crea un par CAK/CKN. Por ejemplo, el siguiente comando genera una clave de 16 bytes en notación hexadecimal:

    ~]$ dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%02x"'
  2. Cree el archivo de configuración wpa_supplicant.conf y añada las siguientes líneas:

    ctrl_interface=/var/run/wpa_supplicant
    eapol_version=3
    ap_scan=0
    fast_reauth=1
    
    network={
        key_mgmt=NONE
        eapol_flags=0
        macsec_policy=1
    
        mka_cak=0011... # 16 bytes hexadecimal
        mka_ckn=2233... # 32 bytes hexadecimal
    }

    Utilice los valores del paso anterior para completar las líneas mka_cak y mka_ckn en el archivo de configuración wpa_supplicant.conf.

    Para más información, consulte la página de manual wpa_supplicant.conf(5).

  3. Asumiendo que está usando wlp61s0 para conectarse a su red, inicie wpa_supplicant utilizando el siguiente comando:

    ~]# wpa_supplicant -i wlp61s0 -Dmacsec_linux -c wpa_supplicant.conf

Capítulo 34. Uso de diferentes servidores DNS para diferentes dominios

Por defecto, Red Hat Enterprise Linux (RHEL) envía todas las peticiones DNS al primer servidor DNS especificado en el archivo /etc/resolv.conf. Si este servidor no responde, RHEL utiliza el siguiente servidor en este archivo.

En entornos en los que un servidor DNS no puede resolver todos los dominios, los administradores pueden configurar RHEL para que envíe las peticiones DNS de un dominio específico a un servidor DNS seleccionado. Por ejemplo, puede configurar un servidor DNS para resolver las consultas de example.com y otro servidor DNS para resolver las consultas de example.net. Para el resto de peticiones DNS, RHEL utiliza el servidor DNS configurado en la conexión con la pasarela por defecto.

Importante

En RHEL 8, Red Hat proporciona systemd-resolved como una Muestra de Tecnología no soportada.

34.1. Envío de solicitudes DNS para un dominio específico a un servidor DNS seleccionado

Esta sección configura el servicio systemd-resolved y NetworkManager para enviar consultas DNS para un dominio específico a un servidor DNS seleccionado.

Si completa el procedimiento de esta sección, RHEL utiliza el servicio DNS proporcionado por systemd-resolved en el archivo /etc/resolv.conf. El servicio systemd-resolved inicia un servicio DNS que escucha en el puerto 53 dirección IP 127.0.0.53. El servicio enruta dinámicamente las peticiones DNS a los correspondientes servidores DNS especificados en NetworkManager.

Nota

La dirección 127.0.0.53 sólo es accesible desde el sistema local y no desde la red.

Requisitos previos

  • El sistema tiene configuradas varias conexiones de NetworkManager.
  • En las conexiones de NetworkManager se configuran un servidor DNS y un dominio de búsqueda que se encargan de resolver un dominio específico

    Por ejemplo, si el servidor DNS especificado en una conexión VPN debe resolver consultas para el dominio example.com, el perfil de conexión VPN debe tener:

    • Configurado un servidor DNS que puede resolver example.com
    • Configurado el dominio de búsqueda a example.com en los parámetros ipv4.dns-search y ipv6.dns-search

Procedimiento

  1. Inicie y active el servicio systemd-resolved:

    # systemctl --now enable systemd-resolved
  2. Edite el archivo /etc/NetworkManager/NetworkManager.conf, y establezca la siguiente entrada en la sección [main]:

    dns=sistema resuelto
  3. Recargue el servicio NetworkManager:

    # systemctl reload NetworkManager

Pasos de verificación

  1. Compruebe que la entrada nameserver del archivo /etc/resolv.conf hace referencia a 127.0.0.53:

    # cat /etc/resolv.conf
    nameserver 127.0.0.53
  2. Compruebe que el servicio systemd-resolved escucha en el puerto 53 en la dirección IP local 127.0.0.53:

    # netstat -tulpn | grep "127.0.0.53:53"
    tcp   0   0 127.0.0.53:53   0.0.0.0:*   LISTEN   1050/systemd-resolv
    udp   0   0 127.0.0.53:53   0.0.0.0:*            1050/systemd-resolv

Recursos adicionales

  • Para más detalles, consulte la descripción del parámetro dns en la página de manual NetworkManager.conf(5).

Capítulo 35. Introducción a la IPVLAN

Este documento describe el controlador IPVLAN.

35.1. Resumen de IPVLAN

IPVLAN es un controlador para un dispositivo de red virtual que puede utilizarse en un entorno de contenedor para acceder a la red del host. IPVLAN expone una única dirección MAC a la red externa independientemente del número de dispositivos IPVLAN creados dentro de la red host. Esto significa que un usuario puede tener varios dispositivos IPVLAN en varios contenedores y el switch correspondiente lee una única dirección MAC. El controlador IPVLAN es útil cuando el conmutador local impone restricciones al número total de direcciones MAC que puede gestionar.

35.2. Modos de IPVLAN

Los siguientes modos están disponibles para IPVLAN:

  • L2 mode

    En IPVLAN L2 mode, los dispositivos virtuales reciben y responden a las solicitudes del Protocolo de Resolución de Direcciones (ARP). El marco netfilter se ejecuta únicamente dentro del contenedor que posee el dispositivo virtual. No se ejecutan cadenas de netfilter en el espacio de nombres por defecto en el tráfico del contenedor. El uso de L2 mode proporciona un buen rendimiento, pero menos control sobre el tráfico de red.

  • L3 mode

    En L3 mode, los dispositivos virtuales sólo procesan el tráfico de L3 y superior. Los dispositivos virtuales no responden a las solicitudes ARP y los usuarios deben configurar manualmente las entradas de vecinos para las direcciones IPVLAN en los pares correspondientes. El tráfico de salida de un contenedor relevante es aterrizado en las cadenas netfilter POSTROUTING y OUTPUT en el espacio de nombres por defecto mientras que el tráfico de entrada es enhebrado de la misma manera que L2 mode. El uso de L3 mode proporciona un buen control pero disminuye el rendimiento del tráfico de red.

  • L3S mode

    En L3S mode, los dispositivos virtuales se procesan de la misma manera que en L3 mode, excepto que tanto el tráfico de salida como el de entrada de un contenedor relevante se aterrizan en la cadena netfilter en el espacio de nombres por defecto. L3S mode se comporta de manera similar a L3 mode pero proporciona un mayor control de la red.

Nota

El dispositivo virtual IPVLAN no recibe tráfico de difusión y multidifusión en el caso de L3 y L3S modes.

35.3. Resumen de MACVLAN

El controlador MACVLAN permite crear múltiples dispositivos de red virtuales sobre una única NIC, cada uno de ellos identificado por su propia y única dirección MAC. Los paquetes que aterrizan en la NIC física se demultiplexan hacia el dispositivo MACVLAN correspondiente a través de la dirección MAC del destino. Los dispositivos MACVLAN no añaden ningún nivel de encapsulación.

35.4. Comparación de IPVLAN y MACVLAN

La siguiente tabla muestra las principales diferencias entre MACVLAN e IPVLAN.

MACVLANIPVLAN

Utiliza la dirección MAC para cada dispositivo MACVLAN. El exceso de direcciones MAC en la tabla MAC del conmutador puede hacer que se pierda la conectividad.

Utiliza una única dirección MAC que no limita el número de dispositivos IPVLAN.

Las reglas de Netfilter para el espacio de nombres global no pueden afectar al tráfico hacia o desde el dispositivo MACVLAN en un espacio de nombres hijo.

Es posible controlar el tráfico hacia o desde el dispositivo IPVLAN en L3 mode y L3S mode.

Tenga en cuenta que tanto la IPVLAN como la MACVLAN no requieren ningún nivel de encapsulación.

35.5. Creación y configuración del dispositivo IPVLAN mediante iproute2

Este procedimiento muestra cómo configurar el dispositivo IPVLAN utilizando iproute2.

Procedimiento

  1. Para crear un dispositivo IPVLAN, introduzca el siguiente comando:

    ~]# ip link add link real_NIC_device name IPVLAN_device type ipvlan mode l2

    Tenga en cuenta que el controlador de interfaz de red (NIC) es un componente de hardware que conecta un ordenador a una red.

    Ejemplo 35.1. Creación de un dispositivo IPVLAN

    ~]# ip link add link enp0s31f6 name my_ipvlan type ipvlan mode l2
    ~]# ip link
    47: my_ipvlan@enp0s31f6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether e8:6a:6e:8a:a2:44 brd ff:ff:ff:ff:ff:ff
  2. Para asignar una dirección IPv4 o IPv6 a la interfaz, introduzca el siguiente comando:

    ~]# ip addr add dev IPVLAN_device IP_address/subnet_mask_prefix
  3. En caso de configurar un dispositivo IPVLAN en L3 mode o L3S mode, realice las siguientes configuraciones:

    1. Configura la configuración de vecinos para el peer remoto en el host remoto:

      ~]# ip neigh add dev peer_device IPVLAN_device_IP_address lladdr MAC_address

      donde MAC_address es la dirección MAC de la NIC real en la que se basa un dispositivo IPVLAN.

    2. Configure un dispositivo IPVLAN para L3 mode con el siguiente comando:

      ~]# ip neigh add dev real_NIC_device peer_IP_address lladdr peer_MAC_address

      Para L3S mode:

      ~]# ip route dev add real_NIC_device peer_IP_address/32

      donde la dirección IP representa la dirección del peer remoto.

  4. Para activar un dispositivo IPVLAN, introduzca el siguiente comando:

    ~]# ip link set dev IPVLAN_device up
  5. Para comprobar si el dispositivo IPVLAN está activo, ejecute el siguiente comando en el host remoto:

    ~]# ping IP_address

    donde el IP_address utiliza la dirección IP del dispositivo IPVLAN.

Capítulo 36. Configuración del enrutamiento y reenvío virtual (VRF)

Con el enrutamiento y reenvío virtual (VRF), los administradores pueden utilizar varias tablas de enrutamiento simultáneamente en el mismo host. Para ello, VRF particiona una red en la capa 3. Esto permite al administrador aislar el tráfico utilizando tablas de rutas separadas e independientes por dominio VRF. Esta técnica es similar a las LAN virtuales (VLAN), que particionan una red en la capa 2, donde el sistema operativo utiliza diferentes etiquetas VLAN para aislar el tráfico que comparte el mismo medio físico.

Una de las ventajas de la VRF sobre la partición en la capa 2 es que el enrutamiento se escala mejor teniendo en cuenta el número de pares involucrados.

Red Hat Enterprise Linux utiliza un dispositivo virtual vrt para cada dominio VRF y añade rutas a un dominio VRF añadiendo dispositivos de red existentes a un dispositivo VRF. Las direcciones y rutas previamente adjuntadas al dispositivo original serán movidas dentro del dominio VRF.

Tenga en cuenta que cada dominio VRF está aislado de los demás.

36.1. Reutilización permanente de la misma dirección IP en diferentes interfaces

Este procedimiento describe cómo utilizar permanentemente la misma dirección IP en diferentes interfaces en un servidor utilizando la función VRF.

Importante

Para que los peers remotos puedan contactar con ambas interfaces VRF reutilizando la misma dirección IP, las interfaces de red deben pertenecer a diferentes dominios de difusión. Un dominio de difusión en una red es un conjunto de nodos que reciben el tráfico de difusión enviado por cualquiera de ellos. En la mayoría de las configuraciones, todos los nodos conectados al mismo switch pertenecen al mismo dominio de difusión.

Requisitos previos

  • Ha iniciado la sesión como usuario de root.
  • Las interfaces de red no están configuradas.

Procedimiento

  1. Cree y configure el primer dispositivo VRF:

    1. Cree una conexión para el dispositivo VRF y asígnelo a una tabla de enrutamiento. Por ejemplo, para crear un dispositivo VRF llamado vrf0 que se asigna a la tabla de enrutamiento 1001:

      # nmcli connection add type vrf ifname vrf0 con-name vrf0 table 1001 ipv4.method disabled ipv6.method disabled
    2. Habilite el dispositivo vrf0:

      # nmcli connection up vrf0
    3. Asigne un dispositivo de red al VRF que acaba de crear. Por ejemplo, para añadir el dispositivo Ethernet enp1s0 al dispositivo VRF vrf0 y asignar una dirección IP y la máscara de subred a enp1s0, introduzca:

      # nmcli connection add type ethernet con-name vrf.enp1s0 ifname enp1s0 master vrf0 ipv4.method manual ipv4.address 192.0.2.1/24
    4. Active la conexión vrf.enp1s0:

      # nmcli connection up vrf.enp1s0
  2. Cree y configure el siguiente dispositivo VRF:

    1. Cree el dispositivo VRF y asígnelo a una tabla de enrutamiento. Por ejemplo, para crear un dispositivo VRF llamado vrf1 que se asigna a la tabla de enrutamiento 1002, introduzca:

      # nmcli connection add type vrf ifname vrf1 con-name vrf1 table 1002 ipv4.method disabled ipv6.method disabled
    2. Active el dispositivo vrf1:

      # nmcli connection up vrf1
    3. Asigne un dispositivo de red al VRF que acaba de crear. Por ejemplo, para añadir el dispositivo Ethernet enp7s0 al dispositivo VRF vrf1 y asignar una dirección IP y la máscara de subred a enp7s0, introduzca:

      # nmcli connection add type ethernet con-name vrf.enp7s0 ifname enp7s0 master vrf1 ipv4.method manual ipv4.address 192.0.2.1/24
    4. Active el dispositivo vrf.enp7s0:

      # nmcli connection up vrf.enp7s0

36.2. Reutilización temporal de la misma dirección IP en diferentes interfaces

El procedimiento en esta sección describe cómo utilizar temporalmente la misma dirección IP en diferentes interfaces en un servidor utilizando la función de enrutamiento y reenvío virtual (VRF). Utilice este procedimiento sólo con fines de prueba, ya que la configuración es temporal y se pierde después de reiniciar el sistema.

Importante

Para que los peers remotos puedan contactar con ambas interfaces VRF reutilizando la misma dirección IP, las interfaces de red deben pertenecer a diferentes dominios de difusión. Un dominio de difusión en una red es un conjunto de nodos que reciben el tráfico de difusión enviado por cualquiera de ellos. En la mayoría de las configuraciones, todos los nodos conectados al mismo switch pertenecen al mismo dominio de difusión.

Requisitos previos

  • Ha iniciado la sesión como usuario de root.
  • Las interfaces de red no están configuradas.

Procedimiento

  1. Cree y configure el primer dispositivo VRF:

    1. Cree el dispositivo VRF y asígnelo a una tabla de enrutamiento. Por ejemplo, para crear un dispositivo VRF llamado blue que se asigna a la tabla de enrutamiento 1001:

      # ip link add dev blue type vrf table 1001
    2. Habilite el dispositivo blue:

      # ip link set dev blue up
    3. Asigne un dispositivo de red al dispositivo VRF. Por ejemplo, para añadir el dispositivo Ethernet enp1s0 al dispositivo VRF blue:

      # ip link set dev enp1s0 master blue
    4. Habilite el dispositivo enp1s0:

      # ip link set dev enp1s0 up
    5. Asigne una dirección IP y una máscara de subred al dispositivo enp1s0. Por ejemplo, para configurarlo en 192.0.2.1/24:

      # ip addr add dev enp1s0 192.0.2.1/24
  2. Cree y configure el siguiente dispositivo VRF:

    1. Cree el dispositivo VRF y asígnelo a una tabla de enrutamiento. Por ejemplo, para crear un dispositivo VRF llamado red que se asigna a la tabla de enrutamiento 1002:

      # ip link add dev red type vrf table 1002
    2. Habilite el dispositivo red:

      # ip link set dev red up
    3. Asigne un dispositivo de red al dispositivo VRF. Por ejemplo, para añadir el dispositivo Ethernet enp7s0 al dispositivo VRF red:

      # ip link set dev enp7s0 master red
    4. Habilite el dispositivo enp7s0:

      # ip link set dev enp7s0 up
    5. Asigne al dispositivo enp7s0 la misma dirección IP y máscara de subred que utilizó para enp1s0 en el dominio blue VRF:

      # ip addr add dev enp7s0 192.0.2.1/24
  3. Opcionalmente, cree más dispositivos VRF como se ha descrito anteriormente.

Capítulo 37. Configuración de los protocolos de enrutamiento para su sistema

Esta sección describe cómo utilizar la función Free Range Routing (FRRouting, o FRR) para activar y configurar los protocolos de enrutamiento necesarios para su sistema.

37.1. Introducción a FRRouting

Free Range Routing (FRRouting, o FRR) es una pila de protocolos de enrutamiento, que es proporcionada por el paquete frr disponible en el repositorio AppStream.

FRR sustituye a Quagga que se utilizaba en versiones anteriores de RHEL. Como tal, FRR proporciona servicios de enrutamiento basados en TCP/IP con soporte para múltiples protocolos de enrutamiento IPv4 e IPv6.

Los protocolos admitidos son:

  • Protocolo de Pasarela Fronteriza (BGP)
  • Sistema intermedio a sistema intermedio (IS-IS)
  • Abrir el camino más corto primero (OSPF)
  • Multidifusión independiente del protocolo (PIM)
  • Protocolo de Información de Enrutamiento (RIP)
  • Protocolo de Información de Enrutamiento de próxima generación (RIPng)
  • Protocolo de Enrutamiento de Pasarela Interior Mejorado (EIGRP)
  • Protocolo de resolución del siguiente salto (NHRP)
  • Detección de reenvío bidireccional (BFD)
  • Enrutamiento basado en políticas (PBR)

FRR es un conjunto de los siguientes servicios:

  • cebra
  • bgpd
  • isisd
  • ospfd
  • ospf6d
  • pimd
  • ripd
  • ripngd
  • eigrpd
  • nhrpd
  • bfdd
  • pbrd
  • estáticod
  • fabricado

Si se instala frr, el sistema puede actuar como un router dedicado, que intercambia información de enrutamiento con otros routers de la red interna o externa utilizando los protocolos de enrutamiento.

37.2. Configuración de FRRouting

Requisitos previos

  • Asegúrese de que el paquete frr está instalado en su sistema:
# yum install frr

Procedimiento

  1. Edite el archivo de configuración /etc/frr/daemons y habilite los demonios necesarios para su sistema.

    Por ejemplo, para activar el demonio ripd, incluya la siguiente línea:

    ripd=sí
    Aviso

    El demonio zebra debe estar siempre habilitado, por lo que hay que configurar zebra=yes para poder utilizar FRR.

    Importante

    Por defecto, /etc/frr/daemons contiene entradas de [daemon_name]=no para todos los demonios. Por lo tanto, todos los demonios están deshabilitados, y el arranque FRR después de una nueva instalación del sistema no tiene ningún efecto.

  2. Inicie el servicio frr:

    # systemctl start frr
  3. Opcionalmente, también puede configurar FRR para que se inicie automáticamente al arrancar:

    # systemctl enable frr

37.3. Modificación de la configuración de FRR

Esta sección describe:

  • Cómo habilitar un demonio adicional después de configurar FRR
  • Cómo deshabilitar un demonio después de configurar FRR

Activación de un demonio adicional

Requisitos previos

Procedimiento

Para habilitar uno o más demonios adicionales:

  1. Edite el archivo de configuración de /etc/frr/daemons y modifique la línea de los demonios requeridos para que diga yes en lugar de no.

    Por ejemplo, para activar el demonio ripd:

    ripd=sí
  2. Recargue el servicio frr:

    # systemctl reload frr

Desactivar un demonio

Requisitos previos

Procedimiento

Para desactivar uno o varios demonios:

  1. Edite el archivo de configuración de /etc/frr/daemons y modifique la línea de los demonios requeridos para que diga no en lugar de yes.

    Por ejemplo, para desactivar el demonio ripd:

    ripd=no
  2. Recargue el servicio frr:

    # systemctl reload frr

37.4. Modificación de la configuración de un demonio concreto

Con la configuración por defecto, cada demonio de enrutamiento en FRR sólo puede actuar como un enrutador simple.

Para cualquier configuración adicional de un demonio, utilice el siguiente procedimiento.

Procedimiento

  1. Dentro del directorio /etc/frr/, cree un archivo de configuración para el demonio requerido, y nombre el archivo como sigue:

    [nombre_del_demonio].conf

    Por ejemplo, para configurar el demonio eigrpd, cree el archivo eigrpd.conf en el directorio mencionado.

  2. Rellene el nuevo archivo con el contenido requerido.

    Para ver ejemplos de configuración de determinados FRR daemons, consulte el directorio /usr/share/doc/frr/.

  3. Recargue el servicio frr:

    # systemctl reload frr

Capítulo 38. Supervisión y ajuste de la memoria intermedia de recepción

Los búferes de anillo de recepción (RX) son búferes compartidos entre el controlador del dispositivo y la tarjeta de interfaz de red (NIC), y almacenan los paquetes entrantes hasta que el controlador del dispositivo pueda procesarlos.

Puede aumentar el tamaño del búfer de anillo RX del dispositivo Ethernet si la tasa de caída de paquetes hace que las aplicaciones informen:

  • una pérdida de datos,
  • vallado de la agrupación,
  • rendimiento lento,
  • tiempos de espera, y
  • copias de seguridad fallidas.

Esta sección describe cómo identificar el número de paquetes perdidos y aumentar el búfer de anillo RX para reducir una alta tasa de caída de paquetes.

38.1. Visualización del número de paquetes perdidos

La utilidad ethtool permite a los administradores consultar, configurar o controlar los ajustes del controlador de red.

El agotamiento del búfer de anillo RX provoca un incremento en los contadores, como \ "descarte" o \ "caída" en la salida de ethtool -S interface_name. Los paquetes descartados indican que el buffer disponible se está llenando más rápido de lo que el kernel puede procesar los paquetes.

Este procedimiento describe cómo mostrar los contadores de caída utilizando ethtool.

Procedimiento

  • Para mostrar los contadores de caída de la enp1s0 interfaz, introduzca:

    $ ethtool -S enp1s0

38.2. Aumentar el búfer del anillo de recepción para reducir una alta tasa de caída de paquetes

La utilidad ethtool ayuda a aumentar el búfer de recepción para reducir una alta tasa de caída de paquetes.

Procedimiento

  1. Para ver el tamaño máximo de la memoria intermedia de RX:

    # ethtool -g enp1s0
     Ring parameters for enp1s0:
     Pre-set maximums:
     RX:             4080
     RX Mini:        0
     RX Jumbo:       16320
     TX:             255
     Current hardware settings:
     RX:             255
     RX Mini:        0
     RX Jumbo:       0
     TX:             255
  2. Si los valores de la sección Pre-set maximums son mayores que los de la sección Current hardware settings, aumente el buffer de anillo RX:

Importante

Dependiendo del controlador que utilice su tarjeta de interfaz de red, los cambios en el búfer del anillo pueden interrumpir brevemente la conexión de red.

Recursos adicionales

Capítulo 39. Probar la configuración básica de la red

Esta sección describe cómo realizar las pruebas básicas de la red.

39.1. Uso de la utilidad ping para verificar la conexión IP con otros hosts

La utilidad ping envía paquetes ICMP a un host remoto. Puede utilizar esta funcionalidad para probar si la conexión IP a un host diferente funciona.

Procedimiento

  • Haga ping a la dirección IP de un host en la misma subred, como su puerta de enlace predeterminada:

    # ping 192.0.2.3

    Si el comando falla, verifique la configuración de la puerta de enlace por defecto.

  • Hacer ping a una dirección IP de un host en una subred remota:

    # ping 198.162.3.1

    Si el comando falla, verifique la configuración de la puerta de enlace por defecto y asegúrese de que la puerta de enlace reenvía los paquetes entre las redes conectadas.

39.2. Uso de la utilidad de host para verificar la resolución de nombres

Este procedimiento describe cómo verificar la resolución de nombres en Red Hat Enterprise Linux 8.

Procedimiento

  • Utilice la utilidad host para verificar que la resolución de nombres funciona. Por ejemplo, para resolver el nombre de host client.example.com a una dirección IP, introduzca:

    # host cliente.ejemplo.com

    Si el comando devuelve un error, como connection timed out o no servers could be reached, verifique su configuración de DNS.

Capítulo 40. Introducción a la depuración de NetworkManager

Aumentar los niveles de registro para todos o ciertos dominios ayuda a registrar más detalles de las operaciones que NetworkManager realiza. Los administradores pueden utilizar esta información para solucionar problemas. NetworkManager proporciona diferentes niveles y dominios para producir información de registro. El archivo /etc/NetworkManager/NetworkManager.conf es el principal archivo de configuración de NetworkManager. Los registros se almacenan en el diario.

Esta sección proporciona información sobre la habilitación del registro de depuración para NetworkManager y el uso de diferentes niveles de registro y dominios para configurar la cantidad de detalles de registro.

40.1. Niveles y dominios de depuración

Puede utilizar los parámetros levels y domains para gestionar la depuración de NetworkManager. El nivel define el nivel de verbosidad, mientras que los dominios definen la categoría de los mensajes para registrar los registros con una gravedad determinada (level).

Niveles de registroDescripción

OFF

No registra ningún mensaje sobre NetworkManager

ERR

Registra sólo los errores críticos

WARN

Registra los avisos que pueden reflejar la operación

INFO

Registra varios mensajes informativos que son útiles para el seguimiento del estado y las operaciones

DEBUG

Activa el registro detallado para fines de depuración

TRACE

Permite un registro más detallado que el nivel DEBUG

Tenga en cuenta que los niveles siguientes registran todos los mensajes de los niveles anteriores. Por ejemplo, al establecer el nivel de registro en INFO también se registran los mensajes contenidos en los niveles de registro ERR y WARN.

Recursos adicionales

  • Para más detalles sobre domains, consulte la página de manual NetworkManager.conf(5).

40.2. Configuración del nivel de registro de NetworkManager

Por defecto, todos los dominios de registro están configurados para registrar el nivel de registro INFO. Desactive la limitación de velocidad antes de recoger los registros de depuración. Con la limitación de velocidad, systemd-journald elimina los mensajes si hay demasiados en poco tiempo. Esto puede ocurrir cuando el nivel de registro es TRACE.

Este procedimiento deshabilita la limitación de velocidad y habilita la grabación de registros de depuración para todos los dominios (ALL).

Procedimiento

  1. Para desactivar la limitación de velocidad, edite el archivo /etc/systemd/journald.conf, descomente el parámetro RateLimitBurst en la sección [Journal] y establezca su valor como 0:

    RateLimitBurst=0
  2. Reinicie el servicio systemd-journald.

    # systemctl restart systemd-journald
  3. Cree el archivo /etc/NetworkManager/conf.d/95-nm-debug.conf con el siguiente contenido:

    [logging]
    domains=ALL:DEBUG

    El parámetro domains puede contener varios pares de domain:level separados por comas.

  4. Reinicie el servicio NetworkManager.

    # systemctl restart NetworkManager

40.3. Establecer temporalmente los niveles de registro en tiempo de ejecución utilizando nmcli

Puede cambiar el nivel de registro en tiempo de ejecución usando nmcli. Sin embargo, Red Hat recomienda habilitar la depuración utilizando los archivos de configuración y reiniciar NetworkManager. La actualización de la depuración levels y domains utilizando el archivo .conf ayuda a depurar los problemas de arranque y captura todos los registros desde el estado inicial.

Procedimiento

  1. Opcional: Muestra la configuración de registro actual:

    # nmcli general logging
      LEVEL  DOMAINS
      INFO   PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,A
    UTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,
    WIMAX,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,DBUS_PROPS,TEAM,CONCHECK,DC
    B,DISPATCH
  2. Para modificar el nivel de registro y los dominios, utilice las siguientes opciones:

    • Para establecer el nivel de registro para todos los dominios al mismo LEVEL, introduzca:

      # nmcli general logging level LEVEL domains ALL
    • Para cambiar el nivel para dominios específicos, introduzca:

      # nmcli general logging level LEVEL domains DOMAINS

      Tenga en cuenta que la actualización del nivel de registro mediante este comando desactiva el registro para todos los demás dominios.

    • Para cambiar el nivel de determinados dominios y conservar el de todos los demás, introduzca:

      # nmcli general logging level KEEP domains DOMAIN:LEVEL,DOMAIN:LEVEL

40.4. Ver los registros de NetworkManager

Puede ver los registros de NetworkManager para la resolución de problemas.

Procedimiento

  • Para ver los registros, introduzca:

    # journalctl -u NetworkManager -b

Recursos adicionales

  • La página de manual NetworkManager.conf(5)
  • La página de manual journalctl

Capítulo 41. Captura de paquetes de red

Para depurar problemas de red y comunicaciones, puede capturar paquetes de red. Las siguientes secciones proporcionan instrucciones e información adicional sobre la captura de paquetes de red.

41.1. Uso de xdpdump para capturar paquetes de red, incluidos los paquetes descartados por los programas XDP

La utilidad xdpdump captura paquetes de red. A diferencia de la utilidad tcpdump, xdpdump utiliza un programa Berkeley Packet Filter(eBPF) extendido para esta tarea. Esto permite a xdpdump capturar también los paquetes perdidos por los programas Express Data Path (XDP). Las utilidades de espacio de usuario, como tcpdump, no son capaces de capturar estos paquetes caídos, así como los paquetes originales modificados por un programa XDP.

Puede utilizar xdpdump para depurar programas XDP que ya están conectados a una interfaz. Por lo tanto, la utilidad puede capturar paquetes antes de que se inicie un programa XDP y después de que haya terminado. En este último caso, xdpdump también captura la acción del XDP. Por defecto, xdpdump captura los paquetes entrantes a la entrada del programa XDP.

Importante

Red Hat proporciona xdpdump como una Muestra de Tecnología no soportada.

Tenga en cuenta que xdpdump no tiene capacidades de filtrado o decodificación de paquetes. Sin embargo, puede utilizarlo en combinación con tcpdump para la decodificación de paquetes.

El procedimiento describe cómo capturar todos los paquetes en la interfaz enp1s0 y escribirlos en el archivo /root/capture.pcap.

Requisitos previos

  • Un controlador de red que soporta programas XDP.
  • Se carga un programa XDP en la interfaz enp1s0. Si no se carga ningún programa, xdpdump captura los paquetes de forma similar a como lo hace tcpdump, por compatibilidad con versiones anteriores.

Procedimiento

  1. Para capturar paquetes en la interfaz enp1s0 y escribirlos en el archivo /root/capture.pcap, introduzca:

    # xdpdump -i enp1s0 -w /root/capture.pcap
  2. Para dejar de capturar paquetes, pulse Ctrl+C.

Recursos adicionales

  • Para más detalles sobre xdpdump, consulte la página de manual xdpdump(8).
  • Si es un desarrollador y está interesado en el código fuente de xdpdump, descargue e instale el correspondiente RPM de origen (SRPM) desde el Portal del Cliente de Red Hat.

41.2. Recursos adicionales

Capítulo 42. Uso de una versión específica del kernel en RHEL

El kernel es un componente central de un sistema operativo Linux que gestiona los recursos del sistema y proporciona la interfaz entre el hardware y las aplicaciones de software. En algunos casos, el kernel puede afectar a la funcionalidad de la red, por lo que siempre se recomienda utilizar la última versión del kernel. Si es necesario, también es posible rebajar la versión del kernel a una versión anterior del mismo x-stream kernel y seleccionar la versión específica durante el arranque del sistema para solucionar problemas.

Esta sección explica cómo seleccionar un kernel en el gestor de arranque GRUB en caso de que actualice o baje el kernel.

42.1. Iniciar RHEL con una versión anterior del kernel

Por defecto, después de actualizar, el sistema arranca la última versión del kernel. Red Hat Enterprise Linux permite tener tres versiones del kernel instaladas al mismo tiempo. Esto se define en el archivo /etc/dnf/dnf.conf (installonly_limit=3).

Si observa algún problema cuando el sistema se carga con el nuevo kernel, puede reiniciarlo con el kernel anterior y restaurar la máquina de producción. Póngase en contacto con el servicio de asistencia para solucionar el problema.

Procedimiento

  1. Poner en marcha el sistema.
  2. En el cargador de arranque GRUB, verá los kernels instalados. Utiliza las teclas y para seleccionar un kernel, y pulsa Enter para arrancarlo.

Recursos adicionales

Capítulo 43. Proporcionar servicios DHCP

El protocolo de configuración dinámica de host (DHCP) es un protocolo de red que asigna automáticamente la información IP a los clientes.

Esta sección explica información general sobre el servicio dhcpd, así como la forma de configurar un servidor DHCP y el relé DHCP.

Si un procedimiento requiere diferentes pasos para proporcionar DHCP en redes IPv4 e IPv6, las secciones de este capítulo contienen procedimientos para ambos protocolos.

43.1. Las diferencias al usar dhcpd para DHCPv4 y DHCPv6

El servicio dhcpd permite proporcionar tanto DHCPv4 como DHCPv6 en un servidor. Sin embargo, se necesita una instancia separada de dhcpd con archivos de configuración separados para proporcionar DHCP para cada protocolo.

DHCPv4
  • Archivo de configuración /etc/dhcp/dhcpd.conf
  • Nombre del servicio Systemd dhcpd
DHCPv6
  • Archivo de configuración /etc/dhcp/dhcpd6.conf
  • Nombre del servicio Systemd dhcpd6

43.2. La base de datos de arrendamiento del servicio dhcpd

Un contrato de arrendamiento DHCP es el periodo de tiempo por el que el servicio dhcpd asigna una dirección de red a un cliente. El servicio dhcpd almacena los arrendamientos DHCP en las siguientes bases de datos:

  • Para DHCPv4 /var/lib/dhcpd/dhcpd.leases
  • Para DHCPv6 /var/lib/dhcpd/dhcpd6.leases
Aviso

La actualización manual de los archivos de la base de datos puede corromper las bases de datos.

Las bases de datos de arrendamiento contienen información sobre los arrendamientos asignados, como la dirección IP asignada a una dirección de control de acceso al medio (MAC) o la marca de tiempo cuando el arrendamiento expira. Tenga en cuenta que todas las marcas de tiempo en las bases de datos de arrendamiento están en Tiempo Universal Coordinado (UTC).

El servicio dhcpd recrea las bases de datos periódicamente:

  1. El servicio cambia el nombre de los archivos existentes:

    • /var/lib/dhcpd/dhcpd.leases a /var/lib/dhcpd/dhcpd.leases~
    • /var/lib/dhcpd/dhcpd6.leases a /var/lib/dhcpd/dhcpd6.leases~
  2. El servicio escribe todos los arrendamientos conocidos en los archivos recién creados /var/lib/dhcpd/dhcpd.leases y /var/lib/dhcpd/dhcpd6.leases.

Recursos adicionales

43.3. Comparación de DHCPv6 con radvd

En una red IPv6, sólo los mensajes de anuncio de router proporcionan información sobre una puerta de enlace predeterminada IPv6. En consecuencia, si desea utilizar DHCPv6 en subredes que requieren una configuración de puerta de enlace predeterminada, debe configurar adicionalmente un servicio de publicidad de enrutadores, como Router Advertisement Daemon (radvd).

El servicio radvd utiliza banderas en los paquetes de publicidad del router para anunciar la disponibilidad de un servidor DHCPv6.

Esta sección compara DHCPv6 y radvd, y proporciona información sobre la configuración de radvd.

 DHCPv6radvd

Proporciona información sobre la pasarela por defecto

no

Garantiza direcciones aleatorias para proteger la privacidad

no

Envía más opciones de configuración de la red

no

Asigna direcciones de control de acceso al medio (MAC) a direcciones IPv6

no

43.4. Configuración del servicio radvd para routers IPv6

El demonio de publicidad del enrutador (radvd) envía mensajes de publicidad del enrutador que son necesarios para la autoconfiguración sin estado de IPv6. Esto permite a los usuarios configurar automáticamente sus direcciones, ajustes y rutas, y elegir un router por defecto basándose en estos anuncios.

El procedimiento de esta sección explica cómo configurar radvd.

Requisitos previos

  • Ha iniciado la sesión como usuario de root.

Procedimiento

  1. Instale el paquete radvd:

    # yum install radvd
  2. Edite el archivo /etc/radvd.conf y añada la siguiente configuración:

    interface enp1s0
    {
      AdvSendAdvert on;
      AdvManagedFlag on;
      AdvOtherConfigFlag on;
    
      prefix 2001:db8:0:1::/64 {
      };
    };

    Estos ajustes configuran radvd para enviar mensajes de publicidad de enrutamiento en el dispositivo enp1s0 para la subred 2001:db8:0:1::/64. El parámetro AdvManagedFlag on define que el cliente debe recibir la dirección IP de un servidor DHCP, y el parámetro AdvOtherConfigFlag ajustado a on define que los clientes deben recibir también información no relacionada con la dirección del servidor DHCP.

  3. Opcionalmente, configure que radvd se inicie automáticamente al arrancar el sistema:

    # systemctl enable radvd
  4. Inicie el servicio radvd:

    # systemctl start radvd
  5. Opcionalmente, mostrar el contenido de los paquetes de publicidad del router y los valores configurados que envía radvd:

    # radvdump

Recursos adicionales

  • Para más detalles sobre la configuración de radvd, consulte la página de manual radvd.conf(5).
  • Para ver un ejemplo de configuración de radvd, consulte el archivo /usr/share/doc/radvd/radvd.conf.example.

43.5. Configuración de las interfaces de red para los servidores DHCP

Por defecto, el servicio dhcpd procesa las solicitudes sólo en las interfaces de red que tienen una dirección IP en la subred definida en el archivo de configuración del servicio.

Por ejemplo, en el siguiente escenario, dhcpd sólo escucha en la interfaz de red enp0s1:

  • Sólo tiene una definición de subnet para la red 192.0.2.0/24 en el archivo /etc/dhcp/dhcpd.conf.
  • La interfaz de red enp0s1 está conectada a la subred 192.0.2.0/24.
  • La interfaz enp7s0 está conectada a una subred diferente.

Sólo siga el procedimiento de esta sección si el servidor DHCP contiene varias interfaces de red conectadas a la misma red pero el servicio debe escuchar sólo en interfaces específicas.

Dependiendo de si desea proporcionar DHCP para IPv4, IPv6, o ambos protocolos, consulte el procedimiento para:

Requisitos previos

  • Ha iniciado la sesión como usuario de root.
  • El paquete dhcp-server está instalado.

Procedimiento

  • Para redes IPv4:

    1. Copie el archivo /usr/lib/systemd/system/dhcpd.service en el directorio /etc/systemd/system/:

      # cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/

      No edite el archivo /usr/lib/systemd/system/dhcpd.service. Las futuras actualizaciones del paquete dhcp-server pueden anular los cambios.

    2. Edite el archivo /etc/systemd/system/dhcpd.service, y añada los nombres de la interfaz, que dhcpd debe escuchar al comando en el parámetro ExecStart:

      ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0

      Este ejemplo configura que dhcpd escuche sólo en las interfaces enp0s1 y enp7s0.

    3. Recarga la configuración del gestor systemd:

      # systemctl daemon-reload
    4. Reinicie el servicio dhcpd:

      # systemctl restart dhcpd.service
  • Para redes IPv6:

    1. Copie el archivo /usr/lib/systemd/system/dhcpd6.service en el directorio /etc/systemd/system/:

      # cp /usr/lib/systemd/system/dhcpd6.service /etc/systemd/system/

      No edite el archivo /usr/lib/systemd/system/dhcpd6.service. Las futuras actualizaciones del paquete dhcp-server pueden anular los cambios.

    2. Edite el archivo /etc/systemd/system/dhcpd6.service, y añada los nombres de la interfaz, que dhcpd debe escuchar al comando en el parámetro ExecStart:

      ExecStart=/usr/sbin/dhcpd -f -6 -cf /etc/dhcp/dhcpd6.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0

      Este ejemplo configura que dhcpd escuche sólo en las interfaces enp0s1 y enp7s0.

    3. Recarga la configuración del gestor systemd:

      # systemctl daemon-reload
    4. Reinicie el servicio dhcpd6:

      # systemctl restart dhcpd6.service

43.6. Configuración del servicio DHCP para subredes conectadas directamente al servidor DHCP

Utilice el siguiente procedimiento si el servidor DHCP está conectado directamente a la subred para la que el servidor debe responder a las solicitudes DHCP. Este es el caso si una interfaz de red del servidor tiene asignada una dirección IP de esta subred.

Dependiendo de si desea proporcionar DHCP para IPv4, IPv6, o ambos protocolos, consulte el procedimiento para:

Requisitos previos

  • Ha iniciado la sesión como usuario de root.
  • El paquete dhcpd-server está instalado.

Procedimiento

  • Para redes IPv4:

    1. Edite el archivo /etc/dhcp/dhcpd.conf:

      1. Opcionalmente, añada parámetros globales que dhcpd utiliza por defecto si no hay otras directivas que contengan estos ajustes:

        option domain-name "example.com";
        default-lease-time 86400;

        Este ejemplo establece el nombre de dominio por defecto para la conexión a example.com, y el tiempo de arrendamiento por defecto a 86400 segundos (1 día).

      2. Añada la declaración authoritative en una nueva línea:

        autorizada;
        Importante

        Sin la sentencia authoritative, el servicio dhcpd no responde a los mensajes DHCPREQUEST con DHCPNAK si un cliente pide una dirección que está fuera del pool.

      3. Para cada subred IPv4 conectada directamente a una interfaz del servidor, añada una declaración subnet:

        subnet 192.0.2.0 netmask 255.255.255.0 {
          range 192.0.2.20 192.0.2.100;
          option domain-name-servers 192.0.2.1;
          option routers 192.0.2.1;
          option broadcast-address 192.0.2.255;
          max-lease-time 172800;
        }

        Este ejemplo añade una declaración de subred para la red 192.0.2.0/24. Con esta configuración, el servidor DHCP asigna la siguiente configuración a un cliente que envía una solicitud DHCP desde esta subred:

        • Una dirección IPv4 libre del rango definido en el parámetro range
        • IP del servidor DNS para esta subred 192.0.2.1
        • Puerta de enlace por defecto para esta subred 192.0.2.1
        • Dirección de difusión para esta subred 192.0.2.255
        • El tiempo máximo de arrendamiento, después del cual los clientes de esta subred liberan la IP y envían una nueva solicitud al servidor: 172800 segundos (2 días)
    2. Opcionalmente, configure que dhcpd se inicie automáticamente al arrancar el sistema:

      # systemctl enable dhcpd
    3. Inicie el servicio dhcpd:

      # systemctl start dhcpd
  • Para redes IPv6:

    1. Edite el archivo /etc/dhcp/dhcpd6.conf:

      1. Opcionalmente, añada parámetros globales que dhcpd utiliza por defecto si no hay otras directivas que contengan estos ajustes:

        option dhcp6.domain-search "example.com";
        default-lease-time 86400;

        Este ejemplo establece el nombre de dominio por defecto para la conexión a example.com, y el tiempo de arrendamiento por defecto a 86400 segundos (1 día).

      2. Añada la declaración authoritative en una nueva línea:

        autorizada;
        Importante

        Sin la sentencia authoritative, el servicio dhcpd no responde a los mensajes DHCPREQUEST con DHCPNAK si un cliente pide una dirección que está fuera del pool.

      3. Para cada subred IPv6 conectada directamente a una interfaz del servidor, añada una declaración subnet:

        subnet6 2001:db8:0:1::/64 {
          range6 2001:db8:0:1::20 2001:db8:0:1::100;
          option dhcp6.name-servers 2001:db8:0:1::1;
          max-lease-time 172800;
        }

        Este ejemplo añade una declaración de subred para la red 2001:db8:0:1::/64. Con esta configuración, el servidor DHCP asigna la siguiente configuración a un cliente que envía una solicitud DHCP desde esta subred:

        • Una dirección IPv6 libre del rango definido en el parámetro range6.
        • La IP del servidor DNS para esta subred es 2001:db8:0:1::1.
        • El tiempo máximo de arrendamiento, después del cual los clientes de esta subred liberan la IP y envían una nueva solicitud al servidor es 172800 segundos (2 días).

          Tenga en cuenta que IPv6 requiere el uso de mensajes de anuncio de enrutador para identificar la puerta de enlace predeterminada.

    2. Opcionalmente, configure que dhcpd6 se inicie automáticamente al arrancar el sistema:

      # systemctl enable dhcpd6
    3. Inicie el servicio dhcpd6:

      # systemctl start dhcpd6

Recursos adicionales

  • Para obtener una lista de todos los parámetros que puede establecer en /etc/dhcp/dhcpd.conf y /etc/dhcp/dhcpd6.conf, consulte la página de manual dhcp-options(5).
  • Para más detalles sobre la sentencia authoritative, consulte la sección The authoritative statement en la página man dhcpd.conf(5).
  • Para ver ejemplos de configuraciones, consulte los archivos /usr/share/doc/dhcp-server/dhcpd.conf.example y /usr/share/doc/dhcp-server/dhcpd6.conf.example.

43.7. Configuración del servicio DHCP para subredes que no están directamente conectadas al servidor DHCP

Utilice el siguiente procedimiento si el servidor DHCP no está conectado directamente a la subred para la que el servidor debe responder a las solicitudes de DHCP. Este es el caso si un agente de retransmisión de DHCP reenvía las solicitudes al servidor de DHCP, porque ninguna de las interfaces del servidor de DHCP está directamente conectada a la subred a la que el servidor debe dar servicio.

Dependiendo de si desea proporcionar DHCP para IPv4, IPv6, o ambos protocolos, consulte el procedimiento para:

Requisitos previos

  • Ha iniciado la sesión como usuario de root.
  • El paquete dhcpd-server está instalado.

Procedimiento

  • Para redes IPv4:

    1. Edite el archivo /etc/dhcp/dhcpd.conf:

      1. Opcionalmente, añada parámetros globales que dhcpd utiliza por defecto si no hay otras directivas que contengan estos ajustes:

        option domain-name "example.com";
        default-lease-time 86400;

        Este ejemplo establece el nombre de dominio por defecto para la conexión a example.com, y el tiempo de arrendamiento por defecto a 86400 segundos (1 día).

      2. Añada la declaración authoritative en una nueva línea:

        autorizada;
        Importante

        Sin la sentencia authoritative, el servicio dhcpd no responde a los mensajes DHCPREQUEST con DHCPNAK si un cliente pide una dirección que está fuera del pool.

      3. Añada una declaración shared-network, como la siguiente, para las subredes IPv4 que no están directamente conectadas a una interfaz del servidor:

        shared-network example {
          option domain-name-servers 192.0.2.1;
          ...
        
          subnet 192.0.2.0 netmask 255.255.255.0 {
            range 192.0.2.20 192.0.2.100;
            option routers 192.0.2.1;
          }
        
          subnet 198.51.100.0 netmask 255.255.255.0 {
            range 198.51.100.20 198.51.100.100;
            option routers 198.51.100.1;
          }
          ...
        }

        Este ejemplo añade una declaración de red compartida, que contiene una declaración subnet para las redes 192.0.2.0/24 y 198.51.100.0/24. Con esta configuración, el servidor DHCP asigna la siguiente configuración a un cliente que envía una solicitud DHCP desde una de estas subredes:

        • La IP del servidor DNS para los clientes de ambas subredes es: 192.0.2.1.
        • Una dirección IPv4 libre del rango definido en el parámetro range, dependiendo de la subred desde la que el cliente envió la solicitud.
        • La puerta de enlace por defecto es 192.0.2.1 o 198.51.100.1 dependiendo de la subred desde la que el cliente envió la solicitud.
      4. Añada una declaración subnet para la subred a la que el servidor está directamente conectado y que se utiliza para llegar a las subredes remotas especificadas en shared-network:

        subnet 203.0.113.0 netmask 255.255.255.0 {
        }
        Nota

        Si el servidor no proporciona servicio DHCP a esta subred, la declaración subnet debe estar vacía como se muestra en el ejemplo. Sin una declaración para la subred directamente conectada, dhcpd no se inicia.

    2. Opcionalmente, configure que dhcpd se inicie automáticamente al arrancar el sistema:

      # systemctl enable dhcpd
    3. Inicie el servicio dhcpd:

      # systemctl start dhcpd
  • Para redes IPv6:

    1. Edite el archivo /etc/dhcp/dhcpd6.conf:

      1. Opcionalmente, añada parámetros globales que dhcpd utiliza por defecto si no hay otras directivas que contengan estos ajustes:

        option dhcp6.domain-search "example.com";
        default-lease-time 86400;

        Este ejemplo establece el nombre de dominio por defecto para la conexión a example.com, y el tiempo de arrendamiento por defecto a 86400 segundos (1 día).

      2. Añada la declaración authoritative en una nueva línea:

        autorizada;
        Importante

        Sin la sentencia authoritative, el servicio dhcpd no responde a los mensajes DHCPREQUEST con DHCPNAK si un cliente pide una dirección que está fuera del pool.

      3. Añada una declaración shared-network, como la siguiente, para las subredes IPv6 que no están directamente conectadas a una interfaz del servidor:

        shared-network example {
          option domain-name-servers 2001:db8:0:1::1:1
          ...
        
          subnet6 2001:db8:0:1::1:0/120 {
            range6 2001:db8:0:1::1:20 2001:db8:0:1::1:100
          }
        
          subnet6 2001:db8:0:1::2:0/120 {
            range6 2001:db8:0:1::2:20 2001:db8:0:1::2:100
          }
          ...
        }

        Este ejemplo añade una declaración de red compartida que contiene una declaración subnet6 para las redes 2001:db8:0:1::1:0/120 y 2001:db8:0:1::2:0/120. Con esta configuración, el servidor DHCP asigna la siguiente configuración a un cliente que envía una solicitud DHCP desde una de estas subredes:

        • La IP del servidor DNS para los clientes de ambas subredes es 2001:db8:0:1::1:1.
        • Una dirección IPv6 libre del rango definido en el parámetro range6, dependiendo de la subred desde la que el cliente envió la solicitud.

          Tenga en cuenta que IPv6 requiere el uso de mensajes de anuncio de enrutador para identificar la puerta de enlace predeterminada.

      4. Añada una declaración subnet6 para la subred a la que el servidor está directamente conectado y que se utiliza para llegar a las subredes remotas especificadas en shared-network:

        subnet6 2001:db8:0:1::50:0/120 {
        }
        Nota

        Si el servidor no proporciona servicio DHCP a esta subred, la declaración subnet6 debe estar vacía como se muestra en el ejemplo. Sin una declaración para la subred directamente conectada, dhcpd no se inicia.

    2. Opcionalmente, configure que dhcpd6 se inicie automáticamente al arrancar el sistema:

      # systemctl enable dhcpd6
    3. Inicie el servicio dhcpd6:

      # systemctl start dhcpd6

Recursos adicionales

  • Para obtener una lista de todos los parámetros que puede establecer en /etc/dhcp/dhcpd.conf y /etc/dhcp/dhcpd6.conf, consulte la página de manual dhcp-options(5).
  • Para más detalles sobre la sentencia authoritative, consulte la sección The authoritative statement en la página man dhcpd.conf(5).
  • Para ver ejemplos de configuraciones, consulte los archivos /usr/share/doc/dhcp-server/dhcpd.conf.example y /usr/share/doc/dhcp-server/dhcpd6.conf.example.
  • Sección 43.11, “Configuración de un agente de retransmisión DHCP”

43.8. Asignación de una dirección estática a un host mediante DHCP

Mediante una declaración de host, puede configurar el servidor DHCP para que asigne una dirección IP fija a una dirección de control de acceso al medio (MAC) de un host. Por ejemplo, utilice este método para asignar siempre la misma dirección IP a un servidor o dispositivo de red.

Importante

Si configura una dirección IP fija para una dirección MAC, la dirección IP debe estar fuera del grupo de direcciones que especificó en los parámetros fixed-address y fixed-address6.

Dependiendo de si desea configurar direcciones fijas para IPv4, IPv6 o ambos protocolos, consulte el procedimiento para:

Requisitos previos

  • El servicio dhcpd está configurado y funcionando.
  • Ha iniciado la sesión como usuario de root.

Procedimiento

  • Para redes IPv4:

    1. Edite el archivo /etc/dhcp/dhcpd.conf:

      1. Añade una declaración en host:

        host server.example.com {
        	hardware ethernet 52:54:00:72:2f:6e;
        	fixed-address 192.0.2.130;
        }

        Este ejemplo configura el servidor DHCP para que asigne siempre la dirección IP 192.0.2.130 al host con la dirección MAC 52:54:00:72:2f:6e.

        El servicio dhcpd identifica los sistemas por la dirección MAC especificada en el parámetro fixed-address, y no por el nombre de la declaración host. En consecuencia, puede establecer este nombre con cualquier cadena que no coincida con otras declaraciones de host. Para configurar el mismo sistema para varias redes, utilice un nombre diferente, de lo contrario, dhcpd no se iniciará.

      2. Opcionalmente, añada otros ajustes a la declaración host que sean específicos para este host.
    2. Reinicie el servicio dhcpd:

      # systemctl start dhcpd
  • Para redes IPv6:

    1. Edite el archivo /etc/dhcp/dhcpd6.conf:

      1. Añade una declaración en host:

        host server.example.com {
        	hardware ethernet 52:54:00:72:2f:6e;
        	fixed-address6 2001:db8:0:1::200;
        }

        Este ejemplo configura el servidor DHCP para asignar siempre la dirección IP 2001:db8:0:1::20 al host con la dirección MAC 52:54:00:72:2f:6e.

        El servicio dhcpd identifica los sistemas por la dirección MAC especificada en el parámetro fixed-address6, y no por el nombre de la declaración host. En consecuencia, se puede establecer este nombre con cualquier cadena, siempre que sea única respecto a otras declaraciones de host. Para configurar el mismo sistema para varias redes, utilice un nombre diferente porque, de lo contrario, dhcpd no se inicia.

      2. Opcionalmente, añada otros ajustes a la declaración host que sean específicos para este host.
    2. Reinicie el servicio dhcpd6:

      # systemctl start dhcpd6

Recursos adicionales

  • Para obtener una lista de todos los parámetros que puede establecer en /etc/dhcp/dhcpd.conf y /etc/dhcp/dhcpd6.conf, consulte la página de manual dhcp-options(5).
  • Para ver ejemplos de configuraciones, consulte los archivos /usr/share/doc/dhcp-server/dhcpd.conf.example y /usr/share/doc/dhcp-server/dhcpd6.conf.example.

43.9. Uso de una declaración de grupo para aplicar parámetros a varios hosts, subredes y redes compartidas al mismo tiempo

Utilizando una declaración de group, puede aplicar los mismos parámetros a múltiples hosts, subredes y redes compartidas.

Tenga en cuenta que el procedimiento en esta sección describe el uso de una declaración de group para hosts, pero los pasos son los mismos para subredes y redes compartidas.

Dependiendo de si desea configurar un grupo para IPv4, IPv6 o ambos protocolos, consulte el procedimiento para:

Requisitos previos

  • El servicio dhcpd está configurado y funcionando.
  • Ha iniciado la sesión como usuario de root.

Procedimiento

  • Para redes IPv4:

    1. Edite el archivo /etc/dhcp/dhcpd.conf:

      1. Añade una declaración en group:

        group {
          option domain-name-servers 192.0.2.1;
        
          host server1.example.com {
            hardware ethernet 52:54:00:72:2f:6e;
            fixed-address 192.0.2.130;
          }
        
          host server2.example.com {
            hardware ethernet 52:54:00:1b:f3:cf;
            fixed-address 192.0.2.140;
          }
        }

        Esta definición de group agrupa dos entradas de host. El servicio dhcpd aplica el valor establecido en el parámetro option domain-name-servers a los dos hosts del grupo.

      2. Opcionalmente, añada otros ajustes a la declaración group que sean específicos para estos hosts.
    2. Reinicie el servicio dhcpd:

      # systemctl start dhcpd
  • Para redes IPv6:

    1. Edite el archivo /etc/dhcp/dhcpd6.conf:

      1. Añade una declaración en group:

        group {
          option dhcp6.domain-search "example.com";
        
          host server1.example.com {
            hardware ethernet 52:54:00:72:2f:6e;
            fixed-address 2001:db8:0:1::200;
          }
        
          host server2.example.com {
            hardware ethernet 52:54:00:1b:f3:cf;
            fixed-address 2001:db8:0:1::ba3;
          }
        }

        Esta definición de group agrupa dos entradas de host. El servicio dhcpd aplica el valor establecido en el parámetro option dhcp6.domain-search a los dos hosts del grupo.

      2. Opcionalmente, añada otros ajustes a la declaración group que sean específicos para estos hosts.
    2. Reinicie el servicio dhcpd6:

      # systemctl start dhcpd6

Recursos adicionales

  • Para obtener una lista de todos los parámetros que puede establecer en /etc/dhcp/dhcpd.conf y /etc/dhcp/dhcpd6.conf, consulte la página de manual dhcp-options(5).
  • Para ver ejemplos de configuraciones, consulte los archivos /usr/share/doc/dhcp-server/dhcpd.conf.example y /usr/share/doc/dhcp-server/dhcpd6.conf.example.

43.10. Restauración de una base de datos de arrendamiento corrupta

Si el servidor DHCP registra un error relacionado con la base de datos de contratos de arrendamiento, como Corrupt lease file - possible data loss!, puede restaurar la base de datos de contratos de arrendamiento a partir de la copia que creó el servicio dhcpd. Tenga en cuenta que esta copia puede no reflejar el último estado de la base de datos.

Aviso

Si se elimina la base de datos de arrendamientos en lugar de sustituirla por una copia de seguridad, se pierde toda la información sobre los arrendamientos asignados actualmente. Como consecuencia, el servidor DHCP podría asignar arrendamientos a clientes que han sido previamente asignados a otros hosts y que aún no han expirado. Esto conduce a conflictos de IP.

Dependiendo de si desea restaurar las bases de datos DHCPv4, DHCPv6 o ambas, consulte el procedimiento para:

Requisitos previos

  • Ha iniciado la sesión como usuario de root.
  • La base de datos de arrendamiento está corrupta.

Procedimiento

  • Restauración de la base de datos de arrendamiento DHCPv4:

    1. Detenga el servicio dhcpd:

      # systemctl stop dhcpd
    2. Cambiar el nombre de la base de datos de arrendamiento corrupta:

      # mv /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd.leases.corrupt
    3. Restaurar la copia de la base de datos de arrendamiento que el servicio dhcp creó cuando actualizó la base de datos de arrendamiento:

      # cp -p /var/lib/dhcpd/dhcpd.leases~ /var/lib/dhcpd/dhcpd.leases
      Importante

      Si tiene una copia de seguridad más reciente de la base de datos de arrendamientos, restaure esta copia de seguridad en su lugar.

    4. Inicie el servicio dhcpd:

      # systemctl start dhcpd
  • Restauración de la base de datos de arrendamiento DHCPv6:

    1. Detenga el servicio dhcpd6:

      # systemctl stop dhcpd6
    2. Cambiar el nombre de la base de datos de arrendamiento corrupta:

      # mv /var/lib/dhcpd/dhcpd6.leases /var/lib/dhcpd/dhcpd6.leases.corrupt
    3. Restaurar la copia de la base de datos de arrendamiento que el servicio dhcp creó cuando actualizó la base de datos de arrendamiento:

      # cp -p /var/lib/dhcpd/dhcpd6.leases~ /var/lib/dhcpd/dhcpd6.leases
      Importante

      Si tiene una copia de seguridad más reciente de la base de datos de arrendamientos, restaure esta copia de seguridad en su lugar.

    4. Inicie el servicio dhcpd6:

      # systemctl start dhcpd6

43.11. Configuración de un agente de retransmisión DHCP

El Agente de retransmisión de DHCP (dhcrelay) permite la retransmisión de las solicitudes de DHCP y BOOTP desde una subred sin servidor DHCP en ella a uno o más servidores DHCP en otras subredes. Cuando un cliente DHCP solicita información, el Agente de Retransmisión DHCP reenvía la solicitud a la lista de servidores DHCP especificada. Cuando un servidor DHCP devuelve una respuesta, el Agente de Retransmisión DHCP reenvía esta solicitud al cliente.

Dependiendo de si desea configurar un relé DHCP para IPv4, IPv6 o ambos protocolos, consulte el procedimiento para:

Requisitos previos

  • Ha iniciado la sesión como usuario de root.

Procedimiento

  • Para redes IPv4:

    1. Instale el paquete dhcp-relay:

      # yum install dhcp-relay
    2. Copie el archivo /lib/systemd/system/dhcrelay.service en el directorio /etc/systemd/system/:

      # cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/

      No edite el archivo /usr/lib/systemd/system/dhcrelay.service. Las futuras actualizaciones del paquete dhcp-relay pueden anular los cambios.

    3. Edite el archivo /etc/systemd/system/dhcrelay.service y añada el parámetro -i interface junto con una lista de direcciones IP de servidores DHCPv4 responsables de la subred:

      ExecStart=/usr/sbin/dhcrelay -d --no-pid -i enp1s0 192.0.2.1

      Con estos parámetros adicionales, dhcrelay escucha las peticiones DHCPv4 en la interfaz enp1s0 y las reenvía al servidor DHCP con la IP 192.0.2.1.

    4. Recarga la configuración del gestor systemd:

      # systemctl daemon-reload
    5. Opcionalmente, configure que el servicio dhcrelay se inicie al arrancar el sistema:

      # systemctl enable dhcrelay.service
    6. Inicie el servicio dhcrelay:

      # systemctl start dhcrelay.service
  • Para redes IPv6:

    1. Instale el paquete dhcp-relay:

      # yum install dhcp-relay
    2. Copie el archivo /lib/systemd/system/dhcrelay.service en el directorio /etc/systemd/system/ y nombre el archivo dhcrelay6.service:

      # cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.service

      No edite el archivo /usr/lib/systemd/system/dhcrelay.service. Las futuras actualizaciones del paquete dhcp-relay pueden anular los cambios.

    3. Edite el archivo /etc/systemd/system/dhcrelay6.service, y añada los -l receiving_interface y -u outgoing_interface a los parámetros:

      ExecStart=/usr/sbin/dhcrelay -d --no-pid -l enp1s0 -u enp7s0

      Con estos parámetros adicionales, dhcrelay escucha las peticiones DHCPv6 en la interfaz enp1s0 y las reenvía a la red conectada a la interfaz enp7s0.

    4. Recarga la configuración del gestor systemd:

      # systemctl daemon-reload
    5. Opcionalmente, configure que el servicio dhcrelay6 se inicie al arrancar el sistema:

      # systemctl enable dhcrelay6.service
    6. Inicie el servicio dhcrelay6:

      # systemctl start dhcrelay6.service

Recursos adicionales

  • Para más detalles sobre dhcrelay, consulte la página de manual dhcrelay(8).

Capítulo 44. Uso y configuración de firewalld

Un firewall es una forma de proteger las máquinas de cualquier tráfico no deseado procedente del exterior. Permite a los usuarios controlar el tráfico de red entrante en las máquinas anfitrionas definiendo un conjunto de firewall rules. Estas reglas se utilizan para clasificar el tráfico entrante y bloquearlo o permitirlo.

Tenga en cuenta que firewalld con el backend nftables no admite el paso de reglas personalizadas nftables a firewalld, utilizando la opción --direct.

44.1. Cuándo utilizar firewalld, nftables o iptables

A continuación se presenta un breve resumen en el que se debe utilizar una de las siguientes utilidades:

  • firewalld: Utilice la utilidad firewalld para casos de uso de cortafuegos sencillos. La utilidad es fácil de usar y cubre los casos de uso típicos para estos escenarios.
  • nftables: Utilice la utilidad nftables para configurar cortafuegos complejos y de rendimiento crítico, como por ejemplo para toda una red.
  • iptables: La utilidad iptables en Red Hat Enterprise Linux 8 utiliza la API del kernel nf_tables en lugar del back end legacy. La API nf_tables proporciona compatibilidad con versiones anteriores para que los scripts que utilizan comandos iptables sigan funcionando en Red Hat Enterprise Linux 8. Para los nuevos scripts de cortafuegos, Red Hat recomienda utilizar nftables.
Importante

Para evitar que los diferentes servicios de firewall se influyan mutuamente, ejecute sólo uno de ellos en un host RHEL y desactive los demás servicios.

44.2. Cómo empezar con firewalld

44.2.1. firewalld

firewalld es un demonio de servicio de cortafuegos que proporciona un cortafuegos dinámico personalizable basado en el host con una interfaz D-Bus. Al ser dinámico, permite crear, cambiar y eliminar las reglas sin necesidad de reiniciar el demonio del cortafuegos cada vez que se cambian las reglas.

firewalld utiliza los conceptos de zones y services, que simplifican la gestión del tráfico. Las zonas son conjuntos predefinidos de reglas. Se pueden asignar interfaces de red y fuentes a una zona. El tráfico permitido depende de la red a la que esté conectado el ordenador y del nivel de seguridad que tenga asignado esta red. Los servicios del cortafuegos son reglas predefinidas que cubren todos los ajustes necesarios para permitir el tráfico entrante para un servicio específico y se aplican dentro de una zona.

Los servicios utilizan uno o más ports o addresses para la comunicación en red. Los cortafuegos filtran la comunicación basándose en los puertos. Para permitir el tráfico de red para un servicio, sus puertos deben ser open. firewalld bloquea todo el tráfico en los puertos que no están explícitamente establecidos como abiertos. Algunas zonas, como trusted, permiten todo el tráfico por defecto.

Recursos adicionales

  • firewalld(1) página de manual

44.2.2. Zonas

firewalld puede utilizarse para separar las redes en diferentes zonas según el nivel de confianza que el usuario haya decidido otorgar a las interfaces y al tráfico dentro de esa red. Una conexión sólo puede formar parte de una zona, pero una zona puede utilizarse para muchas conexiones de red.

NetworkManager notifica a firewalld la zona de una interfaz. Puede asignar zonas a las interfaces con:

  • NetworkManager
  • firewall-config herramienta
  • firewall-cmd herramienta de línea de comandos
  • La consola web de RHEL

Los tres últimos sólo pueden editar los archivos de configuración correspondientes de NetworkManager. Si se cambia la zona de la interfaz mediante la consola web, firewall-cmd o firewall-config, la solicitud se reenvía a NetworkManager y no es gestionada porfirewalld.

Las zonas predefinidas se almacenan en el directorio /usr/lib/firewalld/zones/ y pueden aplicarse instantáneamente a cualquier interfaz de red disponible. Estos archivos se copian en el directorio /etc/firewalld/zones/ sólo después de ser modificados. La configuración por defecto de las zonas predefinidas es la siguiente:

block
Cualquier conexión de red entrante es rechazada con un mensaje icmp-host-prohibido para IPv4 e icmp6-adm-prohibido para IPv6. Sólo son posibles las conexiones de red iniciadas desde dentro del sistema.
dmz
Para los ordenadores de su zona desmilitarizada de acceso público con acceso limitado a su red interna. Sólo se aceptan las conexiones entrantes seleccionadas.
drop
Todos los paquetes de red entrantes se descartan sin ninguna notificación. Sólo son posibles las conexiones de red salientes.
external
Para usar en redes externas con el enmascaramiento activado, especialmente para los routers. No confía en que los otros ordenadores de la red no dañen su ordenador. Sólo se aceptan las conexiones entrantes seleccionadas.
home
Para usar en casa cuando se confía principalmente en los otros ordenadores de la red. Sólo se aceptan las conexiones entrantes seleccionadas.
internal
Para su uso en redes internas cuando se confía principalmente en los otros ordenadores de la red. Sólo se aceptan las conexiones entrantes seleccionadas.
public
Para su uso en áreas públicas donde no se confía en otros ordenadores de la red. Sólo se aceptan las conexiones entrantes seleccionadas.
trusted
Se aceptan todas las conexiones de red.
work
Para su uso en el trabajo, donde se confía principalmente en los otros ordenadores de la red. Sólo se aceptan las conexiones entrantes seleccionadas.

Una de estas zonas se establece como la zona default. Cuando se añaden conexiones de interfaz a NetworkManager, se asignan a la zona por defecto. En la instalación, la zona por defecto en firewalld se establece como la zona public. La zona por defecto se puede cambiar.

Nota

Los nombres de las zonas de red deben ser autoexplicativos y permitir a los usuarios tomar rápidamente una decisión razonable. Para evitar cualquier problema de seguridad, revise la configuración de la zona por defecto y desactive cualquier servicio innecesario según sus necesidades y evaluaciones de riesgo.

Recursos adicionales

  • firewalld.zone(5) página de manual

44.2.3. Servicios predefinidos

Un servicio puede ser una lista de puertos locales, protocolos, puertos de origen y destinos, así como una lista de módulos de ayuda del cortafuegos que se cargan automáticamente si el servicio está activado. El uso de servicios ahorra tiempo a los usuarios porque pueden realizar varias tareas, como abrir puertos, definir protocolos, habilitar el reenvío de paquetes, etc., en un solo paso, en lugar de configurar todo uno tras otro.

Las opciones de configuración de los servicios y la información genérica de los archivos se describen en la página man firewalld.service(5). Los servicios se especifican mediante archivos de configuración XML individuales, que se denominan con el siguiente formato service-name.xml. Se prefieren los nombres de los protocolos a los de los servicios o aplicaciones en firewalld.

Los servicios pueden añadirse y eliminarse mediante la herramienta gráfica firewall-config, firewall-cmd, y firewall-offline-cmd.

También puede editar los archivos XML en el directorio /etc/firewalld/services/. Si el usuario no añade o modifica un servicio, no se encuentra el archivo XML correspondiente en /etc/firewalld/services/. Los archivos del directorio /usr/lib/firewalld/services/ pueden utilizarse como plantillas si se desea añadir o modificar un servicio.

Recursos adicionales

  • firewalld.service(5) página de manual

44.3. Instalación de la herramienta de configuración GUI firewall-config

Para utilizar la herramienta de configuración GUI firewall-config, instale el paquete firewall-config.

Procedimiento

  1. Introduzca el siguiente comando como root:

    # yum install firewall-config

    Alternativamente, en GNOME, use the Super key and type `Software para iniciar la aplicación Software Sources. Escriba firewall en el cuadro de búsqueda, que aparece después de seleccionar el botón de búsqueda en la esquina superior derecha. Seleccione el elemento Firewall de los resultados de la búsqueda y haga clic en el botón Instalar.

  2. Para ejecutar firewall-config, utilice el comando firewall-config o pulse la tecla Super para entrar en Activities Overview, escriba firewall y pulse Enter.

44.4. Ver el estado actual y la configuración de firewalld

44.4.1. Ver el estado actual de firewalld

El servicio de cortafuegos, firewalld, está instalado en el sistema por defecto. Utilice la interfaz CLI de firewalld para comprobar que el servicio se está ejecutando.

Procedimiento

  1. Para ver el estado del servicio:

    # firewall-cmd --state
  2. Para obtener más información sobre el estado del servicio, utilice el subcomando systemctl status:

    # systemctl status firewalld
    firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor pr
       Active: active (running) since Mon 2017-12-18 16:05:15 CET; 50min ago
         Docs: man:firewalld(1)
     Main PID: 705 (firewalld)
        Tasks: 2 (limit: 4915)
       CGroup: /system.slice/firewalld.service
               └─705 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid

Recursos adicionales

Es importante saber cómo está configurado firewalld y qué reglas están en vigor antes de intentar editar la configuración. Para mostrar la configuración del cortafuegos, consulte Sección 44.4.2, “Ver la configuración actual de firewalld”

44.4.2. Ver la configuración actual de firewalld

44.4.2.1. Visualización de los servicios permitidos mediante la GUI

Para ver la lista de servicios mediante la herramienta gráfica firewall-config pulse la tecla Super para acceder a la vista general de actividades, escriba firewall y pulse Intro. Aparece la herramienta firewall-config aparece la herramienta. Ahora puede ver la lista de servicios en la pestaña Services.

Como alternativa, para iniciar la herramienta gráfica de configuración del cortafuegos mediante la línea de comandos, introduzca el siguiente comando:

$ firewall-config

Se abre la ventana Firewall Configuration. Tenga en cuenta que este comando se puede ejecutar como un usuario normal, pero ocasionalmente se le pedirá una contraseña de administrador.

44.4.2.2. Visualización de la configuración de firewalld mediante la CLI

Con el cliente CLI, es posible obtener diferentes vistas de la configuración actual del cortafuegos. La opción --list-all muestra una visión completa de la configuración de firewalld.

firewalld utiliza zonas para gestionar el tráfico. Si no se especifica una zona mediante la opción --zone, el comando es efectivo en la zona por defecto asignada a la interfaz de red y la conexión activas.

Para listar toda la información relevante para la zona por defecto:

# firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Para especificar la zona para la que se muestran los ajustes, añada el argumento --zone=zone-name al comando firewall-cmd --list-all, por ejemplo:

# firewall-cmd --list-all --zone=home
home
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh mdns samba-client dhcpv6-client
... [trimmed for clarity]

Para ver la configuración de una información concreta, como los servicios o los puertos, utilice una opción específica. Consulte las páginas del manual firewalld u obtenga una lista de las opciones utilizando la ayuda del comando:

# firewall-cmd --help

Usage: firewall-cmd [OPTIONS...]

General Options
  -h, --help           Prints a short help text and exists
  -V, --version        Print the version string of firewalld
  -q, --quiet          Do not print status messages

Status Options
  --state              Return and print firewalld state
  --reload             Reload firewall and keep state information
... [trimmed for clarity]

Por ejemplo, para ver qué servicios están permitidos en la zona actual:

# firewall-cmd --list-services
ssh dhcpv6-client
Nota

El listado de las configuraciones para una determinada subparte utilizando la herramienta CLI puede ser a veces difícil de interpretar. Por ejemplo, usted permite el servicio SSH y firewalld abre el puerto necesario (22) para el servicio. Más tarde, si se listan los servicios permitidos, la lista muestra el servicio SSH, pero si se listan los puertos abiertos, no muestra ninguno. Por lo tanto, se recomienda utilizar la opción --list-all para asegurarse de recibir una información completa.

44.5. Iniciando firewalld

Procedimiento

  1. Para iniciar firewalld, introduzca el siguiente comando como root:

    # systemctl unmask firewalld
    # systemctl start firewalld
  2. Para garantizar que firewalld se inicie automáticamente al arrancar el sistema, introduzca el siguiente comando como root:

    # systemctl enable firewalld

44.6. Detención de firewalld

Procedimiento

  1. Para detener firewalld, introduzca el siguiente comando como root:

    # systemctl stop firewalld
  2. Para evitar que firewalld se inicie automáticamente al arrancar el sistema:

    # systemctl disable firewalld
  3. Para asegurarse de que firewalld no se inicia accediendo a la interfaz firewalld D-Bus y también si otros servicios requieren firewalld:

    # systemctl mask firewalld

44.7. Tiempo de ejecución y ajustes permanentes

Cualquier cambio realizado en el modo runtime sólo se aplica mientras firewalld está en funcionamiento. Cuando se reinicia firewalld, los ajustes vuelven a sus valores de permanent.

Para que los cambios persistan en los reinicios, aplíquelos de nuevo utilizando la opción --permanent. Alternativamente, para hacer que los cambios sean persistentes mientras se ejecuta firewalld, utilice la opción --runtime-to-permanent firewall-cmd .

Si establece las reglas mientras firewalld se está ejecutando utilizando sólo la opción --permanent, no se hacen efectivas antes de que se reinicie firewalld. Sin embargo, al reiniciar firewalld se cierran todos los puertos abiertos y se detiene el tráfico de red.

Modificación de ajustes en tiempo de ejecución y configuración permanente mediante CLI

Utilizando la CLI, no se modifica la configuración del cortafuegos en ambos modos al mismo tiempo. Sólo se modifica el modo de tiempo de ejecución o el modo permanente. Para modificar la configuración del cortafuegos en el modo permanente, utilice la opción --permanent con el comando firewall-cmd.

# firewall-cmd --permanent <other options>

Sin esta opción, el comando modifica el modo de ejecución.

Para cambiar los ajustes en ambos modos, puedes utilizar dos métodos:

  1. Cambie la configuración de tiempo de ejecución y luego hágala permanente de la siguiente manera:

    # firewall-cmd <other options>
    # firewall-cmd --runtime-to-permanent
  2. Establezca los ajustes permanentes y recargue los ajustes en el modo de ejecución:

    # firewall-cmd --permanent <other options>
    # firewall-cmd --reload

El primer método permite probar los ajustes antes de aplicarlos al modo permanente.

Nota

Es posible, especialmente en los sistemas remotos, que una configuración incorrecta haga que un usuario se bloquee en una máquina. Para evitar estas situaciones, utilice la opción --timeout. Después de un tiempo determinado, cualquier cambio vuelve a su estado anterior. El uso de esta opción excluye la opción --permanent.

Por ejemplo, para añadir el servicio SSH durante 15 minutos:

# firewall-cmd --add-service=ssh --timeout 15m

44.8. Verificación de la configuración permanente de firewalld

En ciertas situaciones, por ejemplo después de editar manualmente los archivos de configuración de firewalld, los administradores quieren verificar que los cambios son correctos. Esta sección describe cómo verificar la configuración permanente del servicio firewalld.

Requisitos previos

  • El servicio firewalld está funcionando.

Procedimiento

  1. Verifique la configuración permanente del servicio firewalld:

    # firewall-cmd --check-config
    success

    Si la configuración permanente es válida, el comando devuelve success. En otros casos, el comando devuelve un error con más detalles, como el siguiente:

    # firewall-cmd --check-config
    Error: INVALID_PROTOCOL: 'public.xml': 'tcpx' not from {'tcp'|'udp'|'sctp'|'dccp'}

44.9. Controlar el tráfico de la red mediante firewalld

44.9.1. Desactivación de todo el tráfico en caso de emergencia mediante CLI

En una situación de emergencia, como un ataque al sistema, es posible desactivar todo el tráfico de la red y cortar al atacante.

Procedimiento

  1. Para desactivar inmediatamente el tráfico de red, active el modo de pánico:

    # firewall-cmd --panic-on
Importante

La activación del modo pánico detiene todo el tráfico de red. Por esta razón, sólo debe utilizarse cuando se tiene el acceso físico a la máquina o si se ha iniciado la sesión mediante una consola serie.

Al desactivar el modo de pánico, el cortafuegos vuelve a su configuración permanente. Para desactivar el modo de pánico:

# firewall-cmd --panic-off

Para ver si el modo de pánico está activado o desactivado, utilice:

# firewall-cmd --query-panic

44.9.2. Control del tráfico con servicios predefinidos mediante CLI

El método más sencillo para controlar el tráfico es añadir un servicio predefinido a firewalld. Así se abren todos los puertos necesarios y se modifican otras configuraciones según el service definition file.

Procedimiento

  1. Compruebe que el servicio no está ya permitido:

    # firewall-cmd --list-services
    ssh dhcpv6-client
  2. Enumerar todos los servicios predefinidos:

    # firewall-cmd --get-services
    RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry ...
    [trimmed for clarity]
  3. Añade el servicio a los servicios permitidos:

    # firewall-cmd --add-service=<nombre-servicio>
  4. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent

44.9.3. Control del tráfico con servicios predefinidos mediante la interfaz gráfica de usuario

Para activar o desactivar un servicio predefinido o personalizado:

  1. Inicie la herramienta firewall-config herramienta y seleccione la zona de red cuyos servicios se van a configurar.
  2. Seleccione la pestaña Services.
  3. Seleccione la casilla de cada tipo de servicio en el que desee confiar o desactive la casilla para bloquear un servicio.

Para editar un servicio:

  1. Inicie la firewall-config herramienta.
  2. Seleccione Permanent en el menú denominado Configuration. En la parte inferior de la ventana de Servicios aparecen otros iconos y botones de menú.
  3. Seleccione el servicio que desea configurar.

Las pestañas Ports, Protocols, y Source Port permiten añadir, cambiar y eliminar puertos, protocolos y puerto de origen para el servicio seleccionado. La pestaña de módulos es para configurar Netfilter módulos de ayuda. La pestaña Destination permite limitar el tráfico a una dirección de destino y un protocolo de Internet concretos (IPv4 o IPv6).

Nota

No es posible modificar los ajustes de servicio en el modo Runtime.

44.9.4. Añadir nuevos servicios

Los servicios pueden añadirse y eliminarse utilizando la herramienta gráfica firewall-config firewall-cmd y firewall-offline-cmd. También se pueden editar los archivos XML en /etc/firewalld/services/. Si el usuario no añade o modifica un servicio, no se encuentra el archivo XML correspondiente en /etc/firewalld/services/. Los archivos /usr/lib/firewalld/services/ pueden utilizarse como plantillas si se desea añadir o modificar un servicio.

Nota

Los nombres de los servicios deben ser alfanuméricos y, además, sólo pueden incluir los caracteres _ (guión bajo) y - (guión).

Procedimiento

Para añadir un nuevo servicio en un terminal, utilice firewall-cmd, o firewall-offline-cmd en caso de que no esté activo firewalld.

  1. Introduzca el siguiente comando para añadir un servicio nuevo y vacío:

    $ firewall-cmd --new-service=service-name --permanent
  2. Para añadir un nuevo servicio utilizando un archivo local, utilice el siguiente comando:

    $ firewall-cmd --new-service-from-file=service-name.xml --permanent

    Puede cambiar el nombre del servicio con la opción adicional --name=service-name adicional.

  3. En cuanto se modifican los ajustes del servicio, se coloca una copia actualizada del mismo en /etc/firewalld/services/.

    Como root, puede introducir el siguiente comando para copiar un servicio manualmente:

    # cp /usr/lib/firewalld/services/service-name.xml /etc/firewalld/services/service-name.xml

firewalld carga los archivos de /usr/lib/firewalld/services en primer lugar. Si los archivos se colocan en /etc/firewalld/services y son válidos, entonces estos anularán los archivos coincidentes de /usr/lib/firewalld/services. Los archivos anulados en /usr/lib/firewalld/services se utilizan tan pronto como los archivos coincidentes en /etc/firewalld/services se hayan eliminado o si se ha pedido a firewalld que cargue los valores predeterminados de los servicios. Esto se aplica sólo al entorno permanente. Se necesita una recarga para obtener estos fallbacks también en el entorno de ejecución.

44.9.5. Controlar los puertos mediante la CLI

Los puertos son dispositivos lógicos que permiten a un sistema operativo recibir y distinguir el tráfico de red y reenviarlo en consecuencia a los servicios del sistema. Suelen estar representados por un demonio que escucha en el puerto, es decir, que espera cualquier tráfico que llegue a este puerto.

Normalmente, los servicios del sistema escuchan en los puertos estándar que están reservados para ellos. El demonio httpd, por ejemplo, escucha en el puerto 80. Sin embargo, los administradores del sistema configuran por defecto los dæmons para que escuchen en diferentes puertos para mejorar la seguridad o por otras razones.

44.9.5.1. Abrir un puerto

A través de los puertos abiertos, el sistema es accesible desde el exterior, lo que representa un riesgo de seguridad. Por lo general, mantén los puertos cerrados y sólo ábrelos si son necesarios para determinados servicios.

Procedimiento

Para obtener una lista de puertos abiertos en la zona actual:

  1. Lista de todos los puertos permitidos:

    # firewall-cmd --list-ports
  2. Añade un puerto a los puertos permitidos para abrirlo al tráfico entrante:

    # firewall-cmd --add-port=número de puerto/tipo de puerto
  3. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent

Los tipos de puerto son tcp, udp, sctp, o dccp. El tipo debe coincidir con el tipo de comunicación de red.

44.9.5.2. Cerrar un puerto

Cuando un puerto abierto ya no es necesario, cierre ese puerto en firewalld. Se recomienda encarecidamente cerrar todos los puertos innecesarios en cuanto no se utilicen, ya que dejar un puerto abierto representa un riesgo para la seguridad.

Procedimiento

Para cerrar un puerto, elimínelo de la lista de puertos permitidos:

  1. Lista de todos los puertos permitidos:

    # firewall-cmd --list-ports
    [WARNING]
    ====
    This command will only give you a list of ports that have been opened as ports. You will not be able to see any open ports that have been opened as a service. Therefore, you should consider using the --list-all option instead of --list-ports.
    ====
  2. Elimina el puerto de los puertos permitidos para cerrarlo al tráfico entrante:

    # firewall-cmd --remove-port=número de puerto/tipo de puerto
  3. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent

44.9.6. Abrir puertos mediante la GUI

Para permitir el tráfico a través del firewall a un determinado puerto:

  1. Inicie la firewall-config herramienta y seleccione la zona de red cuya configuración desea modificar.
  2. Seleccione la pestaña Ports y haga clic en el botón Añadir de la derecha. Se abre la ventana Port and Protocol.
  3. Introduzca el número de puerto o el rango de puertos a permitir.
  4. Seleccione tcp o udp de la lista.

44.9.7. Control del tráfico con protocolos mediante GUI

Para permitir el tráfico a través del cortafuegos utilizando un determinado protocolo:

  1. Inicie la firewall-config herramienta y seleccione la zona de red cuya configuración desea modificar.
  2. Seleccione la pestaña Protocols y haga clic en el botón Add de la derecha. Se abre la ventana Protocol.
  3. Seleccione un protocolo de la lista o marque la casilla Other Protocol e introduzca el protocolo en el campo.

44.9.8. Abrir puertos de origen mediante la GUI

Para permitir el tráfico a través del cortafuegos desde un determinado puerto:

  1. Inicie la herramienta de configuración del cortafuegos y seleccione la zona de red cuya configuración desea modificar.
  2. Seleccione la pestaña Source Port y haga clic en el botón Add de la derecha. Se abre la ventana Source Port.
  3. Introduzca el número de puerto o el rango de puertos a permitir. Seleccione tcp o udp de la lista.

44.10. Trabajar con zonas de firewalld

Las zonas representan un concepto para gestionar el tráfico entrante de forma más transparente. Las zonas están conectadas a interfaces de red o se les asigna un rango de direcciones de origen. Las reglas del cortafuegos se gestionan para cada zona de forma independiente, lo que permite definir configuraciones complejas del cortafuegos y aplicarlas al tráfico.

44.10.1. Zonas de cotización

Procedimiento

  1. Para ver qué zonas están disponibles en su sistema:

    # firewall-cmd --get-zones

    El comando firewall-cmd --get-zones muestra todas las zonas que están disponibles en el sistema, pero no muestra ningún detalle de zonas concretas.

  2. Para ver información detallada de todas las zonas:

    # firewall-cmd --list-all-zones
  3. Para ver información detallada de una zona concreta:

    # firewall-cmd --zone=nombre-de-la-zona --list-all

44.10.2. Modificación de la configuración de firewalld para una zona determinada

En Sección 44.9.2, “Control del tráfico con servicios predefinidos mediante CLI” y Sección 44.9.5, “Controlar los puertos mediante la CLI” se explica cómo añadir servicios o modificar puertos en el ámbito de la zona de trabajo actual. A veces, es necesario establecer reglas en una zona diferente.

Procedimiento

  1. Para trabajar en una zona diferente, utilice la opción --zone=zone-name opción. Por ejemplo, para permitir el servicio SSH en la zona public:
# firewall-cmd --add-service=ssh --zone=public

44.10.3. Cambiar la zona por defecto

Los administradores del sistema asignan una zona a una interfaz de red en sus archivos de configuración. Si una interfaz no está asignada a una zona específica, se asigna a la zona por defecto. Después de cada reinicio del servicio firewalld, firewalld carga la configuración de la zona por defecto y la activa.

Procedimiento

Para configurar la zona por defecto:

  1. Muestra la zona actual por defecto:

    # firewall-cmd --get-default-zone
  2. Establezca la nueva zona por defecto:

    # firewall-cmd --set-default-zone zone-name
    Nota

    Siguiendo este procedimiento, el ajuste es permanente, incluso sin la opción --permanent.

44.10.4. Asignación de una interfaz de red a una zona

Es posible definir diferentes conjuntos de reglas para diferentes zonas y luego cambiar la configuración rápidamente cambiando la zona para la interfaz que se está utilizando. Con múltiples interfaces, se puede establecer una zona específica para cada una de ellas para distinguir el tráfico que llega a través de ellas.

Procedimiento

Para asignar la zona a una interfaz específica:

  1. Enumera las zonas activas y las interfaces asignadas a ellas:

    # firewall-cmd --get-active-zones
  2. Asigne la interfaz a una zona diferente:

    # firewall-cmd --zone=zone_name --change-interface=interface_name --permanent

44.10.5. Asignación de una zona a una conexión mediante nmcli

Este procedimiento describe cómo añadir una zona de firewalld a una conexión de NetworkManager utilizando la utilidad nmcli.

Procedimiento

  1. Asigna la zona al perfil de conexión de NetworkManager:

    # nmcli connection modify profile connection.zone zone_name
  2. Recarga la conexión:

    # nmcli connection up profile

44.10.6. Asignación manual de una zona a una conexión de red en un archivo ifcfg

Cuando la conexión es gestionada por NetworkManagerdebe conocer una zona que utiliza. Para cada conexión de red, se puede especificar una zona, lo que proporciona la flexibilidad de varias configuraciones de cortafuegos según la ubicación del ordenador con dispositivos portátiles. Así, se pueden especificar zonas y configuraciones para diferentes ubicaciones, como la empresa o el hogar.

Procedimiento

  1. Para establecer una zona para una conexión, edite el archivo /etc/sysconfig/network-scripts/ifcfg-connection_name y añada una línea que asigne una zona a esta conexión:

    ZONA=zone_name

44.10.7. Crear una nueva zona

Para utilizar zonas personalizadas, cree una nueva zona y utilícela igual que una zona predefinida. Las nuevas zonas requieren la opción --permanent, de lo contrario el comando no funciona.

Procedimiento

Para crear una nueva zona:

  1. Crear una nueva zona:

    # firewall-cmd --new-zone=nombre-de-zona
  2. Compruebe si la nueva zona se ha añadido a su configuración permanente:

    # firewall-cmd --get-zones
  3. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent

44.10.8. Archivos de configuración de zona

Las zonas también pueden crearse utilizando un zone configuration file. Este enfoque puede ser útil cuando se necesita crear una nueva zona, pero se quiere reutilizar la configuración de otra zona y sólo alterarla un poco.

Un archivo de configuración de zona firewalld contiene la información de una zona. Se trata de la descripción de la zona, los servicios, los puertos, los protocolos, los bloqueos icmp, la mascarada, los puertos de reenvío y las reglas de lenguaje enriquecido en formato de archivo XML. El nombre del archivo debe ser zone-name.xml donde la longitud de zone-name está limitada actualmente a 17 caracteres. Los archivos de configuración de zona se encuentran en los directorios /usr/lib/firewalld/zones/ y /etc/firewalld/zones/.

El siguiente ejemplo muestra una configuración que permite un servicio (SSH) y un rango de puertos, tanto para los protocolos TCP como UDP:

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>My zone</short>
  <description>Here you can describe the characteristic features of the zone.</description>
  <service name="ssh"/>
  <port port="1025-65535" protocol="tcp"/>
  <port port="1025-65535" protocol="udp"/>
</zone>

Para cambiar la configuración de esa zona, añada o elimine secciones para añadir puertos, reenviar puertos, servicios, etc.

Recursos adicionales

  • Para más información, consulte las páginas del manual firewalld.zone.

44.10.9. Uso de objetivos de zona para establecer el comportamiento por defecto para el tráfico entrante

Para cada zona, se puede establecer un comportamiento por defecto que gestione el tráfico entrante que no se especifique más. Este comportamiento se define estableciendo el objetivo de la zona. Hay cuatro opciones - default, ACCEPT, REJECT, y DROP. Si se establece el objetivo en ACCEPT, se aceptan todos los paquetes entrantes excepto los deshabilitados por una regla específica. Si establece el objetivo en REJECT o DROP, deshabilita todos los paquetes entrantes excepto los que haya permitido en reglas específicas. Cuando los paquetes son rechazados, la máquina de origen es informada del rechazo, mientras que no se envía ninguna información cuando los paquetes son descartados.

Procedimiento

Para establecer un objetivo para una zona:

  1. Enumerar la información de la zona específica para ver el objetivo por defecto:

    $ firewall-cmd --zone=zone-name --list-all
  2. Establece un nuevo objetivo en la zona:

    # firewall-cmd --permanent --zone=nombre-de-zona --set-target=<default|ACCEPT|REJECT|DROP>

44.11. Uso de zonas para gestionar el tráfico entrante en función de una fuente

44.11.1. Uso de zonas para gestionar el tráfico entrante en función de una fuente

Puede utilizar las zonas para gestionar el tráfico entrante en función de su origen. Esto le permite clasificar el tráfico entrante y enrutarlo a través de diferentes zonas para permitir o rechazar los servicios que pueden ser alcanzados por ese tráfico.

Si añade una fuente a una zona, ésta se activa y todo el tráfico entrante procedente de esa fuente será dirigido a través de ella. Puede especificar diferentes configuraciones para cada zona, que se aplican al tráfico de las fuentes dadas en consecuencia. Puede utilizar más zonas aunque sólo tenga una interfaz de red.

44.11.2. Añadir una fuente

Para enrutar el tráfico entrante hacia una fuente específica, añada la fuente a esa zona. El origen puede ser una dirección IP o una máscara IP en la notación Classless Inter-domain Routing (CIDR).

Nota

En caso de que añada varias zonas con un rango de red superpuesto, se ordenan alfanuméricamente por nombre de zona y sólo se tiene en cuenta la primera.

  • Para fijar la fuente en la zona actual:

    # firewall-cmd --add-source=<source>
  • Para establecer la dirección IP de origen para una zona específica:

    # firewall-cmd --zone=nombre-de-la-zona --add-source=<source>

El siguiente procedimiento permite todo el tráfico entrante de 192.168.2.15 en la zona trusted:

Procedimiento

  1. Enumera todas las zonas disponibles:

    # firewall-cmd --get-zones
  2. Añade la IP de origen a la zona de confianza en el modo permanente:

    # firewall-cmd --zone=trusted --add-source=192.168.2.15
  3. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent

44.11.3. Eliminar una fuente

Al eliminar una fuente de la zona se corta el tráfico procedente de ella.

Procedimiento

  1. Lista de fuentes permitidas para la zona requerida:

    # firewall-cmd --zone=nombre-de-la-zona --list-sources
  2. Eliminar la fuente de la zona de forma permanente:

    # firewall-cmd --zone=nombre-de-zona --remove-source=<source>
  3. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent

44.11.4. Añadir un puerto de origen

Para habilitar la clasificación del tráfico basada en un puerto de origen, especifique un puerto de origen utilizando la opción --add-source-port. También puede combinar esto con la opción --add-source para limitar el tráfico a una determinada dirección IP o rango de IP.

Procedimiento

  1. Para añadir un puerto de origen:

    # firewall-cmd --zone=nombre-de-la-zona --add-source-port=-nombre-de-puerto>/<tcp|udp|sctp|dccp>

44.11.5. Eliminación de un puerto de origen

Al eliminar un puerto de origen se desactiva la clasificación del tráfico en función de un puerto de origen.

Procedimiento

  1. Para eliminar un puerto de origen:

    # firewall-cmd --zone=nombre-de-la-zona --remove-source-port=-nombre-de-puerto>/<tcp|udp|sctp|dccp>

44.11.6. Uso de zonas y fuentes para permitir un servicio sólo para un dominio específico

Para permitir que el tráfico de una red específica utilice un servicio en una máquina, utilice las zonas y el origen. El siguiente procedimiento permite que el tráfico de 192.168.1.0/24 pueda llegar al servicio HTTP mientras que cualquier otro tráfico está bloqueado.

Procedimiento

  1. Enumera todas las zonas disponibles:

    # firewall-cmd --get-zones
    block dmz drop external home internal public trusted work
  2. Añade el origen a la zona de confianza para enrutar el tráfico originado por el origen a través de la zona:

    # firewall-cmd --zone=trusted --add-source=192.168.1.0/24
  3. Añade el servicio http en la zona de confianza:

    # firewall-cmd --zone=trusted --add-service=http
  4. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent
  5. Compruebe que la zona de confianza está activa y que el servicio está permitido en ella:

    # firewall-cmd --zone=trusted --list-all
    trusted (active)
    target: ACCEPT
    sources: 192.168.1.0/24
    services: http

44.11.7. Configurar el tráfico aceptado por una zona en función de un protocolo

Puede permitir que el tráfico entrante sea aceptado por una zona basándose en un protocolo. Todo el tráfico que utiliza el protocolo especificado es aceptado por una zona, en la que puede aplicar más reglas y filtrado.

44.11.7.1. Añadir un protocolo a una zona

Al añadir un protocolo a una zona determinada, se permite que todo el tráfico con este protocolo sea aceptado por esta zona.

Procedimiento

  1. Para añadir un protocolo a una zona:

    # firewall-cmd --zone=nombre-de-zona --add-protocolo=nombre-de-puerto/tcp|udp|sctp|dccp|igmp
Nota

Para recibir tráfico de multidifusión, utilice el valor igmp con la opción --add-protocol.

44.11.7.2. Eliminar un protocolo de una zona

Al eliminar un protocolo de una zona determinada, se deja de aceptar todo el tráfico basado en este protocolo por la zona.

Procedimiento

  1. Para eliminar un protocolo de una zona:

    # firewall-cmd --zone=nombre-de-zona --remove-protocolo=nombre-de-puerto/tcp|udp|sctp|dccp|igmp

44.12. Configuración del enmascaramiento de direcciones IP

El siguiente procedimiento describe cómo habilitar el enmascaramiento de IP en su sistema. El enmascaramiento de IP oculta las máquinas individuales detrás de una puerta de enlace cuando se accede a Internet.

Procedimiento

  1. Para comprobar si el enmascaramiento de IP está activado (por ejemplo, para la zona external ), introduzca el siguiente comando como root:

    # firewall-cmd --zone=external --query-masquerade

    El comando imprime yes con el estado de salida 0 si está activado. Imprime no con el estado de salida 1 en caso contrario. Si se omite zone, se utilizará la zona por defecto.

  2. Para activar el enmascaramiento de IP, introduzca el siguiente comando como root:

    # firewall-cmd --zone=external --add-masquerade
  3. Para que esta configuración sea persistente, repita el comando añadiendo la opción --permanent.

Para desactivar el enmascaramiento de IP, introduzca el siguiente comando como root:

# firewall-cmd --zone=external --remove-masquerade --permanent

44.13. Reenvío de puertos

El redireccionamiento de puertos mediante este método sólo funciona para el tráfico basado en IPv4. Para la configuración de redireccionamiento de IPv6, debe utilizar reglas ricas.

Para redirigir a un sistema externo, es necesario habilitar el enmascaramiento. Para más información, consulte Configuración del enmascaramiento de direcciones IP.

44.13.1. Añadir un puerto para redirigir

Utilizando firewalld, puede configurar la redirección de puertos para que cualquier tráfico entrante que llegue a un determinado puerto de su sistema sea entregado a otro puerto interno de su elección o a un puerto externo de otra máquina.

Requisitos previos

  • Antes de redirigir el tráfico de un puerto a otro puerto, o a otra dirección, hay que saber tres cosas: a qué puerto llegan los paquetes, qué protocolo se utiliza y a dónde se quiere redirigir.

Procedimiento

Para redirigir un puerto a otro puerto:

# firewall-cmd --add-forward-port=puerto=número de puerto:proto=tcp|udp|sctp|dccp:toport=número de puerto

Para redirigir un puerto a otro puerto en una dirección IP diferente:

  1. Añade el puerto a reenviar:

    # firewall-cmd --add-forward-port=puerto=número de puerto:proto=tcp|udp:toport=número de puerto:toaddr=IP
  2. Habilitar la mascarada:

    # firewall-cmd --add-masquerade

44.13.2. Redirigir el puerto TCP 80 al puerto 88 en la misma máquina

Siga los pasos para redirigir el puerto TCP 80 al puerto 88.

Procedimiento

  1. Redirige el puerto 80 al puerto 88 para el tráfico TCP:

    # firewall-cmd --add-forward-port=80:proto=tcp:toport=88
  2. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent
  3. Compruebe que el puerto está redirigido:

    # firewall-cmd --list-all

44.13.3. Eliminación de un puerto redirigido

Para eliminar un puerto redirigido:

# firewall-cmd --remove-forward-port=puerto=número de puerto:proto=<tcp|udp>:toport=número de puerto:toaddr=<IP>

Para eliminar un puerto redirigido a una dirección diferente, utilice el siguiente procedimiento.

Procedimiento

  1. Elimina el puerto reenviado:

    # firewall-cmd --remove-forward-port=puerto=número de puerto:proto=<tcp|udp>:toport=número de puerto:toaddr=<IP>
  2. Desactivar la mascarada:

    # firewall-cmd --remove-masquerade

44.13.4. Eliminación del puerto TCP 80 reenviado al puerto 88 en la misma máquina

Para eliminar la redirección de puertos:

Procedimiento

  1. Lista de puertos redirigidos:

    ~]# firewall-cmd --list-forward-ports
    port=80:proto=tcp:toport=88:toaddr=
  2. Elimine el puerto redirigido del cortafuegos::

    ~]# firewall-cmd  --remove-forward-port=port=80:proto=tcp:toport=88:toaddr=
  3. Haz que la nueva configuración sea persistente:

    ~]# firewall-cmd --runtime-to-permanent

44.14. Gestión de peticiones ICMP

El Internet Control Message Protocol (ICMP) es un protocolo de apoyo que utilizan varios dispositivos de red para enviar mensajes de error e información operativa que indican un problema de conexión, por ejemplo, que un servicio solicitado no está disponible. ICMP se diferencia de los protocolos de transporte como TCP y UDP porque no se utiliza para intercambiar datos entre sistemas.

Lamentablemente, es posible utilizar los mensajes de ICMP, especialmente echo-request y echo-reply, para revelar información sobre su red y hacer un mal uso de dicha información para diversos tipos de actividades fraudulentas. Por lo tanto, firewalld permite bloquear las solicitudes de ICMP para proteger la información de su red.

44.14.1. Listado y bloqueo de peticiones ICMP

Listado ICMP solicitudes

Las solicitudes de ICMP se describen en archivos XML individuales que se encuentran en el directorio /usr/lib/firewalld/icmptypes/. Puede leer estos archivos para ver una descripción de la solicitud. El comando firewall-cmd controla la manipulación de las peticiones de ICMP.

  • Para listar todos los tipos disponibles de ICMP:

    # firewall-cmd --get-icmptypes
  • La petición ICMP puede ser utilizada por IPv4, IPv6 o por ambos protocolos. Para ver para qué protocolo se utiliza la petición ICMP:

    # firewall-cmd --info-icmptype=<icmptype>
  • El estado de una solicitud ICMP muestra yes si la solicitud está actualmente bloqueada o no si no lo está. Para ver si una solicitud de ICMP está actualmente bloqueada:

    # firewall-cmd --query-icmp-block=<icmptype>

Bloqueo o desbloqueo de las solicitudes de ICMP

Cuando su servidor bloquea las solicitudes de ICMP, no proporciona la información que normalmente proporcionaría. Sin embargo, eso no significa que no se proporcione ninguna información. Los clientes reciben información de que la petición ICMP en particular está siendo bloqueada (rechazada). El bloqueo de las peticiones a ICMP debe considerarse cuidadosamente, porque puede causar problemas de comunicación, especialmente con el tráfico IPv6.

  • Para ver si una solicitud de ICMP está actualmente bloqueada:

    # firewall-cmd --query-icmp-block=<icmptype>
  • Para bloquear una solicitud de ICMP:

    # firewall-cmd --add-icmp-block=<icmptype>
  • Para eliminar el bloqueo de una solicitud de ICMP:

    # firewall-cmd --remove-icmp-block=<icmptype>

Bloqueo de las solicitudes de ICMP sin proporcionar ninguna información

Normalmente, si bloqueas las peticiones de ICMP, los clientes saben que lo estás bloqueando. Por lo tanto, un atacante potencial que esté husmeando en busca de direcciones IP activas todavía es capaz de ver que tu dirección IP está en línea. Para ocultar esta información por completo, tienes que eliminar todas las peticiones de ICMP.

  • Para bloquear y abandonar todas las solicitudes de ICMP:
  1. Establezca el objetivo de su zona en DROP:

    # firewall-cmd --permanent --set-target=DROP

Ahora, todo el tráfico, incluyendo las solicitudes de ICMP, se descarta, excepto el tráfico que usted ha permitido explícitamente.

  • Para bloquear y eliminar ciertas solicitudes de ICMP y permitir otras:
  1. Establezca el objetivo de su zona en DROP:

    # firewall-cmd --permanent --set-target=DROP
  2. Añade la inversión de bloque ICMP para bloquear todas las peticiones de ICMP a la vez:

    # firewall-cmd --add-icmp-block-inversion
  3. Añade el bloqueo ICMP para aquellas peticiones de ICMP que quieras permitir:

    # firewall-cmd --add-icmp-block=<icmptype>
  4. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent

El block inversion invierte la configuración de los bloqueos de las peticiones de ICMP, por lo que todas las peticiones, que antes no estaban bloqueadas, se bloquean debido a que el objetivo de su zona cambia a DROP. Las peticiones que estaban bloqueadas no lo están. Esto significa que si quiere desbloquear una petición, debe utilizar el comando de bloqueo.

  • Para revertir la inversión de bloques a una configuración totalmente permisiva:
  1. Establezca el objetivo de su zona en default o ACCEPT:

    # firewall-cmd --permanent --set-target=default
  2. Eliminar todos los bloques añadidos para las solicitudes de ICMP:

    # firewall-cmd --remove-icmp-block=<icmptype>
  3. Retire la inversión del bloque ICMP:

    # firewall-cmd --remove-icmp-block-inversion
  4. Haz que la nueva configuración sea persistente:

    # firewall-cmd --runtime-to-permanent

44.14.2. Configuración del filtro ICMP mediante la GUI

  • Para activar o desactivar un filtro ICMP, inicie la herramienta firewall-config herramienta y seleccione la zona de red cuyos mensajes deben ser filtrados. Seleccione la pestaña ICMP Filter y marque la casilla correspondiente a cada tipo de mensaje ICMP que desee filtrar. Desactive la casilla para desactivar un filtro. Esta configuración es por dirección y el valor por defecto permite todo.
  • Para editar un tipo de ICMP, inicie la herramienta firewall-config herramienta y seleccione el modo Permanent en el menú denominado Configuration. Aparecen iconos adicionales en la parte inferior de la ventana de Servicios. Seleccione en el siguiente cuadro de diálogo para habilitar el enmascaramiento y hacer que funcione el reenvío a otra máquina.
  • Para activar la inversión del ICMP Filter, haga clic en la casilla Invert Filter de la derecha. Ahora sólo se aceptan los tipos de ICMP marcados, todos los demás se rechazan. En una zona que utilice el objetivo DROP, se descartan.

44.15. Ajuste y control de los conjuntos IP mediante firewalld

Para ver la lista de tipos de conjuntos de IP soportados por firewalld, introduzca el siguiente comando como root.

~]# firewall-cmd --get-ipset-types
hash:ip hash:ip,mark hash:ip,port hash:ip,port,ip hash:ip,port,net hash:mac hash:net hash:net,iface hash:net,net hash:net,port hash:net,port,net

44.15.1. Configuración de las opciones del conjunto IP mediante la CLI

Los conjuntos de IP se pueden utilizar en las zonas de firewalld como fuentes y también como fuentes en reglas ricas. En Red Hat Enterprise Linux, el método preferido es utilizar los conjuntos de IP creados con firewalld en una regla directa.

  • Para listar los conjuntos de IP conocidos por firewalld en el entorno permanente, utilice el siguiente comando como root:

    # firewall-cmd --permanent --get-ipsets
  • Para añadir un nuevo conjunto de IP, utilice el siguiente comando utilizando el entorno permanente como root:

    # firewall-cmd --permanent --new-ipset=test --type=hash:net
    success

    El comando anterior crea un nuevo conjunto IP con el nombre test y el tipo hash:net para IPv4. Para crear un conjunto de IP para usar con IPv6, añada la opción --option=family=inet6. Para que la nueva configuración sea efectiva en el entorno de ejecución, vuelva a cargar firewalld.

  • Enumere el nuevo conjunto de IP con el siguiente comando como root:

    # firewall-cmd --permanent --get-ipsets
    test
  • Para obtener más información sobre el conjunto de IP, utilice el siguiente comando como root:

    # firewall-cmd --permanent --info-ipset=test
    test
    type: hash:net
    options:
    entries:

    Tenga en cuenta que el conjunto de IP no tiene ninguna entrada en este momento.

  • Para añadir una entrada al conjunto de IP de test, utilice el siguiente comando como root:

    # firewall-cmd --permanent --ipset=test --add-entry=192.168.0.1
    success

    El comando anterior añade la dirección IP 192.168.0.1 al conjunto de IP.

  • Para obtener la lista de entradas actuales en el conjunto de IP, utilice el siguiente comando como root:

    # firewall-cmd --permanent --ipset=test --get-entries
    192.168.0.1
  • Generar un archivo con una lista de direcciones IP, por ejemplo:

    # cat > iplist.txt <<EOL
    192.168.0.2
    192.168.0.3
    192.168.1.0/24
    192.168.2.254
    EOL

    El archivo con la lista de direcciones IP para un conjunto de IP debe contener una entrada por línea. Las líneas que comienzan con una almohadilla, un punto y coma o líneas vacías se ignoran.

  • Para añadir las direcciones del archivo iplist.txt, utilice el siguiente comando como root:

    # firewall-cmd --permanent --ipset=test --add-entries-from-file=iplist.txt
    success
  • Para ver la lista de entradas extendidas del conjunto de IP, utilice el siguiente comando como root:

    # firewall-cmd --permanent --ipset=test --get-entries
    192.168.0.1
    192.168.0.2
    192.168.0.3
    192.168.1.0/24
    192.168.2.254
  • Para eliminar las direcciones del conjunto de IP y comprobar la lista de entradas actualizada, utilice los siguientes comandos como root:

    # firewall-cmd --permanent --ipset=test --remove-entries-from-file=iplist.txt
    success
    # firewall-cmd --permanent --ipset=test --get-entries
    192.168.0.1
  • Puede añadir el conjunto de IPs como origen a una zona para gestionar todo el tráfico procedente de cualquiera de las direcciones listadas en el conjunto de IPs con una zona. Por ejemplo, para añadir el conjunto de IPs test como origen a la zona drop para descartar todos los paquetes procedentes de todas las entradas listadas en el conjunto de IPs test, utilice el siguiente comando como root:

    # firewall-cmd --permanent --zone=drop --add-source=ipset:test
    success

    El prefijo ipset: en el origen muestra a firewalld que el origen es un conjunto de IP y no una dirección IP o un rango de direcciones.

Sólo la creación y eliminación de conjuntos de IP está limitada al entorno permanente, todas las demás opciones de conjuntos de IP pueden utilizarse también en el entorno de ejecución sin la opción --permanent.

Aviso

Red Hat no recomienda el uso de conjuntos de IP que no sean gestionados a través de firewalld. Para usar tales conjuntos de IP, se requiere una regla directa permanente para referenciar el conjunto, y se debe agregar un servicio personalizado para crear estos conjuntos de IP. Este servicio debe iniciarse antes de que se inicie firewalld, de lo contrario firewalld no podrá añadir las reglas directas que utilizan estos conjuntos. Puede añadir reglas directas permanentes con el archivo /etc/firewalld/direct.xml.

44.16. Priorizar las reglas ricas

Por defecto, las reglas rica