Sèrie RHCE: Com configurar i provar l'encaminament de xarxa estàtica - Part 1


RHCE (Red Hat Certified Engineer) és una certificació de l'empresa Red Hat, que ofereix un sistema operatiu i programari de codi obert a la comunitat empresarial, també ofereix formació, suport i serveis de consultoria per a les empreses.

Aquest RHCE (Red Hat Certified Engineer) és un examen basat en el rendiment (nom en clau EX300), que posseeix les habilitats, coneixements i habilitats addicionals que requereix un administrador de sistemes sènior responsable dels sistemes Red Hat Enterprise Linux (RHEL).

Important: la certificació de Red Hat Certified System Administrator (RHCSA) és necessària per obtenir la certificació RHCE.

A continuació es mostren els objectius de l'examen basats en la versió Red Hat Enterprise Linux 7 de l'examen, que es tractarà en aquesta sèrie RHCE:

Per veure les tarifes i registrar-se per a un examen al vostre país, consulteu la pàgina de certificació RHCE.

En aquesta part 1 de la sèrie RHCE i la següent, presentarem casos bàsics, però típics, en què entren en joc els principis d'encaminament estàtic, filtrat de paquets i traducció d'adreces de xarxa.

Tingueu en compte que no els aprofundirem, sinó que organitzem aquests continguts de manera que siguin útils per fer els primers passos i construir a partir d'aquí.

Enrutament estàtic a Red Hat Enterprise Linux 7

Una de les meravelles de les xarxes modernes és la gran disponibilitat de dispositius que poden connectar grups d'ordinadors, ja sigui en nombre relativament reduït i confinats a una sola habitació o diverses màquines al mateix edifici, ciutat, país o entre continents.

Tanmateix, per tal d'aconseguir-ho eficaçment en qualsevol situació, els paquets de xarxa s'han d'encaminar, o és a dir, el camí que segueixen des de l'origen fins a la destinació s'ha de regir d'alguna manera.

L'encaminament estàtic és el procés d'especificar una ruta per a paquets de xarxa diferent de la predeterminada, que és proporcionada per un dispositiu de xarxa conegut com a passarel·la predeterminada. A menys que s'especifiqui el contrari mitjançant l'encaminament estàtic, els paquets de xarxa es dirigeixen a la passarel·la predeterminada; amb l'encaminament estàtic, altres camins es defineixen en funció de criteris predefinits, com ara la destinació del paquet.

Definim el següent escenari per a aquest tutorial. Tenim una caixa Red Hat Enterprise Linux 7 que es connecta a l'encaminador #1 [192.168.0.1] per accedir a Internet i a les màquines a 192.168.0.0/24.

