Cómo se Detectan los Vecinos en las Redes
Cómo se Detectan los Vecinos en las Redes

¿Cómo se Detectan los Vecinos en las Redes?

La detección de vecinos permite que el plano de control conozca la topología de la red, pero ¿cómo se obtiene información sobre los destinos alcanzables? En la figura 1, se muestra cómo el enrutador D conoce los hosts A, B y C.

Hay dos clases amplias de soluciones a este problema: reactivas y proactivas, que se tratarán en los siguientes artículos.

Figura 1 de red
Figura 1 de red

Aprendizaje reactivo

En la figura 1, supongamos que el host A se acaba de encender y la red solo utiliza el aprendizaje dinámico basado en el tráfico de datos transmitido. ¿Cómo puede el enrutador D conocer este host recién conectado? Una posibilidad para A es simplemente comenzar a enviar paquetes. Por ejemplo, si A está configurado manualmente para enviar todos los paquetes a un destino específico, no sabe cómo llegar a D. A debe enviar al menos un paquete para que D detecte su existencia. Al conocer a A, D puede almacenar en caché cualquier información relevante durante un tiempo, generalmente hasta que A parezca estar enviando tráfico. Si A no envía tráfico durante un tiempo, D puede eliminar la entrada para A en su caché local.

Detección de alcanzabilidad

Este proceso de detección de alcanzabilidad, basado en el flujo real de tráfico, es un descubrimiento reactivo. En términos de complejidad, el descubrimiento reactivo intercambia el flujo de tráfico óptimo con la información conocida y potencialmente transportada en el plano de control.

Tomará algún tiempo para que los mecanismos de descubrimiento reactivo funcionen, es decir, para que D conozca la existencia de A, una vez que el host comience a enviar paquetes. Por ejemplo, si el host F comienza a enviar tráfico hacia A en el momento en que A se enciende, el tráfico puede ser reenviado a través de la red a D, pero D no tendrá la información necesaria para reenviar el tráfico al enlace y, por lo tanto, a A. En el tiempo que transcurre entre el encendido del host A y la detección de su existencia, los paquetes se descartarán. Esta situación se verá como un error de red para F en el peor de los casos, y como un ligero retraso o una respuesta impredecible en toda la red en el mejor de los casos.

Las entradas almacenadas en caché deben desactivarse con el tiempo. Esto generalmente requiere un equilibrio de varios factores, incluido el tamaño del caché, la cantidad de información del dispositivo almacenada en caché y la frecuencia de uso de la entrada del caché durante un período de tiempo transcurrido.

El tiempo de espera de esta información almacenada en caché y cualquier riesgo de seguridad de cualquier otro dispositivo que utilice información obsoleta es la base de un ataque. Por ejemplo, si A mueve su conexión de D a E, la información que D ha aprendido sobre A permanecerá en el caché de D durante un tiempo. Durante este tiempo, si otro dispositivo se conecta a la red de D, puede hacerse pasar por A. Cuanto más tiempo sea válida la información almacenada en caché, mayor será la probabilidad de ejecutar este tipo de ataque.

Aprendizaje proactivo

Parte de la información de disponibilidad se puede aprender de antemano, lo que significa que el enrutador no tiene que esperar a que el host conectado comience a enviar tráfico para conocerlo. Esta posibilidad tiende a ser importante en entornos donde los hosts pueden ser muy móviles; por ejemplo, en la estructura de un centro de datos, donde las máquinas virtuales pueden moverse entre dispositivos físicos mientras mantienen su dirección u otra información de identificación, o en redes que admiten dispositivos inalámbricos, como teléfonos móviles. Aquí se describen cuatro formas ampliamente utilizadas de aprender proactivamente la información de disponibilidad:

  • Un protocolo de descubrimiento de vecinos se puede ejecutar entre los nodos de red de borde (o dispositivos) y los hosts conectados. La información obtenida de dicho protocolo de descubrimiento de vecinos puede utilizarse luego para introducir información de disponibilidad en el plano de control. Aunque los protocolos de descubrimiento de vecinos son ampliamente utilizados, la información obtenida a través de estos protocolos no se utiliza ampliamente para introducir información de disponibilidad en el plano de control.
  • La información de disponibilidad se puede obtener a través de la configuración del dispositivo. Casi todos los dispositivos de red (como los enrutadores) tendrán direcciones disponibles, configuradas o detectadas en todas las interfaces orientadas al host. Luego, los dispositivos de red pueden anunciar estas interfaces conectadas como destinos alcanzables. En esta situación, un destino alcanzable es un enlace (o cable), una red o una subred, no nodos individuales. Esta es la forma más común en que los enrutadores obtienen información de disponibilidad de nivel de red.
  • Los hosts pueden registrarse en un servicio de identificación. En algunos sistemas, un servicio (centralizado o distribuido) realiza un seguimiento de dónde están conectados los hosts, incluida información como el enrutador de salto inicial a través del cual debe enviarse el tráfico para llegar a ellos, la correspondencia de nombre a dirección, los servicios que cada host es capaz de proporcionar, los servicios que cada host está buscando y/o utilizando, y otra información. Los servicios de identificación son comunes, aunque no siempre son visibles para los ingenieros de red. Estos sistemas son muy comunes en entornos de alta movilidad, como redes inalámbricas orientadas al consumidor.
  • El plano de control puede obtener información del sistema de administración de direcciones, si está implementado en toda la red. Sin embargo, esta es una solución muy poco común. La mayor parte de la interacción entre el plano de control y los sistemas de administración de direcciones se realizará a través de la configuración local del dispositivo; el sistema de administración de direcciones asigna una dirección a la interfaz y el plano de control selecciona esta configuración de interfaz para anunciarla como un destino alcanzable.

