04 - Principios Com y Redes - Apuntes Teoría - La Capa de Red
04 - Principios Com y Redes - Apuntes Teoría - La Capa de Red
04 - Principios Com y Redes - Apuntes Teoría - La Capa de Red
Ingeniería de la Salud
PRINCIPIOS DE LAS
COMUNICACIONES Y REDES
APUNTES DE TEORÍA
La capa de red
Docente:
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
Índice de contenidos
1. INTRODUCCIÓN.............................................................................. 4
2. FUNCIONES DE LA CAPA DE RED .................................................... 4
2.1. Reenvío y enrutamiento. ..................................................................... 4
4.7. NAT 16
4.7.1. El problema de NAT transversal ...................................................................... 18
4.8. Protocolo ICMP. ................................................................................. 19
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.
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.
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.
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.
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.
via pérd.)
¿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.
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.
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.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
IP, IPv4 e IPv6. Se comenzará este apartado estudiando el formato de los datagramas
IPv4.
• 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.
32 bits
Longitud de Tipo de
Versión Longitud del datagrama
la cabecera servicio
Dirección IP de origen
Dirección IP de destino
Opciones
Datos
• 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.
14 20 20 1460 bytes 4
bytes bytes bytes MSS bytes
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.
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.
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)).
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
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
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í.
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.
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.
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.
Otras 255.255.255.0 3
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 todos los bits de red a 0, por ejemplo 0.0.0.5 Para una red de 24
bits.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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
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.
Por ejemplo:
tracert google.com
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
de respuesta para cada una de las solicitudes (los mensajes Echo Request se envían por
triplicado).
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.
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.
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
• 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.
• 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.
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.
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.
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.
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%.
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.
G = (N,E)
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:
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á.
• p(v) nodo anterior, a lo largo de la ruta de coste mínimo, entre el origen y el destino
v.
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.
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:
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'
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.
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.
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.
Dx(y) =minv{c(x,v)+Dv(y)}
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.
- Los vectores de distancias de cada uno de sus vecinos Dv = [Dv(y) para nodo y
perteneciente a N].
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
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).
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).
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
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)
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.
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.
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 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).
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
OSPF es un protocolo más reciente y avanzado que RIP por lo que incorpora funcionalidades
avanzadas:
- 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.
- Á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.
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.
- 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.
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.