04 - Principios Com y Redes - Apuntes Teoría - La Capa de Red

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 33

Grado en

Ingeniería de la Salud

PRINCIPIOS DE LAS
COMUNICACIONES Y REDES

APUNTES DE TEORÍA
La capa de red

Docente:

Alejandro Merino Gómez

Dpto. de Digitalización
Área de Ingeniería de Sistemas y Automática

Versión 1.6
Fecha 05/03/2024 14:02
2º Grado en Ingeniería de la Salud

Principios de las Comunicaciones y Redes 2


2º Grado en Ingeniería de la Salud

Índice de contenidos

1. INTRODUCCIÓN.............................................................................. 4
2. FUNCIONES DE LA CAPA DE RED .................................................... 4
2.1. Reenvío y enrutamiento. ..................................................................... 4

2.2. Plano de datos y plano de control ........................................................ 5

3. MODELOS DE SERVICIO DE LA CAPA DE RED .................................. 7


3.1. Redes de datagramas .......................................................................... 7

4. LA CAPA DE RED DE INTERNET ....................................................... 8


4.1. El protocolo IP ..................................................................................... 8

4.2. El datagrama IPv4 ............................................................................... 9

4.3. Fragmentación y reensamblado de datagramas en IPv4. .................. 10

4.4. Direccionamiento IPv4 ...................................................................... 11

4.5. Direccionamiento con y sin clase ....................................................... 12

4.6. DHCP ................................................................................................. 15

4.7. NAT 16
4.7.1. El problema de NAT transversal ...................................................................... 18
4.8. Protocolo ICMP. ................................................................................. 19

4.9. IPV6. ................................................................................................. 21


4.9.1. Transición de IPv4 a IPv6 ................................................................................... 23
5. ALGORITMOS DE ENRUTAMIENTO ................................................ 24
5.1. Algoritmo de estado de enlaces (LS) ................................................. 25

5.2. Algoritmo de vector de distancias. .................................................... 27

5.3. Enrutamiento jerárquico.................................................................... 28

5.4. Enrutamiento en Internet .................................................................. 30


5.4.1. RIP ................................................................................................................................ 31
5.4.2. OSPF ............................................................................................................................. 31
5.4.3. BGP ............................................................................................................................... 33

Principios de las Comunicaciones y Redes 3


2º Grado en Ingeniería de la Salud

1. Introducción
El objetivo básico de la capa de red es transportar segmentos, procedentes de la capa
de transporte, desde un host emisor a un host receptor. Esto supone que, a
diferencia del nivel de enlace en el que únicamente estaban involucrados dos equipos, un
emisor y un receptor, en el en nivel de red están involucrados todos los equipos que existen
en la ruta entre el equipo emisor y el equipo receptor. Por tanto, los protocolos de la capa
de red se ejecutan en todos los hosts y routers de la red (no en los switches, que operan
generalmente a nivel de enlace).

En el nivel de red el nombre que se utiliza para los mensajes que se intercambian es el de
datagramas. Se habla así, por ejemplo, del datagrama IP.

A nivel de red, el equipo emisor recibe un segmento de la capa de transporte y lo encapsula


en un datagrama que es entregado a la capa de enlace. En el lado del receptor se recibe
una trama de la capa de enlace y se entrega a la capa de red del receptor que lo
desencapsula y lo envía a la capa de transporte.

2. Funciones de la capa de red

2.1. Reenvío y enrutamiento.


Dos de las principales tareas de la capa de red, son el reenvío y el enrutamiento de los
mensajes.

Cuando un mensaje tiene que atravesar una red de nodos entre un origen y un destino,
puede hacerlo siguiendo múltiples rutas. El enrutamiento consiste en determinar, de
entre todos los caminos posibles, la ruta óptima entre equipos terminales a través de una
red.

Como se verá más adelante, uno de los campos de las cabeceras IP de los datagramas que
circulan por una red es la dirección IP de destino. Las tablas de reenvío son unas tablas
almacenadas en los routers de la red en las que se establece la relación entre el valor del
campo de la cabecera que contiene la dirección IP de destino y el enlace de salida por el
que tiene que salir ese mensaje. Así, cuando un router recibe un paquete, analiza el valor
de la IP de destino contenida en la cabecera y consulta su tabla de reenvío para determinar
por cuál de los enlaces que posee debe reenviar el paquete.

En la Figura 1, el router 1 posee 4 enlaces y su tabla de reenvío indica por cual de esos
enlaces debe enviar los paquetes en función de valor de la IP de destino de la cabecera.
En este ejemplo, si el valor de la cabecera es 0100 el datagrama se reenvía por el enlace
3, si es 0101 por el enlace 2, etc. En este ejemplo se recibe un mensaje con un valor en
la cabecera 0111, por lo que, según la tabla de reenvío, se debe enviar por la interfaz 2.

Principios de las Comunicaciones y Redes 4


2º Grado en Ingeniería de la Salud

Figura 1. Enrutamiento y reenvío.

Pero, ¿Quién rellena la tabla de reenvío? Los encargados de completar esta tabla son los
algoritmos de enrutamiento. Es decir, en la capa de red se opera a dos niveles, por un
lado, a nivel global de la red, los algoritmos de enrutamiento determinan las rutas óptimas,
y con el resultado de este cálculo se completan las tablas locales de cada router.

2.2. Plano de datos y plano de control


De lo expuesto anteriormente se puede ver que el nivel de red puede analizarse desde dos
perspectivas diferente. Por un lado, está lo que ocurre a nivel de router individual, a lo que
llamaremos plano de datos, que determina cómo los datagramas que llegan a una
interfaz son reenviados a una interfaz de salida. Por otro lado, tenemos que ocurre a nivel
del conjunto de la red, que denominaremos plano de control que determina cómo un
datagrama es enrutado a lo largo de la ruta entre un equipo de origen y uno de destino.

En el plano de control existen actualmente dos enfoques diferentes, en lo que respecta a


su implementación.

En el enfoque tradicional Figura 2, los algoritmos de enrutamiento se ejecutan en los


routers que además se comunican entre sí para intercambiar información relativa al
enrutamiento, según alguno de los protocolos que veremos en la sección 5.

Principios de las Comunicaciones y Redes 5


2º Grado en Ingeniería de la Salud

Figura 2. Plano de control mediante SDN

En los últimos años está sin embargo proliferando el enfoque SDN (Software Defined
Networks, redes definidas por software), en las que las tablas de enrutamiento son
calculadas y distribuidas desde un controlador externo centralizado, Figura 3. Este
controlador externo suele ser un conjunto de servidores coordinados de alta disponibilidad.
SDN permite, además de definir las tablas de reenvío, llevar a cabo acciones más complejas
sobre los datagramas, como pueden ser el filtrado de paquetes, la modificación de campos
de cabecera, etc. Estas acciones pueden ser llevadas a cabo atendiendo, además de a las
direcciones IP del datagrama, a otros campos del paquete, como las direcciones MAC, o
los números de puerto, lo cual dota a este tipo de enfoque de mucha más versatilidad y le
da la capacidad de implementar servicios correspondientes a capas diferentes (violando la
división por capas). En este enfoque los routers adoptan un papel mucho más pasivo, ya
que únicamente se a comunican con el controlador remoto, recibiendo del mismo las tablas
de reenvío y ejecutándolas.

Figura 3. Plano de control mediante el enfoque tradicional

Principios de las Comunicaciones y Redes 6


2º Grado en Ingeniería de la Salud

3. Modelos de servicio de la capa de red


El modelo de servicio de servicio de la capa de red define las características del transporte
de los paquetes entre los sistemas terminales emisor y receptor. Algunos de los servicios
que puede proporcionar la capa de red son los siguientes:

• Entrega de los paquetes en orden: los paquetes se reciben en el mismo orden


en el que se han enviado.

• Ancho de banda mínimo garantizado: Se garantiza una velocidad mínima de


transmisión.

• Pérdida de paquetes: Se garantiza que no se pierden paquetes.

• Indicación de la congestión: Si indica si la conexión está o no congestionada.

• Servicios de seguridad: como cifrado de los mensajes a nivel de red.

La capa de red de internet no ofrece ninguno servicio, implementa lo que se llama un


“Servicio de mejor esfuerzo”. Es decir, hará todo lo posible por entregar los paquetes
en orden o a una determinada velocidad, pero no posee mecanismos específicos para
garantizar estos servicios, por lo que no tienen por qué cumplirse.

Existen protocolos, por ejemplo, los protocolos de ATM, Constant Bit Rate (CBR) y Average
Bit Rate (AVR) que sí que ofrecen garantías. En la Tabla 1 se muestra una comparativa de
servicios ofrecidos por internet, CVR y AVR.

