Un viaje en tren con transbordos
Vas en tren a otra ciudad con dos transbordos. Nadie te da el viaje entero de golpe.
En cada estación miras el panel y solo buscas el siguiente tren. Paso a paso, llegas.
Los paquetes cruzan internet igual. Cada router solo decide el siguiente salto.
Al final de esta lección
Nota
Puedo seguir un paquete de router en router.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Router | un aparato que pasa paquetes de una red a otra | |
| Tabla de rutas | la lista de redes de un router y adónde enviar cada una | |
| Siguiente salto | el próximo router al que se entrega el paquete | |
| Ruta por defecto | la línea que se usa cuando ninguna otra coincide | default via 10.0.1.1 |
| Red conectada | una red en la que el router tiene un cable | |
| Salto | un paso de un aparato al siguiente |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una tabla de rutas lista redes
Todo equipo con dirección tiene una tabla de rutas. Cada línea nombra una red y dice adónde enviar sus paquetes.
La tabla de un equipo normal es corta. Conoce su propia red y tiene una ruta por defecto: todo lo demás, al router.
La tabla de un router es más larga. Conoce cada red en la que tiene un cable.
Lee la tabla de rutas de h1
sudo ip netns exec h1 ip routeSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Lee la tabla de rutas de r1
sudo ip netns exec r1 ip routeSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Qué dicen las dos tablas
h1 tiene dos líneas. default via 10.0.1.1 lo manda todo a r1. 10.0.1.0/24 dev to-r1 es la red propia de h1.
r1 también tiene dos líneas, 10.0.1.0/24 y 10.0.12.0/24, las dos conectadas. r1 no tiene línea para la red de h2, 10.0.3.0/24, ni ruta por defecto.
Gana la línea más exacta
Un paquete puede coincidir con varias líneas. La ruta por defecto, por ejemplo, coincide con todo.
El router elige la línea con el prefijo más largo, el número más grande tras la barra. Esa línea es la más exacta.
Si nada coincide y no hay ruta por defecto, el router tira el paquete. Avisa al que lo envió: la red no se puede alcanzar.
Ejemplo resuelto: el router de una academia
| Paquete para | Líneas que coinciden | Gana | Siguiente salto |
|---|---|---|---|
| 10.10.20.5 | 10.10.0.0/16, 10.10.20.0/24, defecto | 10.10.20.0/24 | 10.10.0.2 |
| 10.10.30.5 | 10.10.0.0/16, defecto | 10.10.0.0/16 | 10.10.0.1 |
| 1.1.1.1 | defecto | defecto | 198.51.100.1 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Haz ping a h2 desde h1
sudo ip netns exec h1 ping -c 2 -W 1 10.0.3.2Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Sigue los saltos del paquete
sudo ip netns exec h1 traceroute -n -m 4 -w 1 10.0.3.2Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Pregunta a r1 adónde lo enviaría
sudo ip netns exec r1 ip route get 10.0.3.2Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Dónde se para el paquete
El ping imprime dos veces From 10.0.1.1 ... Destination Net Unreachable. El aviso viene de r1, no de h2.
El traceroute enseña un solo salto, 10.0.1.1, marcado con !N: red inalcanzable.
r1 contesta RTNETLINK answers: Network is unreachable. Su tabla no tiene línea para 10.0.3.0/24. Arreglarlo es el laboratorio.
Un error frecuente
Advertencia
Mucha gente cree que un router conoce el camino entero. Solo conoce el siguiente salto. Cada router del camino necesita su línea para la red lejana, y el otro lado necesita una línea de vuelta para la respuesta.
Para ir más lejos: el camino de vuelta
Antes del laboratorio, ejecuta sudo ip netns exec r2 ip route y cuenta sus líneas. Cuando tu laboratorio funcione, ejecútalo otra vez.
¿Qué línea nueva deja a r2 enviar la respuesta a h1? Escríbela en el formato de tu tarea y pruébala con tu next_hop.