Saltar al contenido
sudoquest@root
Modelo OSI

Capa 3 · Red

Direcciones IPv4, máscaras y subredes a mano, puerta de enlace, ARP, routers y rutas, ping y tracert, DHCP, y cómo se diagnostica la red.

20 min de lectura

La capa 2 entrega tramas dentro de una red local. La capa 3 las saca de ahí: lleva paquetes de una red a otra, cruzando tantas como haga falta, hasta el otro lado del mundo. Para eso cada equipo necesita una dirección que diga en qué red está, no solo quién es: la dirección IP. Y en cada frontera entre redes hay un router que decide por dónde sigue cada paquete.

Aquí las averías son de números. El cable está bien, el switch está bien, y aun así un puesto no sale de su red, o llega a unos sitios y a otros no. Casi siempre es una dirección, una máscara, una puerta de enlace o una ruta. Para encontrarlas hay que leer las direcciones y hacer las cuentas.

Las siete capas del modelo OSI, con la capa 3 resaltada7Aplicacióndatos6Presentacióndatos5Sesióndatos4Transportesegmentos3Redpaquetes2Enlace de datostramas1Físicabits
La capa de red, encima de la de enlace: trabaja con paquetes y direcciones IP, de una red a otra.

Direcciones IPv4

Una dirección IPv4 tiene 32 bits, que se escriben como cuatro números del 0 al 255 separados por puntos (cada número es un octeto, 8 bits): 10.20.1.70. Una parte de la dirección dice la red y el resto, el equipo dentro de esa red. Dónde está el corte lo dice la máscara.

No todas las direcciones sirven para lo mismo:

  • Privadas: 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16. Son las de las redes internas (empresas, casas). No se usan en internet: para salir, el router de borde las traduce a una pública (NAT).
  • 127.0.0.1: el propio equipo (loopback). Un ping ahí solo dice que la tarjeta y el sistema funcionan.
  • 169.254.x.x: la que se pone sola un equipo que pidió dirección y nadie le contestó (APIPA). Verla es una pista clarísima: al equipo no le llega el DHCP.

La máscara: dónde acaba la red

La máscara es otro número de 32 bits: unos donde está la red y ceros donde está el equipo. Se puede escribir entera (255.255.255.192) o contando los unos, en notación CIDR (/26). Son lo mismo.

La dirección 10.20.1.70 con máscara /26, en binario: 00001010, 00010100, 00000001 y 01000110. Los 26 primeros bits (los tres primeros octetos y los dos primeros bits del cuarto) son la red; los 6 últimos, el equipo. La red es la 10.20.1.64, la difusión la 10.20.1.127, y los equipos van de la .65 a la .126. 100000101020000101001000000017001000110red: 26 bits (/26)equipo: 6máscara 255.255.255.192red 10.20.1.64 (equipo a 0)difusión 10.20.1.127 (equipo a 1)equipos: de la .65 a la .126 (2⁶ − 2 = 62)
10.20.1.70/26: los 26 primeros bits son la red y los 6 últimos, el equipo. Con una máscara que no acaba en un octeto entero, hay que mirar el binario.

De cada red salen dos direcciones que no son de nadie:

  • La dirección de red: la parte del equipo toda a ceros. Es el nombre de la red.
  • La dirección de difusión: la parte del equipo toda a unos. Un paquete a ella es para todos los de la red.

Por eso, con n bits de equipo, caben 2ⁿ − 2 equipos. Las máscaras que más se ven:

CIDR Máscara Direcciones Equipos
/24 255.255.255.0 256 254
/25 255.255.255.128 128 126
/26 255.255.255.192 64 62
/27 255.255.255.224 32 30
/28 255.255.255.240 16 14
/29 255.255.255.248 8 6
/30 255.255.255.252 4 2

Un /24 es la red típica de una oficina pequeña o de una casa; un /26, la de un departamento; un /30, la del enlace entre dos routers, que solo necesita dos direcciones.

Subredes, paso a paso