Arquitectura Modelo de Garantías


de red
servicio Ancho de Pérdidas Orden Temporiz Indicac.
congestión
banda

Internet Mejor Ninguno No No No No


esfuerzo (inferida

via pérd.)

ATM CBR Velocidad Si Si Si No hay


constante congestión
garantizada

ATM ABR Mínimo No Si No Si


garantizado

Tabla 1. Comparativa de modelos de servicio.

¿Por qué se utiliza entonces el modelo de internet a nivel de red? La simplicidad de los
protocolos de internet a nivel de red permite que los dispositivos del interior de la red
puedan ser sencillos y gestionen los paquetes de manera muy rápida, delegando las tareas
que implican fiabilidad a la conexión a los niveles superior.

3.1. Redes de datagramas


Las redes de datagramas proporcionan un servicio sin conexión y es el que se utiliza en
internet. Su funcionamiento es muy sencillo, ya que no es necesario poner de acuerdo a
los equipos de la red. Los routers tampoco tienen ningún tipo de información acerca del
estado de la conexión y se limitan a reenviar paquetes en base a la información que existe
en su tabla de reenvío, que ha sido completada por un protocolo de enrutamiento.

Principios de las Comunicaciones y Redes 7


2º Grado en Ingeniería de la Salud

Así en este tipo de redes, cuando un emisor quiere enviar un mensaje, simplemente lo
lanza a la red y los routers intermedios lo van reenviando en función de la dirección de
destino contenida en la cabecera del mensaje hasta el destino (Figura 4). Las rutas no
tienen por qué ser las mismas durante toda la transmisión, ni se dedican recursos en los
nodos intermedios.

Figura 4. Esquema de una red de datagramas.

Las redes de datagramas son una evolución de las redes de telefonía en las que se
establecía una conexión fija entre terminales y se mantenía durante toda la comunicación.
Esto tenía que ser así porque para garantizar el servicio era necesaria una temporización
estricta y existían requisitos de fiabilidad.

Además, los terminales telefónicos antiguos no disponían ningún tipo de inteligencia, por
lo que la complejidad residía dentro de la red

4. La capa de red de internet


En las redes actuales de internet, en la capa de red aparecen 4 elementos principales, los
protocolos de enrutamiento, que como ya se explicó determinan las rutas óptimas y
completan las tablas de reenvío de los routers, el protocolo IP y el protocolo ICMP.

4.1. El protocolo IP
IP se corresponde con las siglas Internet Protocol. Este protocolo es el responsable del
direccionamiento y reenvío de los paquetes, que tal y como se mencionó anteriormente se
denominan datagramas en el nivel de red. Existen actualmente dos versiones del protocolo

Principios de las Comunicaciones y Redes 8


2º Grado en Ingeniería de la Salud

IP, IPv4 e IPv6. Se comenzará este apartado estudiando el formato de los datagramas
IPv4.

4.2. El datagrama IPv4


Los campos principales de los que se compone el datagrama IPv4 son los siguientes (Figura
4):
• Número de versión: Especifica la versión del protocolo IP, que en este caso será 4.

• Longitud de la cabecera: El tamaño de la cabecera IP es variable ya que, a pesar


de que la cabecera tiene típicamente 20 bytes, puede haber opciones que aumenten
el tamaño de la misma.

• Tipo de servicio: Permite diferenciar los datagramas IP en función del tipo de servi-
cio que se quiera ofrecer, por ejemplo, saber si el datagrama requiere tiempo real en
el caso de videos en streaming o telefonía, si se requiere entrega fiable (FTP, correo
electrónico), bajo retardo, etc.

• Longitud del datagrama en bytes: Tamaño total del datagrama (suma de la cabe-
cera más los datos). Típicamente el valor es de 1500 bytes, como se verá más ade-
lante.

• Identificador, Flags y Desplazamiento: Estos campos son utilizados para la frag-


mentación y reensamblado de los datagramas, se explicará en la siguiente sección.

32 bits

Longitud de Tipo de
Versión Longitud del datagrama
la cabecera servicio

Identificador Flags Desplazamiento

Tiempo de vida Protocolo capa


Suma de comprobación
(TTL) superior

Dirección IP de origen

Dirección IP de destino

Opciones

Datos

Figura 5. Formato del datagrama IPv4

Principios de las Comunicaciones y Redes 9


2º Grado en Ingeniería de la Salud

• Tiempo de vida (TTL: Time To Live): Número de saltos restantes antes de descar-
tar el datagrama. Cada vez que un datagrama es procesado por un nodo de la red,
este valor se decrementa en una unidad, cuando el valor de este campo es 0, el da-
tagrama se descarta. Esto es útil para evitar que un datagrama esté eternamente cir-
culando por la red, lo que puede ocurrir por ejemplo en bucles de enrutamiento.

• Protocolo: Indica el protocolo del nivel superior al que IP debe entregar el data-
grama, como pueden puede ser TCP (6), UDP (17), ICMP (1), etc.

• Suma de comprobación de la cabecera: Se utiliza en los nodos de la red para de-


tectar errores de bit en el datagrama.

4.3. Fragmentación y reensamblado de datagramas en


IPv4.
En el nivel de enlace se establece el tamaño máximo de los mensajes que puede admitir
un determinado enlace, este tamaño se denomina MTU (Maximum Transmision Unit).
El MTU se expresa en bytes y en las redes de internet tiene típicamente el valor de 1500
bytes, que es el valor máximo permitido por el protocolo Ethernet. En la Figura 5, se
muestra la estructura típica mostrando los tamaños típicos de los paquetes para protocolos
Ethernet/TCP/IP que son los más habituales en internet.
1500 bytes
MTU

14 20 20 1460 bytes 4
bytes bytes bytes MSS bytes

Cabecera Cabecera Cabecera ETH


Carga útil del mensaje
Ethernet IP TCP CheckS

Figura 6. Esquema típico de un paquete en internet.

En ocasiones las aplicaciones de internet generan paquetes con un tamaño mayor que el
MTU, por lo que no se pueden enviar a través de la red. El protocolo IP permite fragmentar
los datagramas hasta el MTU, de manera que un datagrama se divide en varios que serán
reensamblados en el destino final.

Para realizar la fragmentación de datagramas se utilizan varios campos de la cabecera IP.


Los más importantes son:

Identificación: identifica el datagrama, todos los fragmentos procedentes de un


datagrama tendrán el mismo identificador.

Flag MF (More fragments): índica si quedan o no fragmentos por procesar, el valor de este
flag es 1 en todos para todos los fragmentos excepto para el último que vale 0.

Desplazamiento (Offset): Posición del fragmento en bytes en el datagrama original.

Por ejemplo, supongamos que tenemos por ejemplo un datagrama con un tamaño de 4000
bytes y el MTU es de 1500. En este caso, será necesario fragmentar el datagrama en 3
datagramas, dos de tamaño 1500 (de los cuales 20 corresponden a la cabecera IP y 1480
son los datos del datagrama IP) y uno de tamaño 1040 (20 de la cabecera y 1020 de los
datos que quedaban de procesar (3980 de carga útil original– 1480*2)).

Principios de las Comunicaciones y Redes 10


2º Grado en Ingeniería de la Salud

Cab.
Carga útil IP (3980 bytes)
IP

Cab. Cab
Datos IP (1480 bytes)
IP TCP

Cab. Cab
Datos IP (1480 bytes)
IP TCP

Cab. Cab
Datos IP (1020 bytes)
IP TCP

Figura 7. Fragmentación de un datagrama.

Los fragmentos tendrán la siguiente información en los campos de la cabecera IP descritos


anteriormente:

FRAGMENTO TAMAÑO DEL ID DESPLAZAMIENTO FLAG MF (MORE


FRAGMENTO FRAGMENTS)

Primer 1480 bytes en el campo Identificación = Desplazamiento 0 (Bytes se Indicador 1 (Hay más
Fragmento de datos del datagrama 777 insertan comenzando en el fragmentos)
IP byte 0)

Segundo 1480 bytes en el campo Identificación = Desplazamiento 185 (Bytes Indicador 1 (Hay más
fragmento de datos del datagrama 777 se insertan comenzando en fragmentos)
IP el byte 185*8 = 1480)

Tercer 1020 bytes en el campo Identificación = Desplazamiento 370 Indicador 0 (No hay más
fragmento de datos del datagrama 777 fragmentos)
IP

La fragmentación es un proceso que consume recursos en los dispositivos de red y aumenta


el tamaño total de bytes transferidos (en el ejemplo se han transferido 4040 bytes en vez
de 4000), por lo que en IPv6, se ha eliminado la posibilidad de fragmentar los datagramas.

