Está en la página 1de 8

RUTEO ESTÁTICO Y REENVÍO IP

ENTREGA INDIRECTA

Sabemos que, si el emisor A y el receptor C están conectados por routers, es porque no pertenecen al
mismo prefijo de red (Net-Id). Cuando A se da cuenta de esto, entonces llega a la conclusión de que
tiene que hacer entrega indirecta. Para hacer esta, A tiene que determinar quién es el próximo salto.
Puesto que A no puede enviarle el datagrama a C utilizando solamente servicios de capa 2, entonces
necesito un intermediario, el cual A llama próximo salto.

En este caso, el emisor A y el receptor C tienen distintos Net-Id. En este caso A no le va a pasar el
datagrama directamente a C, sino que, a un intermediario, el router M. Si este intermediario se da
cuenta que no puede enviar directamente a C, busca hacer un salto. Un dispositivo M puede elegir como
próximo salto a otro dispositivo X solo si M y X están directamente conectados, es decir pertenecen a
una misma red IP (mismo Net-Id). En el diagrama, M está directamente conectado a X, pero no a Y. Por
más que tanto X como Y puedan llegar a C, Y no pertenece a la misma red que M, así como X. A
continuación, el router X debe determinar si el destino final del datagrama es alcanzable en forma
directa, y si no es así, ahí debe optar por un salto. Como vemos que, si es posible la entrega directa al
destino final C, la efectúa.

Ahora, en una red podemos encontrar una mezcla de routers y hosts. La diferencia entre estos es que,
cualquier router que reciba un datagrama que no es para sí mismo, va a buscar reenviarlo. En cambio
cuando un host recibe un datagrama que no es para él, lo va a descartar y no va a hacer nada.

Ahora, suponiendo que en lugar del router M tenemos una PC con Linux. Este tiene un parámetro
llamado IP-forwarding. Si este esta deshabilitado, trabaja como un host más. Si está habilitada, este
puede funcionar como un router, entonces se va a fijar si puede hacer entrega directa o va a buscar
hacer un salto.

IP brinda un servicio de datagramas. Estos son no orientados a la conexión. Dado un datagrama con
origen A y destino B, cada dispositivo de la ruta A hasta B solo determina el próximo dispositivo
(próximo salto) de la ruta. Se denomina técnica NEXT HOP. Ningún dispositivo conoce la ruta completa.
Tanto hosts como routers toman decisiones de reenvío (forwarding). La diferencia es que los routers
toman decisiones de forwarding siempre, para cualquier datagrama, y los hosts solo toman decisiones
de forwarding cuando son origen o destino de ese datagrama. Si un host Z reciben un datagrama que
viene de otro host X, dirigido a un host Y, no toma decisiones de forwarding.
En una internet TCP/IP los routers forman una estructura interconectada cooperativa. Los datagramas
pasan de un router a otro hasta que llegan a un router que puede entregar ese datagrama directamente
a el destinatario final.

Un host descansa en los routers para transferir datagramas a destinos remotos. Es decir que un host no
sabe mucho, con alcanzar un router ya alcanza. De manera distinta, cada router conocer cómo llegar a
todos los posibles destinos en la internet, es decir necesita tener mucha más información. Dado un
datagrama, un router lo debe poder reenviar correctamente.

Como hacen estos


para saber cual es el
próximo salto para
un destino dado. En
el ejemplo de la foto,
como sabe A que,
para llegar a C, que el próximo salto correcto es el router M, ¿y como sabe el router M que el próximo
salto correcto es el router X? El algoritmo IP emplea las llamadas tablas de reenvío, que almacenan
información sobre los posibles destinos y como llegar a ellos. Tanto los hosts como los routers las tienen
debido a que cada uno debe reenviar datagramas. Cada fila de la tabla contiene información que
permite dos acciones al momento de reenviar un datagrama:

1- Decidir si la fila contiene información que puede ser utilizada para reenviar el datagrama que se
está procesando
2- Una vez seleccionada la fila, ésta debe indicar que acción tomar con el datagrama. Si hacer un
salto o una entrega directa.

Si cada tabla de reenvío contuviera


