¿Cuál es la diferencia entre IPv4 e IPv6?
IPv4 e IPv6 son dos versiones del Protocolo de Internet utilizadas para identificar dispositivos en una red.
| Característica | IPv4 | IPv6 |
|---|---|---|
| Longitud de dirección | 32 bits | 128 bits |
| Formato de dirección | Decimal con puntos: 203.0.113.10
|
Hexadecimal con dos puntos: 2001:0db8:85a3::8a2e:0370:7334
|
| Total de direcciones | ~4.300 millones | ~340 sextillones (3,4 × 10³⁸) |
| Configuración | Manual o DHCP | SLAAC (automática), DHCPv6 o manual |
| NAT | Ampliamente usado (necesario por escasez de direcciones) | No es necesario (cada dispositivo obtiene una dirección pública) |
| Tamaño del encabezado | Variable (20–60 bytes) | Fijo (40 bytes, más simple) |
| IPSec | Opcional | Integrado (obligatorio en la especificación) |
| Broadcast | Sí | No (usa multicast en su lugar) |
Tipos de direcciones IPv6
| Tipo | Prefijo | Descripción |
|---|---|---|
| Global Unicast | 2000::/3 |
Direcciones públicas y enrutables (equivalente a IPv4 públicas) |
| Link-Local | fe80::/10 |
Autoasignadas, válidas solo dentro del segmento de red local |
| Unique Local (ULA) | fd00::/8 |
Direcciones privadas (equivalente a 10.x.x.x, 192.168.x.x en IPv4) |
| Loopback | ::1 |
Equivalente a 127.0.0.1
|
Verificar su configuración IP actual
Ver direcciones IPv4 e IPv6
ip addr show
Ver solo IPv4
ip -4 addr show
Ver solo IPv6
ip -6 addr show
Verificar rutas predeterminadas
ip -4 route show # Rutas IPv4
ip -6 route show # Rutas IPv6
Configuración dual-stack
Dual-stack significa ejecutar IPv4 e IPv6 simultáneamente en la misma interfaz. Este es el enfoque recomendado para la transición a IPv6 mientras se mantiene la compatibilidad con IPv4.
Netplan (Ubuntu 18.04+)
network:
version: 2
ethernets:
ens18:
addresses:
- 203.0.113.10/24
- 2001:db8::10/64
routes:
- to: default
via: 203.0.113.1
- to: default
via: 2001:db8::1
nameservers:
addresses:
- 8.8.8.8
- 2001:4860:4860::8888
Aplicar con:
sudo netplan apply
/etc/network/interfaces (Debian)
auto eth0
iface eth0 inet static
address 203.0.113.10
netmask 255.255.255.0
gateway 203.0.113.1
iface eth0 inet6 static
address 2001:db8::10
netmask 64
gateway 2001:db8::1
Aplicar con:
sudo systemctl restart networking
NetworkManager (AlmaLinux / RHEL)
sudo nmcli connection modify "System eth0" \
ipv4.addresses 203.0.113.10/24 \
ipv4.gateway 203.0.113.1 \
ipv4.method manual \
ipv6.addresses 2001:db8::10/64 \
ipv6.gateway 2001:db8::1 \
ipv6.method manual
sudo nmcli connection up "System eth0"
Probar conectividad IPv6
ping -6 ipv6.google.com
ping6 ipv6.google.com # sintaxis antigua
traceroute -6 ipv6.google.com
curl -6 https://ipv6.google.com
Deshabilitar IPv6 (si es necesario)
En algunos casos, puede necesitar deshabilitar IPv6 temporalmente:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Para hacerlo persistente, agregue a /etc/sysctl.conf:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Luego aplique: sudo sysctl -p
Consideraciones de firewall
Si usa UFW, este maneja IPv4 e IPv6 automáticamente (si IPv6 está habilitado en /etc/default/ufw). Sus reglas se aplican a ambos protocolos:
sudo ufw allow ssh # Permite SSH tanto en IPv4 como IPv6
Si usa iptables directamente, tenga en cuenta que las reglas IPv6 requieren ip6tables:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # IPv4
sudo ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT # IPv6