4.4. Direccionamiento IPv4


El límite entre un equipo y en enlace físico que lo conecta a la red se denominan interfaz
de red. Típicamente un PC tendrá una o dos interfaces (ethernet cableado y wireless
802.11). Un router debe tener un mínimo de 2 interfaces. IP requiere que cada interfaz de
red tenga su propia dirección IP. En un router las distintas interfaces deben pertenecer a
subredes diferentes.

En IPv4 las direcciones IP están definidas por un número de 32 bits. Por tanto, el número
total de direcciones IPv4 es de 232 ≈ 4000 millones de direcciones.

Las direcciones IP suelen escribirse en notación decimal con puntos, para ello se dividen
los 32 bits en cuatro grupos de 8 bits (1 byte). Por tanto, en formato decimal cada uno de
los 4 bytes que componen la dirección IP tendrá un valor entre 0 y 255, por ejemplo.

223.1.1.1

En la Figura 7 se observan 7 PCs agrupados en tres grupos diferentes, cada uno de ellos
con una interfaz de red y su correspondiente dirección IP. En el centro de la figura hay un
router con 3 interfaces con una dirección IP para cada una de ellas. Cada uno de los 3
grupos de equipos conectados a una interfaz del router se denomina subred (también se
llama simplemente red). En la realidad los grupos de una subred suelen estar conectados
Principios de las Comunicaciones y Redes 11
2º Grado en Ingeniería de la Salud

a un switch que los conecta con el router, pero desde el punto del nivel de red los switches
son transparentes, ya que operan en el nivel 2 (enlace y no utilizan el direccionamiento
IP) por lo que no se representan aquí.

Figura 8. Redes y subredes

La forma en la que las direcciones IP se dividen en subredes es a través de las máscaras


de subred. La máscara de red es un número binario que, al igual que una dirección IPv4,
contiene 4 grupos de 8 bits, pero en este caso son una serie de 1 seguidos de ceros, por
ejemplo:

11111111.11111111.11111111.00000000

Esta dirección se suele expresar, al igual que las direcciones IP en formato decimal con
puntos. Por ejemplo, la dirección anterior sería:

255.255.255.0

Los unos se corresponden con los bits de la dirección IP que identifican la subred y los
ceros se corresponden con la parte de la dirección IP que identifica a la interfaz.

La máscara de red también puede expresarse en formato punto decimal junto a la dirección
IP, en la forma /X, siendo X el número bits utilizados para identificar a la red. A este
número también se le llama sufijo o notación CIDR. La máscara del ejemplo anterior
con este formato se escribiría como: /24

En los ejemplos anteriores, la dirección 223.1.1.X identifica la subred y los últimos 8 bits
(0-255) identifican las interfaces de la subred. La dirección IP de esta subred se escribiría
como 223.1.1.0/24 (la dirección que identifica una subred es la primera dirección
disponible del rango de IPs). En la figura 4 se muestran 3 subredes; la 223.1.1.0/24, la
223.1.2.0/24 y la 223.1.3.0/24. Como se explicó, puede observarse como cada interfaz
del router pertenece a una subred diferente.

Para profundizar en el tema del direccionamiento IPv4 se recomienda realizar los


problemas de direccionamiento IP que se proporcionan, en los que aparecen varios
ejemplos más complejos de direccionamiento y de división en subredes.

4.5. Direccionamiento con y sin clase


La estrategia que consiste en dividir las direcciones de red en una parte correspondiente a
la red y otra a los equipos de la subred se denomina enrutamiento entre dominios sin
clases CIDR: (Classless InterDomain Routing). CIDR permite que la parte que se
corresponde a cada una de las partes pueda tener cualquier longitud, utilizando lo que se
llama la técnica de la máscara de subred de longitud variable (VLSM Variable Length
Subnet Mask).

Principios de las Comunicaciones y Redes 12


2º Grado en Ingeniería de la Salud

Figura 9. CIDR

Antes de que apareciera el CIDR, la parte de la IP correspondiente a la red era fija y estaba
limitada por los 4 octetos, en lo que se llamaba esquema de direccionamiento con
clase. Así las redes podían dividirse solo en subredes de clase A con 24 bits para
direccionar equipos, de clase B con 16 bits, de clase C con 8 bits para los equipos y dos
clases adicionales para multidifusión y uso futuro, ver Figura 9.

Figura 10. Direccionamiento con clase

Esta forma de dividir las subredes es mucho menos eficiente que la CIDR. Por ejemplo,
una empresa de tamaño medio que necesite 500 direcciones IP, necesita adquirir un bloque
de direcciones de clase B (el bloque de clase C solo tiene 254 direcciones disponibles). Los
bloques de clase B tienen 65534 direcciones disponibles, pero solo se van a usar 500, por
lo que se están desperdiciando 65000 direcciones. Por otro lado, solo hay 65535 subredes
de clase B disponibles, por lo que estas se agotaron rápidamente.

La división en dos partes de la dirección IP sirve además para el enrutamiento dentro de


los routers. Las tablas de enrutamiento de un router no contienen todas las direcciones IP
del mundo si no que disponen de bloques de direcciones. Supongamos una tabla de reenvío
como la que se muestra en la Tabla 2. Los mensajes que se reciban en el router, cuya
dirección de destino comience por 11011001.01110001.11111110 se reenvían por el
enlace 1, los mensajes que cuya dirección de destino comience por 01111110.00100100,
se envían por el enlace 2 y así sucesivamente. En el caso de que se produzcan solapes,
por ejemplo, en el caso de la subred 126.36.0.0/16 y la subred 126.36.2.0/25, se utiliza
la regla de la coincidencia del prefijo más largo, se busca la entrada más larga de la tabla
con la que exista coincidencia y se reenvía el enlace a la interfaz de enlace asociado con el
prefijo más largo. En este caso si llegara un mensaje con destino 126.36.2.126

Principios de las Comunicaciones y Redes 13


2º Grado en Ingeniería de la Salud

(01111110.00100100.00000010.01111110) se enviaría por el enlace 1, y si se


recibiera un mensaje con dirección IP de destino 126.36.2.135
(01111110.00100100.00000010.10000111) se enviaría por el enlace 2.

Subred Máscara Rango de la dirección de destino enlace

217.113.254.0 255.255.255.0 11011001.01110001.11111110.******** 1

126.36.0.0 126.36.0.0 01111110.00100100.********.******** 2

56.124.201.0 255.255.255.240 00111000.01111100.11001001.0000**** 3

126.36.2.0 255.255.255.128 01111110.00100100.00000010.0******* 1

Otras 255.255.255.0 3

Tabla 2. Tabla de reenvío

Direcciones IPv4 reservadas

No todas las direcciones IP del rango 0.0.0.0 al 255.255.255.255 pueden ser utilizadas
para direccionamiento, algunas de estas direcciones están reservadas, se enumeran a
continuación algunas de las IPs reservadas.

• Direcciones con bits de equipo a 0, por ejemplo 192.16.3.0.

o Son utilizadas para identificas redes o subredes, por lo que no se pueden


utilizar para identificar interfaces de red. También se utilizan para especi-
ficar destinos en las tablas de enrutamiento

• Direcciones con todos los bits de red a 0, por ejemplo 0.0.0.5 Para una red de 24
bits.

o Se refiere a los equipos de la propia red sin saber su número, pero si su


clase.

• Direcciones con bits de equipo a 1, por ejemplo 192.168.3.255

o Se utilizan como direcciones de difusión de una red o subred.

o Sirven para enviar datagramas de difusión a una red o subred remota.

• La dirección 255.255.255.255 envía datagramas a todos los equipos de la red


propia y no es retransmitido por los routers.

• La dirección 0.0.0.0 es la dirección de los equipos antes de tener asignada una.

• Las direcciones en el rango 127.0.0.0 -127.255.255.255 se reservan para


loopback (generalmente para hacer pruebas).

Direcciones IP para redes privadas

Existen además direcciones IP que pueden ser utilizadas por las interfaces de red de los
equipos, pero solo en el ámbito de redes locales privadas, no pueden ser utilizadas ni
direccionadas desde el exterior de la subred, ya que los routers no encaminan los paquetes
con una de estas redes como origen o destino. Para dar acceso a internet a una red privada
es necesario utilizar NAT, que se estudiará más adelante en este tema. Los rangos de
direcciones privadas se detallan en la Tabla 3.
Principios de las Comunicaciones y Redes 14
2º Grado en Ingeniería de la Salud

CLASE RANGO DE DIRECCIONES

A 10.0.0.0 – 10.255.255.255

B 172.16.0.0 - 172.31.255.255

C 192.168.0.0 - 192.168.255.255