Anuncio de alcanzabilidad y topología

Una vez que se ha aprendido la información sobre la topología y la disponibilidad, el plano de control debe difundir esta información en la red. Aunque el método utilizado para anunciar esta información depende en cierta medida del mecanismo utilizado para calcular las rutas sin bucles (ya que la información que se requiere y dónde se calculan las rutas sin bucles variará según la forma en que se calculan estas rutas), existen algunos problemas y soluciones generales que se aplicarán a todos los posibles sistemas. Los problemas principales son decidir cuándo anunciar la disponibilidad y la transmisión confiable de información en la red.

Decisión de cuándo anunciar la alcanzabilidad y la topología

¿Cuándo debe el plano de control anunciar información sobre la topología y la disponibilidad? La respuesta obvia puede ser “cuando se aprenda”, pero la respuesta obvia a menudo resulta ser incorrecta. Determinar cuándo anunciar la información en realidad implica un equilibrio cuidadoso entre el rendimiento óptimo de la red y la gestión de la cantidad de estado del plano de control. La figura 2 se utilizará para ilustrar.

Figura 2 de red
Figura 2 de red

Cuando se anuncia información sobre la disponibilidad y la topología

Suponga que los hosts A y F envían datos entre sí casi constantemente, pero B, G y H no envían tráfico en absoluto durante un período de tiempo prolongado. En esta situación, surgen dos preguntas obvias:

  • Si bien puede tener sentido para el enrutador C mantener información de disponibilidad para B, ¿por qué D y E deben mantener esta información?
  • ¿Por qué el enrutador E debe mantener información de disponibilidad para el host A?

En términos de complejidad, existe una compensación directa entre la cantidad de información que se transmite y se mantiene en el plano de control, y la capacidad de la red para recibir y reenviar tráfico rápidamente. Considerando la primera pregunta, por ejemplo, la compensación se ve como la capacidad de C para enviar tráfico desde B a G cuando lo recibe, en comparación con C manteniendo menos información en sus tablas de reenvío, pero necesitando obtener la información necesaria para reenviar el tráfico a través de algún mecanismo cuando se reciben paquetes que deben reencaminarse. Hay tres soluciones generales a este problema.

  • Plano de control proactivo: el plano de control puede detectar la topología de manera proactiva, calcular un conjunto de rutas sin bucles a través de la red y anunciar la información de disponibilidad.
  • Detección de topología proactiva con disponibilidad reactiva: el plano de control puede detectar la topología de manera proactiva y calcular un conjunto de rutas sin bucles. Sin embargo, el plano de control puede esperar a que la información de disponibilidad sea necesaria para reenviar paquetes antes de detectar y/o anunciar la disponibilidad.
  • Plano de control reactivo: el plano de control puede detectar la topología de manera reactiva, calcular un conjunto de rutas sin bucles a través de la red (generalmente para cada destino) y anunciar la información de disponibilidad.

Si C aprende, guarda y distribuye información de disponibilidad de manera proactiva, o si en esta red funciona un plano de control proactivo, los nuevos flujos de tráfico pueden reenviarse a través de la red sin ninguna demora. Si los dispositivos que se muestran funcionan con un plano de control reactivo, C lo hará:

  • Espere a que el primer paquete del flujo se dirija a G (por ejemplo)
  • Descubra la ruta a G mediante algún mecanismo
  • Establezca la ruta localmente
  • Comience a reenviar tráfico hacia G

El mismo proceso debe realizarse en D para el tráfico que se reenvía a A desde G y F (recuerde que los flujos casi siempre son bidireccionales). Mientras el plano de control descubre la ruta al destino, el tráfico (casi siempre) se descarta porque los dispositivos de red no tienen ninguna información de reenvío para ese destino alcanzable (desde el punto de vista del dispositivo de red, el destino alcanzable no existe). El tiempo necesario para descubrir y crear la información de reenvío correcta puede variar de unas pocas centésimas de segundo a varios segundos. Durante este tiempo, el host y las aplicaciones no sabrán si la conexión se establecerá finalmente o si el destino simplemente no está disponible.

Los planos de control se pueden dividir en general en:

  • Los sistemas proactivos anuncian información de disponibilidad en toda la red antes de que sea necesaria. En otras palabras, los planos de control proactivos almacenan información de disponibilidad para cada destino establecido en cada dispositivo de red, independientemente de si se utiliza esa información o no. Los sistemas proactivos aumentan la cantidad de estado que se transmite y se almacena en el nivel de control para hacer que la red sea más transparente para los hosts, o más bien, más óptima para los flujos a corto plazo y sensibles al tiempo.
  • Los sistemas reactivos esperan a que la información de reenvío sea necesaria para obtenerla, o más bien, reaccionan a los eventos en el plano de datos para crear información del plano de control. Los sistemas reactivos reducen la cantidad de estado que se transmite en el nivel de control, haciendo que la red sea menos sensible a las aplicaciones y menos óptima para los flujos a corto plazo o sensibles al tiempo.

Como todos los compromisos en la ingeniería de redes, las dos opciones descritas aquí no son exclusivas. Se puede implementar un plano de control que contenga algunos elementos proactivos y algunos reactivos. Por ejemplo, se puede construir un plano de control que tenga cantidades mínimas de información de disponibilidad que describa rutas bastante no óptimas a través de la red, pero que pueda descubrir rutas más óptimas si se detecta un flujo más largo o sensible a la calidad de servicio.