Routing, subnetting y CIDR
Routing, subnetting y CIDR
[!tip] Routing en una frase Routing es el proceso de decidir hacia dónde enviar un packet de red. Cada router consulta su tabla de enrutamiento y elige la mejor ruta hacia el destino.
¿Qué es routing?
El enrutamiento es el proceso de seleccionar la ruta que siguen los packets a través de una red. Cuando un packet necesita ir de tu PC a un servidor en otro continente, pasa por múltiples routers, cada uno tomando una decisión sobre a dónde enviar el packet a continuación.
El packet IP y la tabla de enrutamiento
Cada router mantiene una tabla de enrutamiento que le dice hacia dónde enviar cada destino:
Tabla de enrutamiento típica:
┌──────────────────┬──────────────────┬──────────────┬──────────┐
│ Destination │ Next Hop │ Interface │ Metric │
├──────────────────┼──────────────────┼──────────────┼──────────┤
│ 192.168.1.0/24 │ Directo │ eth0 │ 0 │
│ 0.0.0.0/0 │ 10.0.0.1 │ eth1 │ 100 │ ← Default route
│ 10.0.0.0/8 │ 192.168.1.100 │ eth0 │ 20 │
│ 172.16.0.0/12 │ 10.0.0.5 │ eth1 │ 30 │
└──────────────────┴──────────────────┴──────────────┴──────────┘
Campos:
- Destination: La red de destino (en formato CIDR)
- Next Hop: El siguiente router hacia el destino (o "Directo" si está en la red local)
- Interface: La interfaz de red por donde enviar
- Metric: Costo de la ruta (menor = mejor)
Longest Prefix Match
Cuando un packet llega a un router, el router busca la ruta con la coincidencia más larga (más específica):
Packet con destino: 172.16.5.10
Tabla del router:
172.16.0.0/12 → Next Hop A
172.16.5.0/24 → Next Hop B
0.0.0.0/0 → Default
El router busca la coincidencia más larga:
172.16.5.0/24 → 24 bits coinciden → MÁS ESPECÍFICO → Usa Next Hop B
Subnetting
Subnetting es el proceso de dividir una red grande en subredes más pequeñas. Esto permite:
- Mejor organización (departamentos, edificios, funciones)
- Menor tráfico broadcast
- Mejor seguridad (segmentación)
- Uso más eficiente de IPs
Máscaras de red
Una máscara de subred indica qué parte de una IP es la red y qué parte es el host:
IP: 192.168.1.50
Máscara: 255.255.255.0
Binario: 11111111.11111111.11111111.00000000
│││││││││││││││││││││││││││││││││││││││││││││
│└───────────────│ └───────── Host (50)
│
└──────────────── Red (192.168.1)
La máscara 255.255.255.0 = /24 (24 bits para la red, 8 bits para hosts = 254 hosts utilizables).
Ejemplo de subnetting
Imagina que tienes la red 192.168.1.0/24 (254 hosts) y la necesitas dividir en 4 subredes:
Subred 1: 192.168.1.0/26 → 64 hosts → 192.168.1.1 - 192.168.1.62
Subred 2: 192.168.1.64/26 → 64 hosts → 192.168.1.65 - 192.168.1.126
Subred 3: 192.168.1.128/26→ 64 hosts → 192.168.1.129 - 192.168.1.190
Subred 4: 192.168.1.192/26→ 64 hosts → 192.168.1.193 - 192.168.1.254
Para dividir en 4 subredes, necesitamos 2 bits extra (2² = 4), así que pasamos de /24 a /26.
Cálculo de hosts utilizables
| Máscara | CIDR | Total IPs | Hosts utilizables | Broadcast |
|---|---|---|---|---|
| 255.255.255.252 | /30 | 4 | 2 | .3 |
| 255.255.255.248 | /29 | 8 | 6 | .7 |
| 255.255.255.240 | /28 | 16 | 14 | .15 |
| 255.255.255.224 | /27 | 32 | 30 | .31 |
| 255.255.255.192 | /26 | 64 | 62 | .63 |
| 255.255.255.128 | /25 | 128 | 126 | .127 |
| 255.255.255.0 | /24 | 256 | 254 | .255 |
| 255.255.0.0 | /16 | 65536 | 65534 | .255.255 |
[!tip] Fórmula rápida Hosts utilizables = 2^(32 - CIDR) - 2 Los -2 son para la dirección de red (primera) y la de broadcast (última).
Ejemplo: /24 → 2^(32-24) - 2 = 2^8 - 2 = 256 - 2 = 254 hosts
CIDR (Classless Inter-Domain Routing)
CIDR reemplazó el antiguo sistema de clases (A, B, C) que era rígido e ineficiente. Con CIDR, puedes crear subredes de cualquier tamaño.
Formato CIDR
192.168.1.0/24 → 256 IPs (192.168.1.0 a 192.168.1.255)
10.0.0.0/8 → 16,777,216 IPs
172.16.0.0/12 → 1,048,576 IPs
192.168.0.0/16 → 65,536 IPs
Comparación: Clases vs CIDR
| Clases (obsoleto) | CIDR (moderno) | |
|---|---|---|
| Clase A | 10.0.0.0/8 (16M IPs) | 10.0.0.0/24 (256 IPs) — flexible |
| Clase B | 172.16.0.0/16 (65K IPs) | 172.16.0.0/20 (4096 IPs) |
| Clase C | 192.168.0.0/24 (256 IPs) | 192.168.0.0/27 (32 IPs) |
Route Summarization (Sumarización)
Route summarization agrupa múltiples subredes en un solo route:
Tenemos estas subredes:
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.4.0/24
Podemos sumarizarlas en:
192.168.0.0/22
(cubre de 192.168.0.0 a 192.168.3.255 — 1024 IPs)
Esto reduce el tamaño de las tablas de enrutamiento y es fundamental para la escalabilidad de Internet (los routers de borde de Internet solo tienen ~1M de routes, no ~1 billones).
Route types
Static routes
Configuradas manualmente por un administrador:
# Linux
ip route add 10.0.0.0/8 via 192.168.1.1 dev eth0
# Cisco
ip route 10.0.0.0 255.0.0.0 192.168.1.1Ventaja: Simple, predecible, sin overhead de CPU. Desventaja: No se adapta a cambios de topología, requiere intervención manual.
Dynamic routes
Protocolos de enrutamiento que descubren rutas automáticamente:
| Protocolo | Tipo | Uso | Descripción |
|---|---|---|---|
| OSPF | Interior (IGP) | Redes internas | Basado en enlaces (link-state), converge rápido |
| BGP | Exterior (EGP) | Internet | Basado en políticas, escala a Internet global |
| EIGRP | Interior (IGP) | Cisco-only | Mejorado de RIP, converge rápido |
| RIP | Interior (IGP) | Redes pequeñas | Obsoleto, basado en hops |
OSPF (Open Shortest Path First)
OSPF es el protocolo de enrutamiento interior más usado:
Topología:
R1 —— R2 —— R3
│ │
R4 —— R5 —— R6
OSPF funciona así:
1. Cada router descubre sus vecinos por multicast
2. Cada router envía su LSAs (Link State Advertisements)
3. Todos los routers construyen la misma base de datos topológica (SPF tree)
4. Cada router calcula el camino más corto (Dijkstra)
5. Se actualizan las tablas de enrutamiento
BGP (Border Gateway Protocol)
BGP es el protocolo que hace funcionar Internet. Es el único protocolo de enrutamiento que se usa entre ISPs:
ISP A (AS 64500) —— Peer ——— ISP B (AS 64501)
│ │
Tu empresa Otro ISP
(AS 64500) (AS 64502)
BGP es un protocolo de "ruta-vector":
- Cada route tiene una lista de ASes por los que pasa
- Los routers eligen rutas basándose en políticas, no solo métricas
- BGP escala a ~1M+ routes en la tabla global de Internet
Route metrics
Los protocolos de enrutamiento dinámico usan diferentes métricas para elegir la mejor ruta:
| Protocolo | Métrica | Qué mide |
|---|---|---|
| RIP | Hop count | Número de routers que atraviesa |
| OSPF | Costo (basado en bandwidth) | Ancho de banda de la enlace |
| EIGRP | Composite metric | Bandwidth + delay + load + reliability |
| BGP | Múltiples atributos | AS path, local preference, MED, etc. |
IPv6 subnetting
El subnetting en IPv6 es más simple porque se usa solo /64 para la mayoría de redes:
Tu asignación: 2001:db8:abcd:0012::/48
Subredes disponibles (/64):
2001:db8:abcd:0001::/64 → Red 1 (64 hosts, en realidad 2^64)
2001:db8:abcd:0002::/64 → Red 2
2001:db8:abcd:0003::/64 → Red 3
2001:db8:abcd:0004::/64 → Red 4
...
2001:db8:abcd:ffff::/64 → Red 65536
En IPv6, cada subred /64 tiene 2⁶⁴ direcciones. No necesitas preocuparte por el "tamaño" de la subred — siempre es /64.
Resumen
- Routing es el proceso de decidir hacia dónde enviar cada packet
- La tabla de enrutamiento conecta destinos con next hops y interfaces
- Longest prefix match: el router elige la coincidencia más específica
- Subnetting divide una red grande en subredes más pequeñas
- CIDR (/24, /16, /8) es el formato moderno para especificar redes
- Route summarización agrupa múltiples subredes en un solo route
- OSPF para enrutamiento interior, BGP para enrutamiento entre ISPs
- IPv6 usa /64 como estándar para todas las subredes
[!quote] La clave Routing es la inteligencia de Internet. Cada router toma una decisión local (mi tabla de enrutamiento) que, colectivamente, crea la ruta global de un packet desde el origen hasta el destino.
Conexión con el resto de la wiki
| Concepto tocado | Artículo en profundidad |
|---|---|
| Modelo OSI | [[15-modelo-osi-tcpip]] (capa de red) |
| NAT | [[13-nat-red]] (cómo NAT interactúa con routing) |
| Firewalls | [[17-firewalls-proxies-loadbalancers]] (firewalls que filtran routes) |
| Puertos | [[12-puertos]] (dirección IP + puerto = destino completo) |