Tabla 3. Direcciones IP privadas.

4.6. DHCP
DHCP permite a un host obtener su dirección IP de manera dinámica. Esta dirección IP es
proporcionada por un servidor DHCP.

Imaginemos que un usuario que dispone de un equipo con un adaptador de red configurado
para adquirir la dirección IP de manera dinámica, que es lo más usual en los equipos
móviles y portátiles, accede a una institución que dispone de un servidor DHCP. Si el equipo
tiene permiso de acceso a la red, establecerá conexión con el servidor utilizando el
protocolo DHCP que le asignará de manera dinámica una dirección IP (entre otras cosas)
que le permitirá conectarse a internet.

Este mecanismo hace posible reutilizar direcciones, de forma que sólo las mantiene
mientras hay conexión, da soporte a usuarios móviles que quieren unirse a una red, etc.
Con ello se consigue la gestión automática de las direcciones y un ahorro de direcciones
IP.

El protocolo DHCP es un protocolo que opera típicamente en 4 etapas; descubrimiento,


oferta, solicitud y ACK.

• Descubrimiento (DHCPDISCOVER): Esta etapa tiene como objetivo “descubrir”


los servidores DHCP que existen en la red. Dado que el equipo no tiene forma de
saber la red a la que está conectado, envía un mensaje de difusión, es decir, utiliza
la IP de destino 255.255.255.255. Dado que el equipo cliente tampoco dispone de
IP, en el mensaje de descubrimiento su IP aparece como 0.0.0.0. El paquete que
se envía utiliza el puerto 67 a través de UDP.

• Oferta (DHCPOFFER): Cuando el servidor DHCP recibe un mensaje de


descubrimiento, busca en las direcciones libres disponibles, crea una entrada ARP
que consiste en la dirección MAC del host solicitante y la dirección IP ofertada, y
transmite la oferta. El mensaje de oferta se envía como unidifusión y dado que aún
no se dispone de IPs, se utiliza la dirección MAC del servidor como dirección de
origen y la dirección MAC del nivel de enlace del cliente como destino. (En algunos
casos, cuando están implicados routers entre el cliente DHCP y el servidor, los
mensajes son de difusión). En este caso se utiliza el protocolo UDP, puerto 68.

Este mensaje incluye la configuración inicial para el cliente, incluida la dirección


MAC del cliente, seguida de la dirección IP que el servidor está ofreciendo, la
máscara de subred, la duración de la concesión y la dirección IP del servidor DHCP
que realiza la oferta. Además de esta información el mensaje de oferta suele incluir
información adicional como la máscara de subred, la puerta de enlace
predeterminada, el servidor DNS, etc. La mayoría de los servidores DHCP también
permiten al administrador definir específicamente qué direcciones MAC de clientes
pueden ser atendidas y asignarles automáticamente la misma dirección IP cada
vez que se conecten.

Principios de las Comunicaciones y Redes 15


2º Grado en Ingeniería de la Salud

• Solicitud (DHCPREQUEST): Cuando el cliente recibe la oferta del servidor,


devuelve un mensaje UDP de solicitud. Este mensaje se utiliza para crear el
arrendamiento (o renovarlo si ya estaba credo) y sirve también como rechazo
implícito a cualquier otro servidor que pueda haber proporcionado al host una
oferta de enlace. Este mensaje de solicitud es de difusión, ya que se desea informar
a otros equipos de la red (como otros posibles servidores DHCP que hayan ofrecido
una dirección) la creación del arrendamiento.

• Reconocimiento (DHCPACK): Al recibir el mensaje solicitud, el servidor DHCP


que originó la oferta verifica la información de la concesión, crea una nueva entrada
ARP para la concesión del cliente y responde con un mensaje unicast de
reconocimiento. Este mensaje es un duplicado de la oferta, excepto por un cambio
en el campo de tipo de mensaje. Cuando el cliente recibe el mensaje de
reconocimiento, registra la información de configuración.

4.7. NAT
Con la proliferación de las redes domésticas y de oficina pequeña (Small Office Home Office
SOHO), se hizo necesario un mecanismo que flexibilizara la asignación de direcciones IP.
En caso contrario, sería necesario que el ISP proporcionara bloques de direcciones IP a
cada hogar o empresa pequeña, con el problema que supondría ampliar los equipos de la
red fuera de ese bloque, el consumo excesivo de direcciones IP y la dificultad para los
usuarios no expertos en la gestión de las direcciones.

Para solventar estos problemas, se ha popularizado la utilización de la traducción de


direcciones NAT (Network Address Translation).

NAT es un procedimiento que se implementa en los routers y que permite traducir


direcciones públicas en direcciones privadas, de forma que una o unas pocas direcciones
públicas gestionen un gran número de direcciones privadas.

Figura 11. Esquema de una red que implementa NAT

En la Figura 10 se muestra una red que implementa NAT. En esta red, todos los datagramas
que abandonan la red local tienen la misma dirección NAT IP: 138.76.29.7, con diferente
número de puerto de origen. Dentro de la red local, las IPs son privadas en el rango
10.0.0.0/24. Por tanto, las direcciones privadas tienen que ser traducidas a direcciones
públicas en el router.

Principios de las Comunicaciones y Redes 16


2º Grado en Ingeniería de la Salud

Existen diferentes formas de configurar un traductor NAT, se puede hacer de manera


manual, configurando de manera estática la traducción o de manera dinámica, de manera
que la traducción sea automática, que es lo más usual.

La traducción se hace de la siguiente manera.


• En los datagramas salientes, se reemplaza la dirección IP privada de origen con
su número de puerto, a la dirección IP pública con un nuevo número de puerto
que no sea bien conocido 1.

• En el router se almacenarán en su tabla de traducciones NAT los pares:

Dirección IP de origen, número de puerto de origen -> dirección IP pública, nuevo


número de puerto.

Los clientes/servidores remotos responderán a este datagrama usando la dirección IP


pública con su nuevo número de puerto como dirección de destino
• Cuando el router recibe un mensaje con destino a un equipo dentro de su red
NAT, consulta su tabla y hace la traducción inversa, reemplazando la dirección IP
pública con el nuevo número de puerto por la correspondiente dirección IP de pri-
vada, número de puerto almacenado en la tabla NAT.

Figura 12. Ejemplo de traducción NAT.

En la figura 4 se muestra un ejemplo de traducción NAT.


1. Se envía un datagrama con dirección IP de origen 10.0.0.1 (dirección privada) y
número de puerto 3345 y puerto de destino 128.119.40.186 número de puerto
80 (es un puerto que se corresponde al protocolo HTTP, se está haciendo una
consulta web)

2. El datagrama llega al router y se reemplaza el campo de dirección IP de origen


por la dirección IP pública del router (10.0.0.1 ->138.76.29.7), y el puerto de
origen se reemplaza por un nuevo número de puerto (3345->5001). Esta traduc-
ción se almacena en el router.

3. Los datagramas de respuesta (la página web solicitada) se envían a la dirección


IP/puerto traducidos, así el destino del mensaje de respuesta es: 138.76.29.7
5001.

1
El número de puerto es un campo utilizado en la capa de transporte para identificar procesos, es un campo de 16
bits, por lo que se pueden asignar un total de 65535 puertos. Existen números de serie, llamados bien conocidos,
que son utilizados típicamente por protocolos de red, que habrá que evitar en las traducciones NAT.
https://es.wikipedia.org/wiki/Anexo:Números_de_puertos_de_red.

Principios de las Comunicaciones y Redes 17


2º Grado en Ingeniería de la Salud

4. El mensaje llega al router que busca el par 138.76.29.7 5001 en su tabla y hace
la traducción inversa, volviendo al par IP/puerto original 10.0.0.1, 3345.

La traducción NAT presenta una serie de ventajas en las redes SOHO.

 No es necesario obtener un rango de direcciones del ISP: sólo una dirección IP para
todos los dispositivos.

 Es posible modificar las direcciones de los dispositivos en la red local sin notificarlo al
mundo exterior.

 Se puede cambiar de ISP sin cambiar las direcciones de la red local.

 Los dispositivos en la red local no son direccionables explícitamente ni visibles desde


el mundo exterior (es un plus de seguridad).

 El campo del número de puerto tiene 16 bits lo que permite establecer 60 000 cone-
xiones simultaneas con una única dirección IP WAN del router.

Aunque existen también algunas objeciones:

 Si se respeta la jerarquía de capas, los números de puerto deben usarse para direc-
cionar procesos no direccionar hosts.

 Los routers estás pensados para procesar paquetes sólo hasta la capa 3 y la modifi-
cación de los números de puerto pertenecen a la capa 4.

 Viola el enfoque terminal a terminal y los nodos intermedios no deberían modificar