información sobre todos los destinos
posibles en una internet, sería imposible
mantenerlas actualizadas. Las IP se asignan
de manera que todos los dispositivos
conectados a una red subyacente dada
comparten un prefijo común. Típicamente
un router selecciona el mismo próximo
salto para todas las direcciones de una red
IP. En la tabla puede guardarse en una única
fila la información de próximo salto para
una red IP. Es decir que una fila sirve para
toda una red, es decir para todos los hosts
que comparten el Net-Id, pero además
también sirven para hacer referencia a un
solo host particular, como caso especial,
pero no es lo más eficiente. Pero además
sirven para todos los hosts de más de una red IP. Vamos a ver cada uno de estos casos con un ejemplo a
continuación.

CONSTRUCCIÓN DE TABLAS

Recordemos que los dispositivos tienen interfaces con nombre. Vemos que en este caso cada interfaz de
router que pertenece a una red LAN tiene la última dirección útil del segmento de direcciones
asignables.

En el esquema tenemos las siguientes redes:

- 10.1.1.0/24 formada por dos ordenadores y la i1 (interfaz 1) de R1 (router 1)


- 10.2.2.0/26 formada por un ordenador y la i1 de R2.
- 10.3.3.0/25 formada por un ordenador, un servidor, y las i1 de R3 y R5.
- 10.3.3.128 /25 formada por una cantidad desconocida de ordenadores.
- 192.168.1.0/29 formada por los routers R1 a través de i5, R2 a tevés de i5 y R3 a través de i5.

Vamos a armar la tabla de reenvío de R1. Debemos tener en cuenta que luego de configurar las IP, un
dispositivo ya puede hacer entrega directa a las redes a las que pertenece. R1 pertenece a la red
10.1.1.0/24 y a la red 192.168.1.0/29. Pero al no pertenecer a la red 10.2.2.0/26, no puede hacer
entrega directa a la misma. Entonces debemos agregar una fila para saber que hacer con los datagramas
que estén dirigidos a esta.

DESTINO MASK NEXT HOP INTERFAZ


10.2.2.0 255.255.255.192 192.168.1.2 192.168.1.1
El próximo salto de R1 en este caso, es R2. Pero R2 tiene más de una interfaz. Recordemos que para que
un dispositivo pueda ser próximo salto de otro, debe estar directamente conectado. En este caso, R1
está directamente conectado a R2 a través de i5 de R2. Entonces el siguiente salto va a ser i5 de R2, la
cual tiene su propia IP. Profundizando en esto, podemos decir que si R1 elige a R2 como próximo salto,
le exigimos a este último que tenga el mismo prefijo de red que alguna de las interfaces de R1.
Básicamente podemos decir que para que R1 pueda elegir a R2 como próximo salto, alguna de las
interfaces de R1 debe compartir Net-Id con alguna de las interfaces de R2. En el campo de INTERFAZ
escribo a través de que interfaz debo reenviar el datagrama para que le llegue al próximo salto. Acá se
puede poner el nombre o la IP de la interfaz, dependiendo el SO. Con lo visto hasta ahora, vamos a
agregar la fila que va a posibilitar a R1 de reenviar datagramas dirigidos a la red 10.3.3.0/25.

DESTINO MASK NEXT HOP INTERFAZ


10.3.3.0 255.255.255.128 192.168.1.3 192.168.1.1

Algo que no podemos pasar por alto es el hecho de que, como administradores, no es necesario
configurar la información para las redes de entrega directa, sin embargo, esas entradas se van a
visualizar en la tabla, dependiendo de la implementación. Vamos a agregar entonces a la tabla, las filas
para las redes de entrega directa. Recordemos que R1 estaba directamente conectado a 10.1.1.0/24 y a
192.168.1.0/29. Como hace referencia a una entrega directa, no hay realmente un próximo salto.

DESTINO MASK NEXT HOP INTERFAZ


10.1.1.0 255.255.255.0 Entrega directa 10.1.1.254
192.168.1.0 255.255.255.248 Entrega directa 192.168.1.1

