Búsqueda de sitios web

Serie RHCE: Cómo configurar y probar el enrutamiento de red estática - Parte 1


RHCE (Red Hat Certified Engineer) es una certificación de la empresa Red Hat, que brinda un sistema operativo y software de código abierto a la comunidad empresarial. También brinda capacitación, soporte y Servicios de consultoría para las empresas.

Este RHCE (Ingeniero certificado de Red Hat) es un examen basado en el desempeño (nombre en clave EX300), que posee las habilidades, conocimientos y capacidades adicionales Se requiere de un administrador de sistemas senior responsable de los sistemas Red Hat Enterprise Linux (RHEL).

Importante: Se requiere la certificación Red Hat Certified System Administrator (RHCSA) para obtener la certificación RHCE.

Los siguientes son los objetivos del examen basados en la versión Red Hat Enterprise Linux 7 del examen, que se cubrirán en esta serie RHCE:

Para ver las tarifas y registrarse para un examen en su país, consulte la página de Certificación RHCE.

En esta Parte 1 de la serie RHCE y en la siguiente, presentaremos casos básicos, pero típicos, en los que los principios del enrutamiento estático, el filtrado de paquetes y la traducción de direcciones de red surgen. en juego.

Tenga en cuenta que no los cubriremos en profundidad, sino que organizaremos estos contenidos de tal manera que sean útiles para dar los primeros pasos y construir a partir de ahí.

Enrutamiento estático en Red Hat Enterprise Linux 7

Una de las maravillas de las redes modernas es la gran disponibilidad de dispositivos que pueden conectar grupos de computadoras, ya sea en cantidades relativamente pequeñas y confinadas a una sola habitación o a varias máquinas en el mismo edificio, ciudad, país o entre continentes.

Sin embargo, para lograr esto de manera efectiva en cualquier situación, los paquetes de red deben enrutarse o, en otras palabras, se debe controlar de alguna manera la ruta que siguen desde el origen al destino.

El enrutamiento estático es el proceso de especificar una ruta para paquetes de red distinta de la predeterminada, que es proporcionada por un dispositivo de red conocido como puerta de enlace predeterminada. A menos que se especifique lo contrario mediante enrutamiento estático, los paquetes de red se dirigen a la puerta de enlace predeterminada; Con el enrutamiento estático, otras rutas se definen según criterios predefinidos, como el destino del paquete.

Definamos el siguiente escenario para este tutorial. Tenemos una caja Red Hat Enterprise Linux 7 que se conecta al enrutador #1 [192.168.0.1] para acceder a Internet y a las máquinas en 192.168.0.0/24.

Un segundo enrutador (enrutador n.° 2) tiene dos tarjetas de interfaz de red: enp0s3 también está conectado al enrutador n.° 1 para acceder a Internet y comunicarse con la caja RHEL 7 y otras máquinas en la misma red, mientras que la otra (enp0s8) se usa para otorgar acceso a la red 10.0.0.0/24 donde residen los servicios internos , como por ejemplo un servidor web y/o de base de datos.

Este escenario se ilustra en el siguiente diagrama:

En este artículo nos centraremos exclusivamente en configurar la tabla de enrutamiento en nuestra caja RHEL 7 para asegurarnos de que pueda acceder a Internet a través del enrutador n.º 1 y de la red interna. a través del enrutador n.º 2.

En RHEL 7, utilizará el comando ip para configurar y mostrar dispositivos y enrutamiento usando la línea de comando. Estos cambios pueden tener efecto inmediatamente en un sistema en ejecución, pero como no son persistentes tras los reinicios, usaremos los archivos ifcfg-enp0sX y route-enp0sX dentro de /etc. /sysconfig/network-scripts para guardar nuestra configuración de forma permanente.

Para comenzar, imprimamos nuestra tabla de enrutamiento actual:

ip route show

Del resultado anterior, podemos ver los siguientes hechos:

  1. La dirección IP de la puerta de enlace predeterminada es 192.168.0.1 y se puede acceder a ella a través de la NIC enp0s3.
  2. Cuando el sistema arrancó, habilitó la ruta zeroconf a 169.254.0.0/16 (por si acaso). En pocas palabras, si una máquina está configurada para obtener una dirección IP a través de DHCP pero no lo logra por algún motivo, se le asigna automáticamente una dirección en esta red. La conclusión es que esta ruta nos permitirá comunicarnos, también a través de enp0s3, con otras máquinas que no han podido obtener una dirección IP de un servidor DHCP.
  3. Por último, pero no menos importante, podemos comunicarnos con otras cajas dentro de la red 192.168.0.0/24 a través de enp0s3, cuya dirección IP es 192.168.0.18 .

Estas son las tareas típicas que tendría que realizar en un entorno así. A menos que se especifique lo contrario, se deben realizar las siguientes tareas en el enrutador n.º 2:

Asegúrese de que todas las NIC se hayan instalado correctamente:

ip link show

Si uno de ellos está caído, súbelo:

ip link set dev enp0s8 up

y asignarle una dirección IP en la red 10.0.0.0/24:

ip addr add 10.0.0.17 dev enp0s8

¡Ups! Cometimos un error en la dirección IP. Tendremos que eliminar el que asignamos anteriormente y luego agregar el correcto (10.0.0.18):