Hacer subredes es partir una red en trozos más pequeños, uno por departamento o por sitio. En la sede, la red 10.20.1.0/24 se parte en cuatro /26, una por VLAN:

La red 10.20.1.0/24 partida en cuatro subredes /26 de 64 direcciones: de la .0 a la .63 para la VLAN 10 (Administración, puerta de enlace .1), de la .64 a la .127 para la 20 (Ventas, puerta .65), de la .128 a la .191 para la 30 (Contabilidad, puerta .129) y de la .192 a la .255 para la 99 (Servidores, puerta .193). En cada una, la primera dirección es la de red y la última, la de difusión. 10.20.1.0/24 → cuatro /26 (bloques de 64).0 – .63VLAN 10 · Administraciónred .0 · puerta .1 · difusión .63.64 – .127VLAN 20 · Ventasred .64 · puerta .65 · difusión .127.128 – .191VLAN 30 · Contabilidadred .128 · puerta .129 · difusión .191.192 – .255VLAN 99 · Servidoresred .192 · puerta .193 · difusión .255
Un /24 en cuatro /26: bloques de 64. Cada uno tiene su red, su puerta de enlace (la primera útil, por costumbre) y su difusión.

No hace falta pasar todo a binario. Con la máscara acabando en el cuarto octeto, basta con el tamaño de bloque:

  1. Tamaño de bloque = 256 − el último octeto de la máscara que no es 0. Con /26 (.192): 256 − 192 = 64. Las redes empiezan en los múltiplos de 64: .0, .64, .128, .192.
  2. ¿En qué bloque cae la dirección? El múltiplo de 64 que queda justo por debajo: para .70, el 64. Esa es la dirección de red: 10.20.1.64.
  3. La difusión es la última del bloque: 64 + 64 − 1 = 127.
  4. Los equipos, lo de en medio: de la .65 a la .126.

Otro ejemplo, 10.20.1.200/27: bloque 256 − 224 = 32; los múltiplos de 32 son .0, .32, .64… .192, .224; el 200 cae en el de .192. Red 10.20.1.192, difusión .223, equipos de .193 a .222.

Las subredes se aprenden haciendo cuentas: en el Taller de subredes hay una calculadora que enseña los 32 bits de cualquier dirección y cinco niveles de práctica (del binario de un octeto al VLSM), con ejercicios nuevos en cada ronda.

La puerta de enlace

Antes de mandar un paquete, cada equipo se hace una pregunta: ¿el destino es de mi red? Lo calcula con su propia máscara.

  • Sí: se lo manda directamente, por el switch.
  • No: se lo manda a su puerta de enlace (default gateway), que es el router de su red, y que ya sabrá qué hacer con él.
Misma red: el equipo 10.20.1.70/26 quiere hablar con el 10.20.1.80. Los dos caen en el bloque de la .64 a la .127, así que se lo manda directamente, a través del switch; ARP pregunta por la MAC del 10.20.1.80. Misma red: directoswitch.70.80para la .80.70 y .80: los dos en .64–.127ARP: ¿quién tiene la .80? Otra red: el equipo 10.20.1.70/26 quiere hablar con el 10.20.1.130, que cae en otro bloque (de la .128 a la .191). Se lo manda a su puerta de enlace, el router (10.20.1.65), que lo pasa a la otra red; ARP pregunta por la MAC del router, no por la del destino. Otra red: a la puertarouter.65.129para la .65.70.130.130 cae fuera de .64–.127ARP: ¿quién tiene la .65?
La misma pregunta, dos respuestas. Si el destino es de mi red, directo; si no, al router. Y ARP busca la MAC de quien toca en cada caso.

La puerta de enlace tiene que ser una dirección de su misma red (si no, no puede llegar a ella) y tiene que ser la del router. En Windows se ve con ipconfig:

La configuración IP de un puesto de Ventas
C:\Users\ventas2> ipconfig
Configuración IP de Windows