los números de puerto ni las direcciones IP

 La carestía de direcciones IP debería resolverse utilizando IPv6.

4.7.1. El problema de NAT transversal


El principal problema de NAT tiene que ver con el hecho de que las direcciones IP que se
utilizan son privadas. Cuando un equipo dentro de la NAT es el que inicia una comunicación,
no existe mayores problemas ya que esta se desarrollaría tal y como se describe en el
ejemplo descrito. Pero, ¿Qué ocurrirá si es el un equipo del exterior el que quiere iniciar
una comunicación con un equipo dentro de la red NAT? No se pueden enviar datagramas
con direcciones privadas como destino y no existe ninguna entrada con traducción en la
tabla NAT del router para esa transacción por lo que la comunicación sería imposible. Esto
es lo que se llama el Problema de NAT transversal. Para solucionar este problema
existen principalmente tres soluciones.

Solución 1. Configurar estáticamente NAT para reenviar las peticiones de conexión


entrantes con un determinado puerto al servidor.

Por ejemplo ,puedo acceder a mi router y escribir a mano que siempre que se reciba un
mensaje con dirección de destino 123.76.29.7 para el puerto 2500, se reenvíe siempre
a la IP privada 10.0.0.1 puerto 25000

Solución 2: Utilizar el protocolo IGD (Internet Gateway Device) disponible en Universal


Plug and Play (UPnP). Este protocolo permite a los hosts dentro de una red NAT aprender
direcciones IP públicas (138.76.29.7), añadiendo o eliminando automáticamente mapeos
de puertos y a asignando tiempos de arrendamiento a los puertos mapeados.

Básicamente se automatiza del mapeado de puertos NAT estático. Este mecanismo es


utilizado por algunas aplicaciones de intercambio de archivos P2P. En las Figura 12 y Figura
13, se muestran las tablas del mapeo NAT y el realizado por UPnP en un router doméstico.

Principios de las Comunicaciones y Redes 18


2º Grado en Ingeniería de la Salud

Podéis tratar de conectaros a vuestro router (normalmente tienen la IP 192.168.1.1) y


buscar estas propiedades (no todos los routers muestran esta información).

Figura 13. Tabla de mapeo NAT de un router

Figura 14. Mapeo NAT realizado por UPnP.

Solución 3: Utilizar retransmisores. Este método es el usado por Skype. Cada cliente
dentro de NAT establece una conexión con un equipo externo a la NAT que hace de par
intermedio (retransmisor), en Skype se habla de super nodos. (Cualquier equipo que esté
fuera de NAT y no tenga firewall puede ser un supernodo Skype). Los retransmisores
conocen los nodos que están conectados a ellos. Por tanto, cuando un cliente quiere
establecer un contacto con uno equipo que está dentro de una red NAT, la petición le
llegará al supernodo de ese equipo, que hará de puente de los paquetes durante la
conexión. Una vez se ha establecido la comunicación entre los dos equipos, ya puede
realizarse una comunicación punto a punto.

4.8. Protocolo ICMP.


ICMP es el acrónimo de Internet Control Message Protocol. Este protocolo es utilizado
por los hosts y routers para intercambiar información acerca de la capa de red. Se utiliza
por ejemplo para el reporte de errores, para solicitudes de eco (usado por ping), etc.

En realidad, ICMP no pertenece jerárquicamente a la capa de red, está situado por encima
de la capa IP, ya que los mensajes los mensajes ICMP se transportan encapsulados dentro
de datagramas IP.

Los mensajes ICMP tienen dos campos, un campo que contiene el tipo de mensaje y otro
campo con un código. Se incluyen finalmente los primeros 8 bytes del datagrama IP que
ha causado el error. En la Tabla 4 se muestran algunos tipos y códigos de mensajes ICMP.

Principios de las Comunicaciones y Redes 19


2º Grado en Ingeniería de la Salud

Tabla 4. Tipos de mensajes ICMP.

Uno de los programas que utiliza ICMP es ping. Ping envía un mensaje ICMP de tipo 8 y
código 0 al equipo especificado solicitando una respuesta (Echo request), si el equipo al
que se hace ping está disponible responderá con un mensaje ICMP del mismo tipo (8) y
código (0) (Echo replay). En la práctica dedicada a LAN se estudiará con más detalle el
funcionamiento de ping.

Otra de las herramientas que utiliza ICMP es Traceroute. Traceroute permite obtener la
ruta que ha seguido un mensaje entre un equipo de origen y un destino.

Para obtener este camino, el equipo de origen envía una serie de solicitudes de eco al
destino.
• La primera solicitud tiene un TTL=1

• La primera solicitud tiene un TTL=2

• La primera solicitud tiene un TTL=3

De esta forma cuando el datagrama n-ésimo llega a router n-ésimo el router descarta el
datagrama y envía al origen un mensaje ICMP (tipo 11, código 0). Este mensaje de
respuesta incluye el nombre del router y su dirección IP. Cuando el mensaje de respuesta
llega al origen este obtiene la IP del equipo y el tiempo de ida y vuelta del mensaje.

Cuando el echo request llega al destino este responde con un echo replay correcto, por lo
que el equipo de origen sabe que se ha alcanzado el destino y da por concluida la ejecución
del comando traceroute.

Puedes probar a utilizar traceroute en tu equipo para probar su funcionamiento. Si tienes


un equipo Windows, puedes abrir una ventana de comandos (inicio->cmd) y escribir:

tracert nombre de dominio o tracert dirección IP.

Por ejemplo:

tracert google.com

En el caso de Linux el comando será:

traceroute nombre de dominio o traceroute dirección IP.

La salida del comando para el caso de Windows será la que se muestra en la Figura 14.
Pueden verse las direcciones IP de los diferentes nodos para los distintos saltos y el tiempo

Principios de las Comunicaciones y Redes 20


2º Grado en Ingeniería de la Salud

de respuesta para cada una de las solicitudes (los mensajes Echo Request se envían por
triplicado).

Figura 15. Resultado de ejecutar tracert en una ventana de comando de Windows.

También puedes abrir Wireshark y ver cómo se envían solicitudes echo request (tipo 8
código 0) con TTL creciente y se reciben mensajes indicando que el TTL se ha superado.

Figura 16. Captura de Wireshark resultado de ejecutar el comando tracert.

En el caso de traceroute para linux, en vez de solicitudes de echo ICMP se envían


segmentos UDP con un número de puerto poco probable y con TTL creciente (esto ocurre
por defecto, aunque se puede parametrizar el comando para que se utilice ICMP igual que
en Windows). En cualquier caso, el modo de funcionamiento es similar, los equipos
intermedios responden con un mensaje ICMP que indica que se ha alcanzado el TTL y el
host de destino responde en este caso con un mensaje ICMP tipo 3, código 3 que indica
que el puerto de destino es inalcanzable.

4.9. IPV6.
A finales de los años 90, el creciente número de equipos que necesitaban conectarse a
internet hizo que el espacio de direcciones de 32 bits empezara a agotarse. Así el
Engineering Task Force empezó a diseñar IPv6. Se aprovechó además este cambio para
introducir mejoras a IPv4 a partir de la experiencia acumulada con este protocolo.

Formato del datagrama IPv6

El formato del datagrama IPv6 se puede observar en la Figura 16 y en concreto los campos
de su cabecera se muestran en la Figura 17. Como puede verse en la figura, la estructura
de la cabecera es más sencilla que la del datagrama IPv4, ya que dispone únicamente de
8 campos frente a los 13 de IPv4. Los campos que aparecen en el mismo son los siguientes.
Principios de las Comunicaciones y Redes 21
2º Grado en Ingeniería de la Salud

• Direcciones IP de origen y destino, como se puede observar, en este caso la


longitud de las direcciones es de 128 bits, lo que proporciona un inmenso espacio
de direccionamiento.

• Versión (4 bits): que se corresponde ahora con la versión 6.

• Prioridad (4 bits): Identifica la prioridad entre los datagramas del flujo, permite
diferenciar los datagramas para los que un emisor solicita un tratamiento diferen-
ciado como puede ser un servicio de tiempo real o una cierta prioridad.

• Etiquetado de flujo (20 bits): Identifica los datagramas en el mismo flujo.


40
bytes

Cabecera Cabecera Cabecera


... Datos
Principal IPv6 adicional adicional

Figura 17. Estructura general de un datagrama IPv6

Figura 18. Formato de la cabecera de 40 bytes de un datagrama IPv6

• Longitud de carga (16 bits): indica el tamaño del datagrama IPv6 sin contar
con la cabecera principal, es decir incluye la carga útil del datagrama más las ca-
beceras adicionales.

