¿Cómo configurar redes IPv4 e IPv6 y resolución de nombres de host?

Aprender Certificado Fundación Linux en España contenido Técnicos desde Cero en CiberED

La configuración de red es una de las tareas más fundamentales y frecuentes en la administración de sistemas.

## 32.1. Introducción

Un equipo Linux puede obtener su configuración de red de forma dinámica (DHCP, SLAAC) o de forma estática, y debe ser capaz de resolver nombres de host a direcciones IP (DNS) y viceversa.

En este capítulo aprenderás a:

– Configurar interfaces de red IPv4 e IPv6.
– Utilizar herramientas modernas (`ip`, `nmcli`, `netplan`) y tradicionales (`ifconfig`, `route`).
– Establecer nombres de host y gestionar la resolución.
– Hacer persistentes los cambios.
– Diagnosticar y resolver problemas de conectividad y resolución.

## 32.2. Conceptos básicos

– **IPv4**: direcciones de 32 bits, escritas en formato decimal punteado (ej. `192.168.1.10`). Sufijo de red en notación CIDR (ej. `/24`) o máscara de red (ej. `255.255.255.0`).
– **IPv6**: direcciones de 128 bits, en hexadecimal con dos puntos (ej. `2001:db8::1`). Prefijo de red (ej. `/64`). Tipos: unicast global, link-local (`fe80::/10`), loopback (`::1`).
– **Puerta de enlace (gateway)**: router que da salida a otras redes.
– **DNS**: sistema que traduce nombres a IPs.
– **DHCP**: protocolo para asignación automática de IPv4 (y opcionalmente IPv6 con DHCPv6).
– **SLAAC**: autoconfiguración de IPv6 sin estado, usa anuncios de router.

## 32.3. Herramientas de configuración

En Linux moderno, la gestión de red se realiza principalmente con:

– **`ip`**: comando del paquete `iproute2`, reemplaza a `ifconfig`, `route`, etc. Permite configurar direcciones, rutas, enlaces, túneles.
– **`nmcli`**: interfaz de línea de comandos de NetworkManager, muy usada en escritorios y servidores con NetworkManager.
– **`nmtui`**: interfaz de texto interactiva de NetworkManager.
– **Archivos de configuración de distribución**: Debian/Ubuntu usan `/etc/network/interfaces` (ifupdown) o Netplan; RHEL/CentOS usan scripts en `/etc/sysconfig/network-scripts/ifcfg-*` o NetworkManager.

En el examen LFCS, se espera que domines al menos `ip` y probablemente `nmcli` o los archivos de configuración según la distribución.

## 32.4. Configuración de IPv4

### 32.4.1. Configuración temporal con `ip`

1. Ver interfaces: `ip addr show` o `ip a`.

2. Asignar una dirección estática:

“`bash
sudo ip addr add 192.168.1.10/24 dev eth0
“`

3. Eliminar una dirección:

“`bash
sudo ip addr del 192.168.1.10/24 dev eth0
“`

4. Activar/desactivar interfaz:

“`bash
sudo ip link set eth0 up
sudo ip link set eth0 down
“`

5. Añadir una ruta por defecto:

“`bash
sudo ip route add default via 192.168.1.1
“`

6. Ver tabla de rutas: `ip route`.

Estos cambios son temporales (se pierden al reiniciar la red o el sistema).

### 32.4.2. Configuración persistente según distribución

**Debian/Ubuntu con ifupdown** (si se usa):

Editar `/etc/network/interfaces`:

“`
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
“`

Para DHCP:

“`
auto eth0
iface eth0 inet dhcp
“`

Luego reiniciar la interfaz: `sudo ifdown eth0 && sudo ifup eth0` o `sudo systemctl restart networking`.

**Debian/Ubuntu con Netplan** (por defecto en Ubuntu 18.04+). Los archivos están en `/etc/netplan/` con extensión `.yaml`. Ejemplo `01-netcfg.yaml`:

“`yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
“`

Para DHCP: `dhcp4: yes`. Aplicar con `sudo netplan apply`.

**RHEL/CentOS con scripts de red**. Editar `/etc/sysconfig/network-scripts/ifcfg-eth0`:

“`
DEVICE=eth0
BOOTPROTO=static # o dhcp
ONBOOT=yes
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
“`

Reiniciar: `sudo systemctl restart network` (o `NetworkManager`).

**Usando `nmcli`** (NetworkManager):

– Ver conexiones: `nmcli connection show`
– Crear/modificar una conexión estática:

“`bash
sudo nmcli connection add type ethernet con-name “mi-red” ifname eth0
sudo nmcli connection modify “mi-red” ipv4.addresses 192.168.1.10/24
sudo nmcli connection modify “mi-red” ipv4.gateway 192.168.1.1
sudo nmcli connection modify “mi-red” ipv4.dns “8.8.8.8 8.8.4.4”
sudo nmcli connection modify “mi-red” ipv4.method manual
sudo nmcli connection up “mi-red”
“`

Para DHCP: `ipv4.method auto`.

## 32.5. Configuración de IPv6

### 32.5.1. Configuración temporal con `ip`

Añadir una dirección IPv6 estática:

“`bash
sudo ip -6 addr add 2001:db8::10/64 dev eth0
“`

Añadir ruta por defecto:

“`bash
sudo ip -6 route add default via 2001:db8::1
“`

Ver IPv6: `ip -6 addr`, `ip -6 route`

### 32.5.2. Persistencia

En Debian/Ubuntu (interfaces):

“`
iface eth0 inet6 static
address 2001:db8::10
netmask 64
gateway 2001:db8::1
“`