Hay más de una manera de especificar que una fila es para representar una entrega directa. Por
ejemplo, que en el campo NEXT HOP, tenga la misma IP que en el campo INTERFAZ.

DESTINO MASK NEXT HOP INTERFAZ


10.1.1.0 255.255.255.0 10.1.1.254 10.1.1.254
192.168.1.0 255.255.255.248 192.168.1.1 192.168.1.1

RUTAS POR OMISIÓN

Ahora vamos a hablar de R4. Este está conectado directamente mediante su i5, a la i1 de R1. A su vez
este esta conectado a una nube, la cual puede tener una cantidad muy grande de redes que no conozco.
Entonces en este caso no puedo agregar una fila para cada una de las redes. Entonces, en todos esos
casos de redes, tengo que salir a través de R4. No olvidemos que como R4 está conectado directamente
a R1, debemos agregar la fila que lo especifica.

DESTINO MASK NEXT HOP INTERFAZ


200.1.1.0 255.255.255.248 Entrega directa 200.1.1.1
Se puede entonces, agregar en la tabla una entrada que se llama router por defecto (default gateway).
El algoritmo de reenvío la utiliza solo si ninguna de las otras entradas sirve para el destino. Esta sirve si
por ejemplo hay todo un conjunto de redes que no conozco, o si las conozco, pero son demasiadas
redes como para listar. Por último, esta sirve en las tablas de los hosts, porque recordemos que las
tablas de hosts son más pequeñas, y es muy común que estos tengan un solo router configurado al cual
mandarle todo el tráfico para el cual debemos hacer entrega indirecta. La ruta por defecto es muy útil.
Esta fila se configura como una fila normal, solo que en la columna de destino y de máscara tengo
0.0.0.0. Vamos a agregarla a la tabla, especificando claramente la IP de la interfaz del router por defecto
y la interfaz a través de la cual hay que salir:

DESTINO MASK NEXT HOP INTERFAZ


0.0.0.0 0.0.0.0 200.1.1.2 200.1.1.1

RUTAS PARA UN HOST ESPECÍFICO

Por último, no debemos olvidar que, aunque los reenvíos de basan en las redes y no en hosts
individuales, la mayoría del software de reenvío IP permite una ruta hacia estos. Son casos especiales.
Algunos de los usos posibles son, cuando un administrador puede enviar el tráfico para ciertos hosts a lo
largo de una ruta y el tráfico para el resto de los hosts a lo largo de otra, o cuando se instala y se prueba
una red nueva en paralelo mediante el reenvío de tráfico hacia hosts específicos sobre la nueva red.
También puede ser por temas de seguridad donde el tráfico hacia ciertos hosts puede ser enviado por
rutas más seguras.

Según el esquema con el que estamos trabajando podemos ver que desde R1, hay dos caminos posibles
para llegar a 10.3.3.0/25. Vamos a especificar un caso especial en el que únicamente para llegar al
servidor 10.3.3.3, tengamos que pasar por R5 y no por R3 como habíamos especificado para todos los
hosts de 10.3.3.0/25. Entonces en la fila que voy a agregar, el DESTINO va a ser la IP del host individual.
En máscara se ponen 32 1s. Esto quiere decir que esta fila solamente sirve para el destino especificado.
No debemos olvidar de ninguna manera, agregar la fila que especifica que R5 está directamente
conectado a R1.

DESTINO MASK NEXT HOP INTERFAZ


10.3.3.3 255.255.255.255 192.168.1.10 192.168.1.9
192.168.1.8 255.255.255.252 Entrega directa 192.168.1.9

Hasta ahora vimos que las filas de entrega directa no son manejadas por el administrador. Sin embargo,
hay algunas implementaciones que las muestran. Pero estas no son las únicas filas que no son
configuradas por el administrador. Estas son parte de las conocidas como filas de entrega directa por
más que no hacen referencia a redes. Por ejemplo, una fila para la red de loopback:

DESTINO MASK NEXT HOP INTERFAZ