• Siguiente cabecera (8 bits): identifica el tipo de cabecera adicional que sigue a


la cabecera principal IPv6. Puede ser al igual que en IPv4 la cabecera de TCP o
UDP o ser un campo de opciones adicional.

• Límite de saltos (8 bits): número de saltos restantes para ese datagrama, es el


equivalente al TTL de IPv4.

En el diseño de IPv6 se han tenido en cuenta una serie de mejoras respecto a IPv4 con el
objetivo de hacer la gestión de los datagramas más eficiente.

• Se ha eliminado completamente el checksum de forma que se reduce el tiempo de


procesamiento en cada salto

• Se ha eliminado el campo opciones de la cabecera esto permite que el tamaño de la


cabecera sea siempre el mismo y permite eliminar también el campo del tamaño de
Principios de las Comunicaciones y Redes 22
2º Grado en Ingeniería de la Salud

la cabecera. Las opciones en IPv6 se incluyen dentro de los datos y se gestionan de


manera diferente.

• No se permite la fragmentación de los datagramas, lo que permite un procesamiento


más rápido.

Además, IPv6 incorpora algunas novedades como una nueva versión de ICMP llamada
ICMPv6. ICMPv6 contiene tipos adicionales de mensajes como por ejemplo “Paquete de
datos demasiado grande e incluye un protocolo para la gestión de grupos de Internet
denominado IGMP (Internet Group Management Protocol) en la que se gestiona la manera
en la que un host se une o abandona a un grupo de multidifusión.

4.9.1. Transición de IPv4 a IPv6


El nivel de red involucra a cientos de millones de nodos repartidos por todo el mundo, por
lo que la transición desde el protocolo IPv4 a IPv6 no puede hacerse estableciendo un día
D y una hora H concretos. Se han establecido así en el RFC 4213 dos métodos de transición
que pueden utilizarse en el periodo de adaptación.

El primero de ellos se denomina pila dual. Este método implica que los nodos IPv6 son
capaces también de gestionar datagramas IPv4 y disponen de dos direcciones IP una
dirección IPv4 y una dirección IPv6.

El segundo método se denomina tunelización y consiste en encapsular los datagramas


IPv6 dentro de datagramas IPv4. En la Figura 18 se muestra un ejemplo de tunelización.
Los nodos A, B, E y F son nodos IPv6, pero los nodos intermedios C y D son IPv4, por lo
tanto, el nodo B, incluye dentro del campo de datos de un datagrama IPv4 el datagrama
IPv6 original y se lo envía al nodo C. al otro extremo del túnel, el nodo E detecta que
dentro del datagrama IPv4 hay un datagrama IPv6 y lo extrae, siguiendo el datagrama su
camino hacia el destino como IPv6.

Figura 19. Ejemplo de tunelización.

IPv6 aún está en periodo de implantación, y el uso de NAT ha ralentizado algo la velocidad
de implantación. En la página https://www.google.com/intl/en/ipv6/statistics.html puede
consultarse el estado de la adopción IPv6 a nivel mundial basándose en los usuarios que
acceden a Google desde IPv6. En enero de 2019 el porcentaje de es aproximadamente del
25%.

Principios de las Comunicaciones y Redes 23


2º Grado en Ingeniería de la Salud

Por países, puede verse que España está bastante atrasada con aproximadamente el 2.5%
de conexiones a través de IPv6 en enero de 2019.

5. Algoritmos de enrutamiento
Como se vio en la introducción, uno de los objetivos principales de la capa de red es
determinar las rutas que deben seguir los datagramas entre un host emisor y un host
receptor. Cuando desde un host se envía un mensaje con destino fuera de la LAN, este
mensaje va inicialmente al router que esté definido en la configuración de red como puerta
de enlace predeterminada o gateway. Desde este equipo, el mensaje es reenviado a través
de una serie de nodos en función de una ruta. Estas rutas han sido calculadas tratando de
minimizar algún tipo de coste y han sido escritas en las tablas de reenvío de los routers.

La formulación de los problemas de enrutamiento se realiza mediante grafos. Un grafo está


compuesto por un conjunto de nodos N y una serie de aristas E.

G = (N,E)

Principios de las Comunicaciones y Redes 24


2º Grado en Ingeniería de la Salud

Figura 20. Modelo de grafo.

En el caso del enrutamiento los nodos se corresponderán principalmente por routers.

Conjunto de routers: N = { u, v, w, x, y, z }

Las aristas se corresponden con una pareja de nodos que representan los enlaces de la
red:

Conjunto de enlaces: E = {(u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z)}

Estos enlaces tienen un costo, que puede representar distintos aspectos, la longitud del
enlace, la velocidad de transmisión, el coste monetario, etc. El coste de los enlaces se
representará como c(x1,x2), por ejemplo:

c(u,v) = 2, c(u,x) = 1, c(v,x) = 2

Así el coste de una ruta es la suma de las aristas a lo largo de una ruta c(x1,x2), c(x2,x3),…,
c(xn-1,xn).

De entre todas las rutas posibles entre dos nodos, habrá una que tendrá el coste mínimo.
Por ejemplo, en la Figura 19, entre el nodo u y el nodo z, la ruta de coste mínimo es la que
sigue el camino (u, x, y, z) y el coste de esa ruta será.

c(u,z) = c(u,x) + c(x,y) + c(y,z) = 1 + 1 + 2 = 4

5.1. Algoritmo de estado de enlaces (LS)


Estos algoritmos utilizan el algoritmo de Dijkstra y se basan en que la topología de la red
y los costes de todos los enlaces son conocidos por el algoritmo, o lo que es lo mismo, por
todos los nodos de la red. Esto se consigue haciendo que cada nodo difunda el estado de
los enlaces al resto de nodos de la red, con lo que al final de la ejecución del algoritmo
todos los nodos disponen de información completa e idéntica de la red.

Para un sistema de k nodos, la solución se obtiene después de k iteraciones.

Siguiendo la nomenclatura que se indica que en el libro de Kurose, llamaremos:


• D(v) al coste de la ruta de coste mínimo, desde el origen al destino v, en la iteración
actual.

• p(v) nodo anterior, a lo largo de la ruta de coste mínimo, entre el origen y el destino
v.

• N’ subconjunto de nodos en la iteración actual cuya ruta de costo mínimo se conoce


definitivamente.

El algoritmo consta de una etapa de inicialización y luego se ejecuta de forma iterativa.

Inicialmente se conocen los costos desde el origen a todos los nodos conectados
directamente. El costo a los nodos no conectados directamente se hace infinito.

Principios de las Comunicaciones y Redes 25


2º Grado en Ingeniería de la Salud

Se entra en el bucle, se localiza de entre los nodos que aún no pertenecen a N’, aquel cuyo
coste es menor y se añade al subconjunto de nodos N’. Teniendo en cuenta este nuevo
nodo se calculan de nuevo los valores de D(v) para cada vecino que aún no pertenezca a
N’ utilizando la fórmula:

D(v) = min(D(v), D(w) + c(w,v) )


Es decir, el costo hasta el vecino v, es el mínimo entre el coste que se tenía anteriormente
o la suma del costo de la ruta al nuevo nodo añadido (D(w)) más el costo en llegar de w
hasta v.

El bucle se ejecuta hasta que todos los nodos pertenecen a N’.

A continuación se muestra el pseudocódigo del algoritmo.

1 Inicialización:
2 N' = {u}
3 Para todos los nodos v
4 if (v es adyacente a u)
5 then D(v) = c(u,v)
6 else D(v) = ∞
7 Loop
9 encuentra w no perteneciente a N' tal que D(w) sea un mínimo
10 añadir w a N'
11 actualizar D(v) para cada vecino v de w que no esté en N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* nuevo coste a v es; o el antiguo coste a v o el coste del camino más corto a w
más el coste desde w a v */
15 Hasta todos los nodos en N'

Para facilitar la comprensión del algoritmo se recomienda consultar los problemas de


enrutamiento, en los que se proporcionan ejemplos resueltos explicando paso a paso la
ejecución del algoritmo.

El resultado de la ejecución del algoritmo LS por parte de un nodo, es que finalmente


conoce la ruta de coste mínimo a todos los nodos de la red. Si el algoritmo es ejecutado
por todos los nodos, finalmente todos los nodos conocen la ruta de costo mínimo al resto
de nodos y podrán completar sus tablas de reenvío.

Este algoritmo tiene el problema de que pueden surgir oscilaciones. Imaginemos un grupo
de routers como el de la Figura 20. En este caso se supone que el costo de los enlaces es
igual a la carga transportada por el enlace. al tráfico. Se considera además en este caso
que los costes no son simétricos, es decir el coste por ejemplo de C a B, no tiene porqué
ser el mismo que el coste desde B hasta C.