ip addr del 10.0.0.17 dev enp0s8
ip addr add 10.0.0.18 dev enp0s8

Ahora, tenga en cuenta que solo puede agregar una ruta a una red de destino a través de una puerta de enlace que ya sea accesible. Por esa razón, necesitamos asignar una dirección IP dentro del rango 192.168.0.0/24 a enp0s3 para que nuestra caja RHEL 7 pueda comunicarse con él:

ip addr add 192.168.0.19 dev enp0s3

Finalmente, necesitaremos habilitar el reenvío de paquetes:

echo "1" > /proc/sys/net/ipv4/ip_forward

y detener/deshabilitar (sólo por el momento – hasta que cubramos el filtrado de paquetes en el próximo artículo) el firewall:

systemctl stop firewalld
systemctl disable firewalld

De vuelta en nuestro cuadro RHEL 7 (192.168.0.18), configuremos una ruta desde 10.0.0.0/24 hasta 192.168.0.19 (enp0s3 en el enrutador n.º 2):

ip route add 10.0.0.0/24 via 192.168.0.19

Después de eso, la tabla de enrutamiento tiene el siguiente aspecto:

ip route show

Asimismo, agrega la ruta correspondiente en la(s) máquina(s) a la(s) que intentas llegar en 10.0.0.0/24:

ip route add 192.168.0.0/24 via 10.0.0.18

Puedes probar la conectividad básica usando ping:

En el cuadro RHEL 7, ejecute

ping -c 4 10.0.0.20

donde 10.0.0.20 es la dirección IP de un servidor web en la red 10.0.0.0/24.

En el servidor web (10.0.0.20), ejecute

ping -c 192.168.0.18

donde 192.168.0.18 es, como recordarás, la dirección IP de nuestra máquina RHEL 7.

Alternativamente, podemos usar tcpdump (es posible que necesite instalarlo con yum install tcpdump) para verificar la comunicación bidireccional a través de TCP entre nuestra caja RHEL 7 y el servidor web en 10.0.0.20 .

Para hacerlo, comencemos a iniciar sesión en la primera máquina con:

tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

y desde otro terminal en el mismo sistema hagamos telnet al puerto 80 del servidor web (suponiendo que Apache esté escuchando en ese puerto; en caso contrario, indique el puerto correcto en el siguiente comando):

telnet 10.0.0.20 80

El registro tcpdump debería tener el siguiente aspecto:

Dónde se ha inicializado correctamente la conexión, como podemos saber mirando la comunicación bidireccional entre nuestra caja RHEL 7 (192.168.0.18) y el servidor web (< fuerte>10.0.0.20).

Recuerde que estos cambios desaparecerán cuando reinicie el sistema. Si desea hacerlos persistentes, deberá editar (o crear, si aún no existen) los siguientes archivos, en los mismos sistemas donde ejecutamos los comandos anteriores.

Aunque no es estrictamente necesario para nuestro caso de prueba, debe saber que /etc/sysconfig/network contiene parámetros de red para todo el sistema. Un /etc/sysconfig/network típico tiene el siguiente aspecto:

Enable networking on this system?
NETWORKING=yes
Hostname. Should match the value in /etc/hostname
HOSTNAME=yourhostnamehere
Default gateway
GATEWAY=XXX.XXX.XXX.XXX
Device used to connect to default gateway. Replace X with the appropriate number.
GATEWAYDEV=enp0sX

Cuando se trata de configurar variables y valores específicos para cada NIC (como hicimos con el enrutador n.° 2), tendrá que editar /etc/sysconfig/network-scripts/ifcfg-enp0s3 y /etc/sysconfig/network-scripts/ifcfg-enp0s8.

Siguiendo nuestro caso,

TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.0.19
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NAME=enp0s3
ONBOOT=yes

y

TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.0.0.18
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
NAME=enp0s8
ONBOOT=yes

para enp0s3 y enp0s8, respectivamente.

En cuanto al enrutamiento en nuestra máquina cliente (192.168.0.18), necesitaremos editar /etc/sysconfig/network-scripts/route-enp0s3:

10.0.0.0/24 via 192.168.0.19 dev enp0s3

Ahora reinicie su sistema y debería ver esa ruta en su tabla.

Resumen

En este artículo hemos cubierto los aspectos esenciales del enrutamiento estático en Red Hat Enterprise Linux 7. Aunque los escenarios pueden variar, el caso presentado aquí ilustra los principios y procedimientos necesarios para realizar esta tarea. Antes de terminar, me gustaría sugerirle que consulte el Capítulo 4 de la sección Seguridad y optimización de Linux en el sitio del Proyecto de documentación de Linux para obtener más detalles sobre los temas tratados aquí.

Libro electrónico gratuito sobre Seguridad y optimización de Linux: la solución de piratería (v.3.0): este libro electrónico 800+ contiene una colección completa de consejos de seguridad de Linux y cómo utilizarlos de forma segura y sencilla. para configurar aplicaciones y servicios basados en Linux.

Descargar ahora

En el próximo artículo hablaremos sobre filtrado de paquetes y traducción de direcciones de red para resumir las habilidades básicas de redes necesarias para la certificación RHCE.

Como siempre, esperamos tener noticias suyas, así que no dude en dejar sus preguntas, comentarios y sugerencias mediante el siguiente formulario.