Adaptador de Ethernet Ethernet:

 Sufijo DNS específico para la conexión. . :
 Vínculo: dirección IPv6 local. . . : fe80::4a1c:9e2b:77d0:3a15%12
 Dirección IPv4. . . . . . . . . . . . . . : 10.20.1.70
 Máscara de subred . . . . . . . . . . . . : 255.255.255.192
 Puerta de enlace predeterminada . . . . . : 10.20.1.65

Todo cuadra: .70 con /26 está en .64–.127, y la puerta .65 es de ese bloque. Si la puerta fuera, por ejemplo, .1 (la de Administración), el equipo hablaría con los de su red y con nadie más.

ARP: de la IP a la MAC

El paquete lleva direcciones IP, pero por el cable viajan tramas, y las tramas necesitan una MAC de destino (capa 2). ARP es el puente: el equipo pregunta a toda la red, por difusión, “¿quién tiene la 10.20.1.65?”, y el dueño contesta con su MAC. La respuesta se guarda un rato en la tabla ARP.

Fíjate en qué pregunta: si el destino es de su red, la MAC del destino; si no, la MAC de la puerta de enlace. Un paquete a internet sale de tu equipo en una trama dirigida a la MAC del router, aunque la IP de destino sea la de un servidor de otro continente.

La tabla ARP: las MAC que este equipo ya conoce
C:\Users\ventas2> arp -a
Interfaz: 10.20.1.70 --- 0xc
Dirección de Internet          Dirección física      Tipo
10.20.1.65            00-1e-7a-3b-10-02     dinámico
10.20.1.80            3c-52-82-1a-9f-04     dinámico
10.20.1.127           ff-ff-ff-ff-ff-ff     estático

El router y su tabla de rutas

Un router tiene una interfaz (con su IP) en cada red que une. Cuando le llega un paquete, mira la IP de destino en su tabla de rutas y lo manda por donde diga. En la tabla hay tres tipos de rutas:

  • Conectadas (C): las redes de sus propias interfaces. Las conoce solas.
  • Estáticas (S): las que alguien escribe a mano: “para llegar a tal red, pásalo a tal router”.
  • La ruta por defecto (0.0.0.0/0): para todo lo demás. Suele apuntar hacia internet.

(Las redes grandes usan además protocolos de enrutamiento, como OSPF o BGP, para que los routers se cuenten las rutas entre ellos; en redes pequeñas bastan las estáticas.)

La red de la empresa. En la sede, el router R-SEDE llega por un trunk al switch principal, con una subred /26 por VLAN: 10.20.1.0 (VLAN 10), 10.20.1.64 (VLAN 20), 10.20.1.128 (VLAN 30) y 10.20.1.192 (VLAN 99, servidores). Hacia arriba, por el enlace 10.20.254.0/30, el router de borde y detrás internet. A la derecha, por el enlace 10.20.255.0/30, el router de la sucursal, con su red 10.20.2.0/24. internetR-BORDE10.20.254.0/30R-SEDEtrunkSede · SW-COREVLAN 10 · 10.20.1.0/26VLAN 20 · 10.20.1.64/26VLAN 30 · 10.20.1.128/26VLAN 99 · 10.20.1.192/26enlace10.20.255.0/30R-SUCURSALSucursal10.20.2.0/24
La red de la empresa: la sede con sus cuatro subredes, la sucursal detrás de un enlace /30 y la salida a internet por el router de borde.
La tabla de rutas del router de la sede
R-SEDE# show ip route
Codes: L - local, C - connected, S - static, R - RIP, O - OSPF, B - BGP
     * - candidate default

Gateway of last resort is 10.20.254.2 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 10.20.254.2
    10.0.0.0/8 is variably subnetted, 14 subnets, 5 masks