En Netplan:

“`yaml
eth0:
dhcp6: no
addresses:
– 2001:db8::10/64
gateway6: 2001:db8::1
“`

En RHEL/CentOS (ifcfg):

“`
IPV6INIT=yes
IPV6ADDR=2001:db8::10/64
IPV6_DEFAULTGW=2001:db8::1
“`

Con `nmcli`:

“`bash
sudo nmcli connection modify “mi-red” ipv6.addresses “2001:db8::10/64”
sudo nmcli connection modify “mi-red” ipv6.gateway “2001:db8::1”
sudo nmcli connection modify “mi-red” ipv6.method manual
“`

Para autoconfiguración SLAAC: `ipv6.method auto`.

## 32.6. Gestión del nombre de host

El nombre de host identifica al sistema en la red. Se puede ver y cambiar con:

– `hostname` (temporal): `sudo hostname nuevo-nombre`
– `hostnamectl` (persistente y completo): `sudo hostnamectl set-hostname servidor.ejemplo.com`

El archivo `/etc/hostname` suele contener el nombre (sin dominio) en Debian/Ubuntu, mientras que RHEL usa `/etc/hostname` también.

Además, `/etc/hosts` asocia nombres a IPs localmente:

“`
127.0.0.1 localhost
192.168.1.10 servidor.ejemplo.com servidor
“`

Este archivo es útil para resolver nombres internos sin DNS.

## 32.7. Resolución de nombres

La resolución de nombres sigue un orden definido en `/etc/nsswitch.conf` (línea `hosts:`). Normalmente:

“`
hosts: files dns
“`

Esto indica que primero consulta `/etc/hosts` y luego DNS.

El archivo `/etc/resolv.conf` lista los servidores DNS:

“`
nameserver 8.8.8.8
nameserver 8.8.4.4
search ejemplo.com
“`

En sistemas con NetworkManager o systemd-resolved, `/etc/resolv.conf` puede ser un enlace simbólico gestionado automáticamente. Para configurar manualmente, se puede editar `/etc/resolv.conf` pero se sobrescribirá. En esos casos, usar `nmcli` para definir DNS en la conexión o configurar `systemd-resolved`.

**systemd-resolved**:

– Ver estado: `systemd-resolve –status`
– Configurar DNS: editar `/etc/systemd/resolved.conf` (opciones `DNS=`, `Domains=`) o usar `resolvectl`.

**Herramientas de consulta**:

– `nslookup dominio`
– `dig dominio`
– `host dominio`
– `getent hosts nombre` (consulta usando nsswitch)

## 32.8. Solución de problemas

| Problema | Posible causa | Solución |
|———-|—————|———-|
| Sin conectividad local | Interfaz caída, IP incorrecta | `ip link`, `ip addr`, comprobar cable/VM |
| Sin salida a Internet | Gateway no configurado | `ip route`, añadir default via |
| No resuelve nombres | DNS incorrecto, `/etc/resolv.conf` mal | Verificar archivo, probar `dig @8.8.8.8` |
| IPv6 no funciona | IPv6 deshabilitado, ruta incorrecta | `sysctl net.ipv6.conf.all.disable_ipv6`, revisar `ip -6 route` |
| Cambios no persisten | Configuración temporal | Usar herramientas persistentes (nmcli, netplan, ifcfg) |
| Nombre de host no se ve | `/etc/hosts` desactualizado, DNS no registra | Añadir entrada local o configurar DNS dinámico |

## 32.9. Ejercicios prácticos

1. **Configuración temporal IPv4**: Usa `ip` para asignar una IP estática a una interfaz de prueba (puede ser una dummy: `ip link add dummy0 type dummy`). Configura la IP, levanta la interfaz y haz ping a la puerta de enlace.

2. **Configuración persistente con nmcli**: Crea una conexión con IP estática, gateway y DNS. Actívala y verifica con `ip addr` y `nmcli connection show`.

3. **IPv6**: Activa IPv6 en una interfaz y asigna una dirección link-local (se autogenera) y una global. Prueba ping a `::1` y a otra máquina con IPv6.

4. **Nombre de host**: Cambia el nombre del sistema con `hostnamectl`. Verifica con `hostnamectl status`. Edita `/etc/hosts` para que el nuevo nombre resuelva a 127.0.0.1.

5. **Resolución**: Configura un servidor DNS en `/etc/resolv.conf` (si es temporal) o usando nmcli. Prueba `nslookup`, `dig`, `getent hosts`.

6. **Diagnóstico**: Simula un fallo quitando la ruta por defecto. Intenta navegar. Luego restaura la ruta.

## 32.10. Resumen y consejos para LFCS

– `ip` es esencial para configuración temporal; `nmcli` para persistente en sistemas con NetworkManager.
– Conoce los archivos de configuración de tu distribución (Netplan, ifupdown, ifcfg).
– IPv6 se configura de forma similar pero con `-6` y atención a SLAAC/DHCPv6.
– La resolución de nombres se basa en `/etc/nsswitch.conf`, `/etc/hosts` y `/etc/resolv.conf`.
– `hostnamectl` es la forma moderna de gestionar el nombre de host.
– En el examen, es probable que se pida configurar una IP estática, modificar DNS o ajustar el nombre de host. Practica los pasos en un entorno de laboratorio.

Con este capítulo has completado el dominio de la configuración de red. En el siguiente y último capítulo, **Configurar Bonding y Bridge**, aprenderás a combinar interfaces para redundancia y crear puentes para virtualización.

Vistas: 0

Descubre más desde CIBERED

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Scroll al inicio