127.0.0.0 255.0.0.0 * 127.0.0.1
En esta fila no va a haber próximo salto, porque sabemos que si algo está destinado a 127.0.0.0, no va a
salir del dispositivo, por lo que no va a haber tráfico. La interfaz que hay que usar es la de loopback,
127.0.0.1. Luego hay una fila por cada una de las direcciones IP a las que se quiere hacer entrega directa.
O también para hacer multicast, hay una fila por cada interfaz del router.

Vamos a ver como quedaría la tabla completa de R1. No debemos olvidar que las únicas filas que el
administrador configura son las que están en azul.

DESTINO MASK NEXT HOP INTERFAZ


10.2.2.0 255.255.255.192 192.168.1.2 192.168.1.1
10.3.3.0 255.255.255.128 192.168.1.3 192.168.1.1
0.0.0.0 0.0.0.0 200.1.1.2 200.1.1.1
10.3.3.3 255.255.255.255 192.168.1.10 192.168.1.9
192.168.1.0 255.255.255.248 Entrega directa 192.168.1.1
10.1.1.0 255.255.255.0 Entrega directa 10.1.1.254
200.1.1.0 255.255.255.248 Entrega directa 200.1.1.1
192.168.1.8 255.255.255.252 Entrega directa 192.168.1.9

ALGORITMO DE REENVÍO

1. Extraer del datagrama la IP destino.


2. Si la tabla de reenvío tiene una fila para esa IP específica, lo reenvía al próximo salto
especificado en la entrada
3. Si el Net-ID del destino coincide con cualquier red de entrega directa, enviar el datagrama al
destino a través de la red.
4. Si la tabla contiene una entrada que coincida con el Net-ID del destino, reenvía el datagrama al
próximo salto especificado en la entrada. (Indirecta)
5. Si la tabla de reenvío contiene ruta por defecto, reenviar el datagrama al próximo salto
especificado en la ruta por defecto.
6. Si se llegó hasta acá sin información que nos sirva de algo, es decir que no nos permite el
reenvío del datagrama y no existe ruta por defecto, se declara error de reenvío y se descarta el
datagrama.

ALGORITMO DE REENVÍO CON MÁSCARA

Recordemos que el datagrama no especifica la máscara para la IP de destino que tiene en su


encabezado. Entonces, para analizar el prefijo de red de este destino, utilizo la máscara especificada en
el campo MASK de cada fila. Porque yo no estoy determinando a que red pertenece este destino, sino
que estoy viendo si la información que tengo en una fila resulta útil para reenviar el datagrama hacia
este destino o no.

Para cada entrada en la tabla de reenvío hacer:

En el primer if anidado, el dispositivo se fija si el datagrama es para si mismo. Si no es así, debe entregar
el datagrama, ya sea de manera directa o indirecta, al siguiente salto, y para eso va a utilizar servicios de
la capa 2. Si el siguiente salto es el destinatario final, uso los servicios de la capa 2 para enviar el
datagrama a este mismo. Si en el siguiente salto tengo al NEXT HOP, voy a usar estos servicios para
entregar el datagrama al próximo salto, es decir al intermediario.

DESTINO MASK NEXT HOP INTERFAZ


10.2.2.0 255.255.255.192 192.168.1.2 192.168.1.1
10.3.3.0 255.255.255.128 192.168.1.3 192.168.1.1
0.0.0.0 0.0.0.0 200.1.1.2 200.1.1.1
10.3.3.3 255.255.255.255 192.168.1.10 192.168.1.9
192.168.1.0 255.255.255.248 Entrega directa 192.168.1.1
10.1.1.0 255.255.255.0 Entrega directa 10.1.1.254
200.1.1.0 255.255.255.248 Entrega directa 200.1.1.1
192.168.1.8 255.255.255.252 Entrega directa 192.168.1.9

Entonces con esta tabla, vamos a ver que fila elige R1 para un datagrama con destino 10.2.2.2. Vemos
que si tomamos la primera fila, hacemos 10.2.2.2 AND 255.255.255.192, lo cual nos da 10.2.2.0. Como
10.2.2.0 está en la tabla, sabemos cual es el siguiente salto que debemos elegir. Sin embargo, vemos
que en la tercera fila, si hacemos 10.2.2.2 AND 0.0.0.0, nos da 0.0.0.0, lo cual coincide con un destino de
la tabla. Sin embargo, el siguiente salto asociado a esta fila de la tabla, no está relacionado con el
destino intencionado real de 10.2.2.2. Por situaciones como esta, el algoritmo que toma la dirección de
destino y va haciendo un AND bit a bit entre este y la máscara no recorre las filas en cualquier orden.