S        10.20.0.0/16 is directly connected, Null0
C        10.20.1.0/26 is directly connected, GigabitEthernet0/0.10
L        10.20.1.1/32 is directly connected, GigabitEthernet0/0.10
C        10.20.1.64/26 is directly connected, GigabitEthernet0/0.20
L        10.20.1.65/32 is directly connected, GigabitEthernet0/0.20
C        10.20.1.128/26 is directly connected, GigabitEthernet0/0.30
L        10.20.1.129/32 is directly connected, GigabitEthernet0/0.30
C        10.20.1.192/26 is directly connected, GigabitEthernet0/0.99
L        10.20.1.193/32 is directly connected, GigabitEthernet0/0.99
S        10.20.2.0/24 [1/0] via 10.20.255.2
C        10.20.254.0/30 is directly connected, GigabitEthernet0/2
L        10.20.254.1/32 is directly connected, GigabitEthernet0/2
C        10.20.255.0/30 is directly connected, GigabitEthernet0/1
L        10.20.255.1/32 is directly connected, GigabitEthernet0/1

Si falta la ruta por defecto, la primera línea cambia: Gateway of last resort is not set, y todo lo que no sea de una red de la tabla se tira.

Cuando varias rutas encajan con un destino, gana la más específica (la de máscara más larga). Un paquete a 10.20.2.30 encaja con 0.0.0.0/0 y con 10.20.2.0/24: gana la /24 y va a la sucursal. Uno a 8.8.8.8 solo encaja con la por defecto: va a internet. Así se escribe una ruta estática:

Para llegar a la red de la sucursal, pásalo al router de la sucursal
R-SEDE(config)# ip route 10.20.2.0 255.255.255.0 10.20.255.2

En la tabla de antes hay una ruta que no lleva a ningún sitio: 10.20.0.0/16 hacia Null0, la ruta de descarte. Cubre todo el bloque de la empresa. Si un día falta una ruta concreta (la de la sucursal, por ejemplo), un paquete para 10.20.2.30 ya no se va por la ruta por defecto hacia internet: el proveedor lo devolvería, porque sabe que ese bloque es nuestro, y el paquete daría vueltas entre los dos routers hasta agotar el TTL. Con la ruta de descarte, el router lo tira en el acto y avisa de que no se puede llegar.

Enrutamiento entre VLAN

En la capa 2 cada departamento quedó en su VLAN, y cada VLAN es su propia red. Para que Ventas hable con Contabilidad hace falta un router. En vez de un cable por VLAN, lo normal es un solo cable en trunk hasta el router, que lo parte en subinterfaces, una por VLAN, cada una con la puerta de enlace de su red. Es el router-on-a-stick.

La subinterfaz de Ventas: su VLAN y su puerta de enlace
R-SEDE(config)# interface GigabitEthernet0/0.20
R-SEDE(config-subif)# encapsulation dot1Q 20
R-SEDE(config-subif)# ip address 10.20.1.65 255.255.255.192

encapsulation dot1Q 20 dice qué etiqueta 802.1Q le corresponde: las tramas de la VLAN 20 que llegan por el trunk entran por esta subinterfaz. Si el número está mal, esa subinterfaz escucha otra VLAN (o ninguna) y el departamento entero se queda sin salir de su red, aunque su puerta de enlace esté bien escrita. Un resumen rápido de las interfaces:

Las interfaces del router, sus IP y si están levantadas
R-SEDE# show ip interface brief
Interface              IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0     unassigned      YES unset  up                    up
Gi0/0.10               10.20.1.1       YES manual up                    up
Gi0/0.20               10.20.1.65      YES manual up                    up
Gi0/0.30               10.20.1.129     YES manual up                    up
Gi0/0.99               10.20.1.193     YES manual up                    up
GigabitEthernet0/1     10.20.255.1     YES manual up                    up
GigabitEthernet0/2     10.20.254.1     YES manual up                    up

La VLAN de cada subinterfaz no sale en ese resumen: se ve en show running-config. (Los switches de capa 3 hacen lo mismo por dentro, con una interfaz virtual por VLAN; el concepto es igual.)

TTL, ping y tracert

En la capa 2 un bucle era una tormenta, porque las tramas no caducan. Los paquetes sí: llevan un TTL (time to live), un número que cada router resta en uno. Si llega a 0, el router tira el paquete y le avisa al que lo mandó con un mensaje ICMP de “tiempo excedido”. Así, un paquete perdido en un bucle muere solo.