Principios de las Comunicaciones y Redes 26


2º Grado en Ingeniería de la Salud

Figura 21. Oscilaciones cuando se utiliza el algoritmo LS.

En el ejemplo se inyecta una carga con valor 1 a los nodos D y B y una carga e al nodo C.
El enrutamiento inicial se muestra en el caso en la Figura 20 a.

A continuación, el nodo C detecta que el costo en llegar hasta A a través de B es 1+e,


mientras que si lo hace a través de D el costo es 1. Así que se modifica el enrutamiento y
se determina que la solución es la que se muestra en Figura 20 b. En la siguiente ejecución
del algoritmo, D, C y B detectan una ruta de coste cero en sentido antihorario y modifican
la ruta en este sentido, se muestra en la Figura 20 c. En la siguiente ejecución se detecta
una ruta de coste cero en sentido horario y se vuelve a modificar la ruta.

Esto ocasiona que se produzcan oscilaciones continuamente. Una analogía para entender
lo que ocurre es que imaginemos que para ir de Burgos a Madrid se pueda ir por Aranda
de Duero o por Valladolid y que un guardia civil decidiera desviar todo el tráfico por una
carretera o por otra en función del tráfico en las mismas. Cuando se envíe todo el tráfico
por Aranda de Duero, se detectaría que no hay tráfico por Valladolid y se enviaría a todos
los coches por allí, lo que congestionaría esa vía, lo que ocasionaría que se enviara a todos
los coches por Valladolid y así sucesivamente.

5.2. Algoritmo de vector de distancias.


En el caso del algoritmo del vector de distancias, cada nodo de la red sólo dispone de la
información que le suministran sus vecinos en la red.

Este algoritmo está basado en la ecuación de Belman-Ford:

Dx(y) =minv{c(x,v)+Dv(y)}

Es decir, el coste de ir de x hasta y, es el mínimo de los costes de ir desde x hasta un


vecino, más el coste de ir desde ese vecino hasta y, aplicado esto a todos los vecinos.

Volviendo al ejemplo anterior, suponiendo que de Burgos a Madrid se pueda ir por


Valladolid, por Soria o por Aranda de Duero. El coste de ir de Burgos a Madrid, es el mínimo
de los costes:
- Burgos a Valladolid más la distancia de Valladolid a Madrid.

- Burgos a Aranda de Duero más la distancia de Aranda a Madrid.

- Burgos a Soria más la distancia de Soria a Madrid.

Suponiendo que los costes fueran proporcionales a la distancia, el algoritmo me daría que
el coste mínimo para ir de Burgos a Madrid sería a través de Aranda.

Cada nodo dispone de la siguiente información:

- Coste a cada vecino directamente conectado, c(x,v).

- Vector de distancias con la estimación de la distancia que hace el nodo x al resto


de nodos de la red. Dx= [Dx(y) para y perteneciente a N].

Principios de las Comunicaciones y Redes 27


2º Grado en Ingeniería de la Salud

- Los vectores de distancias de cada uno de sus vecinos Dv = [Dv(y) para nodo y
perteneciente a N].

El algoritmo se ejecuta de manera iterativa, asíncrona y distribuida en cada uno de los


nodos de la red. Los nodos recalculan su tabla de vectores de distancia cuando se produce
un cambio en el valor del coste del enlace local o cuando recibe un mensaje del vecino
anunciando un cambio en sus vectores de distancia. Si como resultado de este cálculo se
ha modificado el vector de distancias, se notificará a su vez a los vecinos. Este proceso se
repite hasta que se detecta que las tablas de vectores de distancia no se modifican.

En los problemas de enrutamiento se encontrarán ejemplos resueltos que utilizan el


algoritmo de vector de distancias.

El principal problema que aparece cuando se utiliza el algoritmo del vector de distancias
es lo que se denomina problema del conteo hasta infinito. Este problema aparece
cuando el coste de un enlace aumenta de forma abrupta o cuando se cae un enlace o se
elimina un nodo de la red. En estos casos las “malas noticias” se propagan de manera muy
lenta a través de la red. Para evitar este problema existen diversas como la llamada
“inversa envenenada”. La técnica de la inversa envenenada consiste en que los nodos
no informan (en realidad les dicen que el costo es infinito) a sus vecinos de las rutas a
otros destinos si esas rutas pasan por ellos mismos. Por ejemplo, en la Figura 21:

W X Y Z

Figura 22. Ejemplo de red para ilustrar el problema del conteo hasta infinito

En este caso X anunciará a W sus rutas a Y y a Z, pero no anunciará a Y las rutas a Z a


través de W. De la misma forma Y no anunciará rutas a X o a W a través de Z.

De esta forma, si por ejemplo se rompe el enlace entre X e Y el sistema no tratará de


enrutar desde X a Z a través de W o desde Y a W a través de Z.

En el documento anexo se encontrará otro ejemplo en el que se muestra como el aumento


del costo en un enlace de una red sencilla cuando se utiliza el algoritmo del estado de
enlaces hace que el algoritmo converja muy lentamente y cómo la aplicación de la inversa
envenenada puede solucionar este problema.

5.3. Enrutamiento jerárquico


Hasta ahora el desarrollo acerca de los algoritmos de enrutamiento que se ha realizado se
ha basado en sistemas idealizados. Se ha supuesto que todos los routers son idénticos y
que todos utilizan los mismos protocolos. En la realidad esto no es así y no puede serlo por
dos razones:

• Escala: En la realidad hay más de 600 millones de hosts. La sobrecarga en los


cálculos, la comunicación y el almacenamiento de la información en un conjunto
de equipos tan grande es inviable.

• Autonomía administrativa: En la realidad cada administrador de red puede querer


controlar el enrutamiento en su propia red, eligiendo el algoritmo de enrutamiento
que quiera, o haciendo accesibles o inaccesibles determinadas zonas de su
organización.

Principios de las Comunicaciones y Redes 28


2º Grado en Ingeniería de la Salud

Estos dos problemas pueden solucionarse agrupando los routers en lo que se denomina
Sistemas Autónomos (AS, Autonomous Systems). Los routers que forman un AS
están bajo el mismo control administrativo y ejecutan el mismo protocolo de enrutamiento.
Dado que estos protocolos son internos al sistema autónomo, se denominan “Protocolos
de enrutamiento interno del sistema autónomo” (intra-AS). Los protocolos internos
al AS conocen las rutas a todos los destinos dentro del sistema autónomo.

Para comunicar los AS entre sí hace falta que uno de los routers del AS se encargue de
enviar los mensajes al exterior del AS estos routers se denominan routers de pasarela
(o gateway routers).

Figura 23. Ejemplo varios sistemas autónomos.

En la Figura 22 se muestra un esquema de red en el que aparecen 3 Sistemas Autónomos


AS1, AS2 y AS3. Cada uno de estos AS puede ejecutar un algoritmo de enrutamiento
interno diferente. Se pueden ver también que existen varios routers de pasarela. Por
ejemplo, 3b comunica el AS3 con otras redes, 1c comunica el AS1 con el AS3, 1b comunica
el AS1 con el AS2, etc.

Cuando el destino de un mensaje es exterior a un AS, son necesarios, además de los


protocolos internos al sistema autónomo, algoritmos que sean capaces de enrutar los
mensajes entre varios sistemas autónomos, estos se denominan “protocolos de
enrutamiento entre sistemas autónomos” (inter-AS).

Los inter-AS se encargan de aprender qué destinos son alcanzables desde el AS y de


propagar la información de alcanzabilidad dentro del AS. En el ejemplo de la Figura 22, el
protocolo de enrutamiento entre sistemas autónomos se encargará de determinar qué AS
son alcanzables por ejemplo desde AS1, en este caso determinará que AS2 es alcanzable
a través de 1b y que AS3 es alcanzable a través de 1c.

Así las tablas de enrutamiento de los routers son configuradas en realidad por dos
algoritmos, los algoritmos inter-AS y los algoritmos intra-AS (Figura 23).

Figura 24. Configuración de las tablas de reenvío inter-AS, intra-AS.

Partiendo del ejemplo de la Figura 22, veamos un ejemplo de en qué consiste el trabajo
del enrutamiento inter-AS. Supongamos que el router 1d quiere enviar un mensaje a la
subred x, que es alcanzable a través del Sistema Autónomo AS3 (gateway 1c), pero no a

Principios de las Comunicaciones y Redes 29


2º Grado en Ingeniería de la Salud