Este organiza el recorrido para consultar primero las filas que tienen mas 1s en las mascaras y luego
continuar en forma descendente hasta llegar a las que tienen menos cantidad de 1s. Por eso en el caso
del que hablamos recién, siempre va a fijarse primero en la fila 1 en vez de la fila 3. En consecuencia,
primero va a consultar a las entradas para hosts específicos (32 1s), luego las de red, ordenadas por
tamaño de prefijo de red, y por último va a consultar la ruta por omisión (0 1s)

TABLA DE REENVÍO DE UN HOST

Recordemos que la tabla de reenvío de un host debe tener el menor tamaño posible. Estos descansan
en los routers para las tareas de reenvío, por lo que las entregas indirectas configuradas en un host
pueden reducirse a una ruta por omisión. Entonces, en el esquema que estábamos utilizando, la tabla
del host A (PCA) solamente necesita definir R1 como próximo salto en la ruta por omisión.

DESTINO/MASK NEXT HOP INTERFAZ


0.0.0.0/0 10.1.1.254 int0
SUMARIZACIÓN DE RUTAS

Ahora vamos a tener en cuenta la red 10.3.3.128/25. Entonces ahora hay que modificar la tabla de R1
para que este pueda tomar una decisión de forwarding para esta red nueva, porque de no ser así va a
intentar ir por R4 porque es su ruta por defecto. Entonces la fila que agregamos en R1 será como la
siguiente:

DESTINO MASK NEXT HOP INTERFAZ


10.3.3.128 255.255.255.128 192.168.1.3 192.168.1.1

Pero si nos fijamos en la tabla completa, ya tenemos una fila para la red 10.3.3.0 que se ve como la
siguiente:

DESTINO MASK NEXT HOP INTERFAZ


10.3.3.0 255.255.255.128 192.168.1.3 192.168.1.1

Podemos ver que para el rango de direcciones de 10.3.3.0 – 10.3.3.127 el próximo salto es el mismo que
para el rango de direcciones 10.3.3.128 – 10.3.3.255, y es 192.168.1.3. Son dos rangos contiguos de
direcciones que tienen el mismo próximo salto. Esto nos da la posibilidad de poner una sola fila para
todo el rango 10.3.3.0 – 10.3.3.255, indicando el destino 10.3.3.0/24. Esta fila quedaría como la
siguiente:

DESTINO MASK NEXT HOP INTERFAZ


10.3.3.0 255.255.255.0 192.168.1.3 192.168.1.1

Esta sirve para todo el rango de que hablamos. Sin embargo, vemos que no existe ninguna red
10.3.3.0/24. Pero no importa, porque a fin de cuentas lo que necesito de un router, es tener
información local que le permita tomar decisiones de forwarding, no conocer todas las redes que
existen. Entonces en este caso, R1 puede sumarizar rutas. Si no se hace la sumarización de rutas en una
configuración estática manual no hay problema, pero cuando hay protocolos de ruteo dinámico y
nosotros no configuramos las tablas, sino que lo hacen los protocolos, vamos a ver que se sumarizan las
rutas.

DESTINO MASK NEXT HOP INTERFAZ


10.2.2.0 255.255.255.192 192.168.1.2 192.168.1.1
10.3.3.0 255.255.255.0 192.168.1.3 192.168.1.1
0.0.0.0 0.0.0.0 200.1.1.2 200.1.1.1
10.3.3.3 255.255.255.255 192.168.1.10 192.168.1.9
192.168.1.0 255.255.255.248 Entrega directa 192.168.1.1
10.1.1.0 255.255.255.0 Entrega directa 10.1.1.254
200.1.1.0 255.255.255.248 Entrega directa 200.1.1.1
192.168.1.8 255.255.255.252 Entrega directa 192.168.1.9

También podría gustarte