Ping manda un mensaje ICMP de eco y espera la respuesta. Dice si se llega, cuánto se tarda y con qué TTL vuelve la respuesta (Windows empieza en 128, los routers Cisco en 255, Linux en 64; lo que falte son routers cruzados).

Ping a un equipo de la sucursal: llega, y cruzando dos routers (128 − 2 = 126)
C:\Users\ventas2> ping 10.20.2.30
Haciendo ping a 10.20.2.30 con 32 bytes de datos:
Respuesta desde 10.20.2.30: bytes=32 tiempo=2ms TTL=126
Respuesta desde 10.20.2.30: bytes=32 tiempo=1ms TTL=126
Respuesta desde 10.20.2.30: bytes=32 tiempo=1ms TTL=126
Respuesta desde 10.20.2.30: bytes=32 tiempo=1ms TTL=126

Estadísticas de ping para 10.20.2.30:
  Paquetes: enviados = 4, recibidos = 4, perdidos = 0
  (0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
  Mínimo = 1ms, Máximo = 2ms, Media = 1ms

Cuando falla, el mensaje importa. “Tiempo de espera agotado para esta solicitud” es que no volvió nada. “Host de destino inaccesible”, con la respuesta viniendo de tu propia IP, es que tu equipo creía que el destino estaba en su red y nadie contestó a ARP (mira la máscara).

Tracert usa el TTL a propósito para dibujar el camino:

Tracert hasta un equipo de la sucursal. El primer paquete sale con TTL 1: R-SEDE lo deja en 0, lo tira y avisa con "tiempo excedido". El segundo, con TTL 2, llega hasta R-SUCURSAL, que hace lo mismo. El tercero, con TTL 3, llega al destino, que contesta. Cada aviso dice quién es cada salto. tu PCR-SEDER-SUCURSALdestinosale con TTL=1TTL 0: tiempo excedidosale con TTL=2TTL 0: tiempo excedidosale con TTL=3respuesta al pingcada aviso lleva la IP de quien lo manda: ese es el salto
Tracert manda paquetes con TTL 1, 2, 3…: cada router del camino se delata al tirar el suyo, y el destino contesta al final.
El primer salto contesta y el resto no: algo falla más allá de R-SEDE
C:\Users\ventas2> tracert -d 10.20.2.30
Traza a 10.20.2.30 sobre un máximo de 30 saltos

1    <1 ms    <1 ms    <1 ms  10.20.1.65
2     *        *        *     Tiempo de espera agotado para esta solicitud.
3     *        *        *     Tiempo de espera agotado para esta solicitud.
4     *        *        *     Tiempo de espera agotado para esta solicitud.

Aquí contesta R-SEDE y nadie más. Una causa típica es la ruta de vuelta: R-SUCURSAL recibe el paquete, pero su aviso no sabe volver a la sede. Si faltara la de ida, tracert enseñaría otra cosa: el propio R-SEDE contestaría que no puede llegar (“informes: Host de destino inaccesible”), porque lo tira en la ruta de descarte. Para salir de dudas, la tabla de rutas de cada router. (-d evita que tracert intente poner nombres a las direcciones, que tarda.)

DHCP: quién da las direcciones

Configurar a mano la IP, la máscara y la puerta de enlace de cada equipo es lento y es la mejor forma de equivocarse. Lo normal es DHCP: un servidor las reparte solo. Un equipo recién encendido, sin dirección todavía, la pide en cuatro pasos (DORA):

DHCP en cuatro mensajes. El cliente, sin IP, manda un Discover por difusión; el router, que hace de relay, se lo pasa al servidor DHCP de la otra red. El servidor contesta con un Offer (una IP), el cliente la pide con un Request y el servidor la confirma con un Ack, junto con la máscara, la puerta de enlace y el DNS. Sin relay, la difusión no pasa del router y el cliente se queda con una dirección 169.254. clienterouter (relay)servidor DHCP1 · Discover: «¿hay algún servidor?»2 · Offer: «te ofrezco la .70»3 · Request: «me la quedo»4 · Ack: «tuya: máscara, puerta…»sin ip helper-address, el Discover muere en el routery el cliente se queda con una 169.254.x.x
Discover, Offer, Request, Ack. Si el servidor está en otra red, el router tiene que reenviarle la petición.

La dirección se da en préstamo (lease) por un tiempo, y el equipo la renueva antes de que caduque. El servidor también entrega la máscara, la puerta de enlace y el DNS.

El Discover es una difusión, y las difusiones no cruzan routers. Si el servidor DHCP está en otra red (en la sede, en la VLAN de servidores), el router tiene que hacer de relay: en cada subinterfaz de los usuarios se le dice a quién reenviar esas peticiones.

En la subinterfaz de una VLAN: reenviar las peticiones DHCP al servidor
R-SEDE(config-subif)# ip helper-address 10.20.1.200

Un router también puede ser él mismo el servidor, como el de la sucursal:

Un servidor DHCP en el propio router
R-SUCURSAL(config)# ip dhcp pool SUCURSAL
R-SUCURSAL(dhcp-config)# network 10.20.2.0 255.255.255.0
R-SUCURSAL(dhcp-config)# default-router 10.20.2.1

En Windows, ipconfig /release suelta la dirección e ipconfig /renew pide una nueva; así se comprueba si el DHCP responde. Si no responde, el equipo se pone una 169.254.x.x y se queda aislado. Y un equipo con IP fija (escrita a mano en sus propiedades) no pregunta nada: todo lo que lleve mal, lo llevará mal para siempre.

IPv6, en pocas palabras

Las direcciones IPv4 son unos 4 300 millones, y se acabaron hace años (NAT es en buena parte un parche para eso). IPv6 usa direcciones de 128 bits, escritas en hexadecimal en ocho grupos de cuatro cifras: 2001:0db8:0000:0000:0000:0000:0000:0042. Se abrevian quitando los ceros de delante de cada grupo y cambiando una tira de grupos a cero por ::: 2001:db8::42.

  • Las redes locales son casi siempre /64: la mitad de la dirección es la red.
  • No hay difusión: se usa multidifusión. Y en vez de ARP, NDP (Neighbor Discovery).
  • Cada interfaz tiene siempre una dirección de enlace local, que empieza por fe80:: (la que sale en ipconfig como “Vínculo: dirección IPv6 local”). Solo sirve dentro de su red.
  • Los equipos pueden configurarse solos a partir de lo que anuncia el router (SLAAC), o con DHCPv6.

Hoy casi todas las redes llevan las dos versiones a la vez (doble pila). En la sala no vas a tocar IPv6, pero lo verás asomar en ipconfig.

Cómo se diagnostica la capa 3

Con la capa 1 y la 2 descartadas (enlace, VLAN), se va de dentro afuera, y cada paso dice dónde mirar:

  1. ipconfig en el puesto: ¿tiene dirección? Una 169.254 es DHCP que no llega. Si la tiene, haz las cuentas: ¿la dirección cae en el bloque de su red? ¿La máscara es la de su red? ¿La puerta de enlace es la del router y cae dentro de su bloque? ¿Pone “(Duplicado)”?
  2. ping a la puerta de enlace. Si no contesta, el problema está entre el puesto y el router (dirección, máscara, la subinterfaz de su VLAN).
  3. ping a otro equipo de su misma red y a otra red de la empresa (la sucursal). Si llega a su red y no a las demás, mira la puerta de enlace.
  4. ping a internet por IP.
  5. tracert hasta lo que no responde: el último salto que contesta dice hasta dónde llega.
  6. En el router: show ip interface brief (interfaces y direcciones), show ip route (qué redes conoce, en los dos routers) y show running-config (la VLAN de cada subinterfaz, los ip helper-address). Una interfaz en administratively down está apagada a mano (shutdown) y no deja pasar nada hasta un no shutdown; si es la física, caen con ella todas sus subinterfaces.
  7. arp -a y capturar tráfico cuando algo va y viene (una IP duplicada) o cuando un equipo pregunta y nadie contesta (un Discover de DHCP sin Offer).