través de AS2 (Figura 24a). Esta información de alcanzabilidad ha sido proporcionada por
el algoritmo inter-AS. Por otro lado, el protocolo inter-AS también propaga la información
de alcanzabilidad a todos los routers internos (1a, 1b, 1c y 1d). Al final de este proceso 1d
sabe que tiene que enviar el mensaje al router de pasarela 1c que es el que está conectado
al AS3. Por otro lado, 1d conoce las rutas de menor costo a todos los routers del AS1 a
partir del algoritmo intra-AS. Así combinando la información de los protocolos inter-AS e
intra-AS, el router 1d determina, que su interface I está en el camino de coste mínimo a x
e incluye en su tabla de enrutamiento la entrada (x,I)

a) b)

Figura 25. Enrutamiento inter-AS.

Supongamos ahora que la subred x es alcanzable desde AS3 y desde AS2 (Figura 24b).
Esta información se aprende también a través del protocolo inter-AS. En este caso, los
mensajes con destino a x pueden enviarse por dos interfaces de 1d diferentes. Para decidir
por cuál se enviará, se utiliza el enrutamiento de la patata caliente (Figura 25). Este
algoritmo consiste en, a partir de la información del algoritmo intra-AS, determinar el
router de pasarela con coste mínimo (desde el origen al router de pasarela) y enviar el
paquete a ese router.

Figura 26. Algoritmo de la patata caliente

5.4. Enrutamiento en Internet


Los algoritmos de enrutamiento vistos con anterioridad son la base de los algoritmos de
enrutamiento que se utilizan en internet hoy en día.

Dentro de los algoritmos de enrutamiento internos a los sistemas autónomos destacan los
protocolos: RIP (Routing Information Protocol) que es un algoritmo de vector de distancias,
OSPF (Open Shortest Path First) que es un protocolo de estado de enlaces e IGRP (Interior
Gateway Routing Protocol) que es un protocolo propietario de Cisco que no veremos en
este tema.

Como algoritmo de enrutamiento entre sistemas autónomos se utiliza BGP4 que es un


estándar de facto en internet.

Principios de las Comunicaciones y Redes 30


2º Grado en Ingeniería de la Salud

5.4.1. RIP
Es uno de los primeros algoritmos de enrutamiento internos que aún se utiliza
ampliamente. La extensión de este protocolo se debió a que estaba incluido en la
distribución de UNIX BSD en 1982.

RIP es un protocolo de vector de distancias que funciona de manera muy similar a lo ya


estudiado.

Como métrica de coste se utiliza el número de saltos con un máximo de 15 saltos, un


destino a una distancia mayor de 15 saltos se considera inalcanzable. Así la ruta más corta
desde un origen a un destino será aquella que requiera menos saltos.

Los intercambios entre vecinos de los vectores de distancias son realizados


aproximadamente cada 30 s mediante mensajes de respuesta RIP (denominados anuncios
RIP). Estos anuncios contienen una lista de hasta 25 subredes de destino del AS, así como
la distancia desde el emisor a estos destinos.

RIP implementa algunos mecanismos de recuperación ante fallos. Por ejemplo, si después
de 180 s un router RIP no recibe anuncios de un vecino, se considera que no se puede
alcanzar (o bien el router se ha caído/ o ha fallado el enlace). En ese caso se invalidan las
rutas a través de ese vecino y se propaga la información a sus vecinos, que a su vez
propagarán la información a sus vecinos, por lo que la información se propagará más o
menos rápidamente a toda la red.
RIP utiliza el mecanismo de la inversa envenenada para prevenir los bucles infinitos
(dado que el número de saltos máximo es 15 se da el valor de 16 al enlace que se quiere
envenenar).

Figura 27. Ejemplo RIP.

En la Figura 26 se muestra un ejemplo de cómo funciona RIP. Supongamos que


inicialmente la tabla de enrutamiento del router D es la que se muestra en la Figura 26 de
la izquierda. Desde D hasta la subred z la tabla de enrutamiento nos dice que hay 7 saltos.
Supongamos ahora que D recibe un anuncio RIP del router A que dice que A puede acceder
a z a través de C con 4 saltos. En ese momento D actualizará su tabla de enrutamiento.
Ahora la subred z es alcanzable a través de A con 5 saltos. D propagará esa nueva
información a sus vecinos.

5.4.2. OSPF
El acrónimo del protocolo OSPF se corresponde con (Open Shortest Path First). Open indica
que es un protocolo abierto cuyo código está disponible públicamente.

Este protocolo utiliza el algoritmo de estado de enlaces por lo que sus características
coinciden con las ya explicadas para este tipo de algoritmos.

Todos los nodos conocen la topología de la red y los costos de todos los enlaces del AS.
Con esta información, cada router ejecuta localmente el algoritmo Dijkstra y determina la
ruta más corta a todas las subredes desde él mismo. Esta información del enrutamiento se
envía por inundación a todos los nodos de la AS. La difusión de la información se realiza

Principios de las Comunicaciones y Redes 31


2º Grado en Ingeniería de la Salud

cuando hay un cambio en el estado de algún enlace o periódicamente, aunque el estado


de los enlaces no haya cambiado.

OSPF es un protocolo más reciente y avanzado que RIP por lo que incorpora funcionalidades
avanzadas:

- Seguridad: Existe la posibilidad de que los mensajes OSPF pueden ser


autentificados, esto previene que intrusiones maliciosas puedan introducir
información incorrecta en la red.

- Se permiten varias rutas de igual coste mientras que en RIP sólo se permitía
una. Cuando existen dos o más rutas con el mismo coste a un destino se puede
escoger el enlace por el que se enviarán los mensajes.

- Utiliza por defecto el ancho de banda de las interfaces como métrica para el
cálculo de los costes mínimos, aunque este costo puede ser modificado
manualmente por el administrador de la red.

- Ofrece soporte integrado para unidifusión y multidifusión, para ello se utiliza el


protocolo Multicast OSPF (MOSPF) que usa la misma base de datos de enlaces
OSPF con extensiones para el enrutamiento por multidifusión.

- En grandes dominios de enrutamiento permite definir jerarquías. Es posible


así dividir un Sistema Autónomo en distintas áreas y dos niveles de jerarquía:
área local y área troncal (backbone) (Figura 27).

Figura 28. Jerarquía OSPF

- Área local: En cada uno de los niveles de área local de la jerarquía se ejecuta el
algoritmo OSPF restringido al área. Así, los anuncios de estado de enlaces sólo se
difunden dentro de las áreas y cada nodo tiene información detallada de la topología
de su área. Dentro de las áreas existen routers de frontera de área que
“resumen” las distancias de su propia área y se la anuncian a los demás routers de
frontera.

- Área troncal o backbone: En el área troncal debe aparecer un router frontera de


cada una de las áreas, pueden aparecer además backbone routers que ejecutan el
enrutamiento OSPF limitado al backbone y routers frontera que sirven para
conectar con otros AS.

Principios de las Comunicaciones y Redes 32


2º Grado en Ingeniería de la Salud

5.4.3. BGP
Como sistema de enrutamiento para comunicar nodos que se encuentran en Sistemas
Autónomos diferentes se emplea actualmente la versión 4 del protocolo BGP (Border
Gateway Protocol). Los protocolos internos a los Sistemas Autónomos son independientes
entre sí, por lo que existen varios protocolos y el administrador del sistema puede escoger
cuál utilizar. Sin embargo, para conectar distintos sistemas autónomos es necesario utilizar
un único protocolo, por ello BGP4 se ha convertido en el protocolo estándar de facto en
internet para enrutamiento inter-dominio.

En BGP. Las parejas de routers intercambian entre sí mensajes TCP utilizando el puerto
179.

BGP es un protocolo bastante complejo, por lo que no se estudiará en este curso


únicamente conocer que dispone existen dos tipos de sesiones con dos objetivos:

- eBGP (external BGP): Se utiliza entre sistemas autónomos y tiene como objetivo
obtener información de alcanzabilidad de las subredes de los AS vecinos. Estos
destinos se expresarán mediante prefijos CIDR.

- iBGP (internal BGP): Se ejecuta en el interior de los sistemas autónomos y su


función es propagar la información de alcanzabilidad a todos los routers internos
del AS.

Estas dos sesiones se corresponden con lo ya visto en la sección 5.4 en la que se hablaba
de protocolos de enrutamiento inter-AS e intra-AS.

BGP permite además establecer políticas de enrutamiento. Estas políticas permiten que el
tráfico de la red evite atravesar ciertas zonas. Por ejemplo, podría impedir que el tráfico
de ciertos proveedores de servicios utilice los routers de otro ISP para enviar su tráfico.
También puede utilizarse para evitar que información sensible atraviese ASs de ciertos
países.

Principios de las Comunicaciones y Redes 33

También podría gustarte