Un segon encaminador (encaminador #2) té dues targetes d'interfície de xarxa: enp0s3 també està connectat a l'encaminador #1 per accedir a Internet i per comunicar-se amb la caixa RHEL 7 i altres màquines de la mateixa xarxa, mentre que l'altra (enp0s8) s'utilitza. per concedir accés a la xarxa 10.0.0.0/24 on resideixen els serveis interns, com ara un servidor web i/o base de dades.

Aquest escenari s'il·lustra al diagrama següent:

En aquest article ens centrarem exclusivament a configurar la taula d'encaminament a la nostra caixa RHEL 7 per assegurar-nos que tant pot accedir a Internet a través de l'encaminador #1 com a la xarxa interna mitjançant l'encaminador #2.

A RHEL 7, utilitzareu l'ordre ip per configurar i mostrar els dispositius i l'encaminament mitjançant la línia d'ordres. Aquests canvis poden tenir efecte immediatament en un sistema en execució, però com que no són persistents durant els reinicis, utilitzarem els fitxers ifcfg-enp0sX i route-enp0sX dins de /etc/sysconfig/network-scripts per desar la nostra configuració permanentment.

Per començar, imprimim la nostra taula d'encaminament actual:

# ip route show

A partir de la sortida anterior, podem veure els fets següents:

  1. L'adreça IP de la passarel·la predeterminada és 192.168.0.1 i es pot accedir mitjançant la NIC enp0s3.
  2. Quan el sistema va arrencar, va habilitar la ruta zeroconf a 169.254.0.0/16 (per si de cas). En poques paraules, si una màquina està configurada per obtenir una adreça IP mitjançant DHCP però no ho fa per algun motiu, se li assigna automàticament una adreça en aquesta xarxa. En resum, aquesta ruta ens permetrà comunicar-nos, també mitjançant enp0s3, amb altres màquines que no han pogut obtenir una adreça IP d'un servidor DHCP.
  3. Per últim, però no menys important, ens podem comunicar amb altres caixes dins de la xarxa 192.168.0.0/24 mitjançant enp0s3, l'adreça IP de la qual és 192.168.0.18.

Aquestes són les tasques típiques que hauríeu de realitzar en aquest entorn. Llevat que s'especifiqui el contrari, les tasques següents s'han de realitzar a l'encaminador #2:

Assegureu-vos que totes les NIC s'han instal·lat correctament:

# ip link show

Si un d'ells està caigut, feu-lo amunt:

# ip link set dev enp0s8 up

i assigneu-li una adreça IP a la xarxa 10.0.0.0/24:

# ip addr add 10.0.0.17 dev enp0s8

Vaja! Hem comès un error en l'adreça IP. Haurem de treure el que hem assignat anteriorment i després afegir el correcte (10.0.0.18):

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

Ara, tingueu en compte que només podeu afegir una ruta a una xarxa de destinació mitjançant una passarel·la que ja és accessible. Per aquest motiu, hem d'assignar una adreça IP dins de l'interval 192.168.0.0/24 a enp0s3 perquè la nostra caixa RHEL 7 es pugui comunicar amb ella:

# ip addr add 192.168.0.19 dev enp0s3

Finalment, haurem d'habilitar el reenviament de paquets:

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

i aturar/desactivar (només de moment, fins que cobrim el filtrat de paquets al següent article) el tallafoc:

# systemctl stop firewalld
# systemctl disable firewalld

De nou al nostre quadre RHEL 7 (192.168.0.18), configurem una ruta a 10.0.0.0/24 a 192.168.0.19 (enp0s3 al router #2):

# ip route add 10.0.0.0/24 via 192.168.0.19

Després d'això, la taula d'encaminament té el següent aspecte:

# ip route show

De la mateixa manera, afegiu la ruta corresponent a les màquines a les quals intenteu arribar a 10.0.0.0/24:

# ip route add 192.168.0.0/24 via 10.0.0.18

Podeu provar la connectivitat bàsica mitjançant ping:

Al quadre RHEL 7, executeu

# ping -c 4 10.0.0.20

on 10.0.0.20 és l'adreça IP d'un servidor web a la xarxa 10.0.0.0/24.

Al servidor web (10.0.0.20), executeu

# ping -c 192.168.0.18

on 192.168.0.18 és, com recordareu, l'adreça IP de la nostra màquina RHEL 7.

Alternativament, podem utilitzar tcpdump (pot ser que hàgiu d'instal·lar-lo amb yum install tcpdump) per comprovar la comunicació bidireccional per TCP entre la nostra caixa RHEL 7 i el servidor web a 10.0.0.20.

Per fer-ho, comencem l'inici de sessió a la primera màquina amb:

# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

i des d'un altre terminal del mateix sistema fem telnet al port 80 del servidor web (suposant que Apache està escoltant en aquest port; en cas contrari, indiqueu el port correcte a l'ordre següent):

# telnet 10.0.0.20 80

El registre tcpdump hauria de tenir el següent aspecte:

On s'ha inicialitzat correctament la connexió, com podem comprovar si observem la comunicació bidireccional entre la nostra caixa RHEL 7 (192.168.0.18) i el servidor web (10.0.0.20).

Recordeu que aquests canvis desapareixeran quan reinicieu el sistema. Si voleu fer-los persistents, haureu d'editar (o crear, si encara no existeixen) els fitxers següents, en els mateixos sistemes on hem realitzat les ordres anteriors.

Tot i que no és estrictament necessari per al nostre cas de prova, hauríeu de saber que /etc/sysconfig/network conté paràmetres de xarxa per a tot el sistema. Un /etc/sysconfig/network típic té el següent aspecte:

# 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

Quan es tracta d'establir variables i valors específics per a cada NIC (com vam fer per a l'encaminador #2), haureu d'editar /etc/sysconfig/network-scripts/ifcfg-enp0s3 i /etc/sysconfig/network-scripts/ifcfg -enp0s8.

Seguint el nostre cas,

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

i

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

per a enp0s3 i enp0s8, respectivament.

Pel que fa a l'encaminament a la nostra màquina client (192.168.0.18), haurem d'editar /etc/sysconfig/network-scripts/route-enp0s3:

10.0.0.0/24 via 192.168.0.19 dev enp0s3

Ara reinicieu el vostre sistema i hauríeu de veure aquesta ruta a la vostra taula.

Resum

En aquest article hem tractat els aspectes bàsics de l'encaminament estàtic a Red Hat Enterprise Linux 7. Tot i que els escenaris poden variar, el cas que es presenta aquí il·lustra els principis necessaris i els procediments per dur a terme aquesta tasca. Abans d'acabar, m'agradaria suggerir-vos que feu una ullada al capítol 4 de la secció Seguretat i optimització de Linux al lloc del projecte de documentació de Linux per obtenir més detalls sobre els temes tractats aquí.

Llibre electrònic gratuït sobre la seguretat i l'optimització de Linux: la solució de pirateria (v.3.0): aquest llibre electrònic de més de 800 conté una col·lecció completa de consells de seguretat de Linux i com utilitzar-los de manera segura i senzilla per configurar aplicacions i serveis basats en Linux.

En el següent article parlarem sobre el filtratge de paquets i la traducció d'adreces de xarxa per resumir les habilitats bàsiques de xarxa necessàries per a la certificació RHCE.

Com sempre, esperem rebre notícies vostres, així que no dubteu a deixar les vostres preguntes, comentaris i suggeriments mitjançant el formulari següent.