Red Hat Training

A Red Hat training course is available for RHEL 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