¿Qué es el Protocolo de separación de localizador / identificador (LISP) en términos simples, con las terminologías en eso?

He estado trabajando como pasante de SE en Cisco trabajando en Cisco Research and Open Innovation durante los últimos 10 meses. ¡Trabajo para el equipo central de LISP en Cisco! Me alegra compartir mi concepto de LISP.

Hechos:

  • Un punto importante, LISP NO es un protocolo de enrutamiento.
  • La página Wiki para el protocolo LISP (Protocolo de separación del localizador / identificador – Wikipedia) no proporciona una imagen más amplia de la arquitectura. La idea inicial que obtienen los principiantes después de leer la página Wiki es que LISP es solo otro protocolo para resolver el problema de escalabilidad de la arquitectura de direccionamiento IP. LISP es mucho más que eso. En esta respuesta explico cómo el concepto LISP se puede asignar fácilmente a SDN, que está inspirado principalmente en un documento (enlace al documento) que muestra cómo LISP es un protocolo SDN.
  • LISP proporciona, en un sentido ingenuo, un mecanismo de túnel de red.
  • La forma más sencilla de pensar sobre el protocolo LISP es que esto solo introduce una capa virtual flexible sobre una red física rígida con separación completa. Esta parte también se explica en detalles más adelante en esta respuesta.

Origen:

Si me preguntas, LISP es una de las mejores instancias de algo que se usa para casos de uso completamente diferentes en lugar de para el que fue originalmente diseñado o creado. La idea de la separación del localizador y el identificador se originó con la idea de escalar el enrutamiento y la arquitectura de direccionamiento de Internet. El problema era que todas las computadoras conectadas a Internet tenían una dirección IP que era solo un número de 32 bits para ipv4. Eventualmente, obtuvimos el concepto de separar el espacio de la dirección IP del punto final de las computadoras y la IP del localizador (por ejemplo, para muchos casos, la IP de la puerta de enlace del enrutador). Existen varios enfoques para resolver este problema.

La propuesta original de LISP para resolver este problema fue que los puntos finales que pueden ser la computadora de escritorio o portátil o celular tendrán una identificación (que necesariamente no es IP, puede ser cualquier cosa de la familia de direcciones especificada por LISP ( LCAF es el término que desea) mira si estás interesado en los detalles)). Y luego el enrutador que enviará el tráfico a internet se llamará Egress Tunnel Router (ETR) que tendrá una dirección de SP. La dirección por la cual se refieren los puntos finales (computadoras portátiles, teléfonos celulares, etc.) se llama EID que significa Endpoint IDentifier y la dirección por la cual se hace referencia a los ETR del mundo exterior se llama RLOC que significa Router LOCator . El enrutador que recibe el paquete y envía el paquete adecuado al punto final apropiado se llama Ingress Tunnel Router (ITR). El enrutador que tiene la capacidad de hacer ambas cosas se llama XTR.

Detalles arquitectónicos simplificados:

Conceptualmente, lo que hace LISP es, virtualiza el espacio EID , crea una superposición encima de la capa subyacente. Y a pesar de que están separados el uno del otro, aún mantienen la ruteabilidad en su capa respectiva. Lo que significa que los puntos finales en la superposición pueden alcanzarse entre sí dado que tienen acceso y la capa subyacente se mantiene tal cual, lo que significa que algún enrutador aleatorio de la capa subyacente no puede enrutar el tráfico directamente a un punto final en la capa superpuesta y viceversa. Como ya te habrás dado cuenta, la superposición es un dominio virtual o espacio virtual.

Entonces, digamos, ¿qué sucede cuando dos puntos finales quieren hablar entre ellos? Digamos, EID A está detrás de RLOC X y EID B está detrás de RLOC Y. Cuando A quiere enviar el tráfico a B, A enviará el tráfico al enrutador del túnel, el enrutador del túnel necesita saber cómo llegar a B, ¿verdad? Aquí viene el sistema de mapeo.

El sistema de mapeo resuelve el problema mencionado anteriormente, dónde enviar el tráfico para enrutar realmente el paquete al EID adecuado. Entonces, piense en una base de datos que contiene información como para llegar a A, en realidad tiene que enviar el tráfico encapsulado LISP al enrutador con ip X. Esto es esencialmente lo que es un registro de mapeo . Por lo tanto, el sistema de mapeo contendrá toda la información del registro de mapeo, que es registros como los que se mencionan anteriormente en una base de datos.

Entonces, cuando A quiere hablar con B, envía el paquete al enrutador de túnel X, X pregunta al sistema de mapeo, ¿ dónde debo enviar el paquete para llegar realmente a B? Esto es esencialmente lo que es la solicitud de mapa. Cuando recibe la respuesta, encapsula el tráfico y simplemente lo reenvía al siguiente salto como si fuera un paquete de IP de Internet normal con la IP de origen del RLOC X y la IP de destino del RLOC Y. Cuando el XTR obtiene el paquete encapsulado en el puerto 4341 , XTR desencapsula el paquete y luego obtiene el paquete original con el EID de destino de B y luego envía el paquete a B.

Sin embargo, falta una cosa esencial: ¿cómo se crearán o completarán los registros de mapeo? Es por eso que los enrutadores de túnel deben tener una función llamada Registro de mapas . El registro del mapa es básicamente la forma de decir, de acuerdo, que para llegar a A tienes que llegar al enrutador de túnel X. Entonces, hay una imagen arriba con un resumen de todo el proceso. La imagen de arriba muestra un flujo de trabajo completo simplificado y conceptualmente tomado del documento LISP: ¿un documento de protocolo SDN en dirección sur?

La parte SDN y por qué es una buena idea:

Una de las partes principales de SDN es la separación del plano de control y el plano de datos y hacer que el plano de control esté lógicamente centralizado. Por qué eso es importante es una pregunta completamente diferente que merece una gran respuesta y ya creo que hay muchas preguntas con excelentes respuestas para eso. Y si no tiene idea de qué es SDN, es muy fácil de entender para cualquiera que esté familiarizado con la Arquitectura de Computadores. Históricamente, Internet fue diseñado para ser uno de los sistemas distribuidos más exitosos del mundo. Y por distribuido me refería esencialmente al hecho de que, para acceder a Quora, su enrutador doméstico no tenía que saber nada más que el hecho de que tenía que reenviar el paquete al siguiente salto en la red SP. El problema con eso es que no hay un control centralizado. No existe un lugar en el que realice algunos cambios y las cosas cambien mágicamente en toda la red de manera eficiente o muy pronto. Entonces, más tarde, surgió la idea de que el enrutador era solo un agente de reenvío y un sistema centralizado desde el cual los dispositivos de reenvío pueden ser programadores, y ahora se conoce como SDN.

La parte SDN del protocolo LISP arquitectónicamente viene con la idea del sistema de mapeo centralizado. El sistema de mapeo, como ya habrá notado, controla dónde se reenvía el paquete. El sistema de mapeo nos brinda una forma de cambiar completamente la red superpuesta del controlador y controlar todos los aspectos de la misma. Por lo tanto, el sistema de mapeo es esencialmente el plano de control y los xtrs son efectivamente solo un agente de reenvío que se configura según sea necesario desde el sistema de mapeo o sistema de control o plano de control centralizado lógicamente. ¿Ver? Hemos desacoplado efectivamente el plano de control y el plano de datos. Entonces, tenemos SDN!

Uno de los casos de uso más importantes para LISP es la infraestructura de redes en la nube. En la nube, todos los servidores se virtualizan mediante máquinas virtuales o contenedores. Se crean, destruyen o mueven bajo demanda. Es posible que de repente se necesiten para ser transferidos a otro centro de datos ubicado en el otro lado del globo o pueden moverse dentro del mismo centro de datos de un rack a otro que son completamente heterogéneos en infraestructura y pueden tener un tipo físico completamente diferente. soporte de red. En la red tradicional, deberá aprovisionar la VM, esperar a que DHCP actúe y que las VM obtengan IP y, finalmente, propagar esta información actualizada a través de la red. Y LISP, debido a su arquitectura basada en extracción y sistema de mapeo centralizado, es un protocolo muy limpio para resolver este problema sin necesidad explícita de configuración estática. Además, LISP es un protocolo muy limpio para implementar redes superpuestas que lo hace valioso para el aprovisionamiento de redes en la nube.

Algunas referencias para lecturas adicionales:

  1. LISP: un protocolo SDN en dirección sur: este documento muestra cómo LISP es un protocolo SDN.
  2. Documentos IETF LISP

PD: ¡Gracias a mis amigos por la prueba de lectura! ¡Especialmente mis colegas Martin y Alberto!

More Interesting

¿Cuáles son los desafíos de Internet de las cosas para la informática teórica?

Computación de alto rendimiento: ¿Cuáles son las principales diferencias en las clases de problemas que pueden acelerarse de manera efectiva utilizando GPGPU (por ejemplo, CUDA), multiprocesamiento simétrico (por ejemplo, OpenMP) y paso de mensajes (por ejemplo, MPI) respectivamente?

¿Es posible que un estudiante con una disciplina que no sea informática con un CGPA de 5 sobre 10 haga una maestría en informática en una buena universidad extranjera?

¿Cuáles son las buenas nuevas empresas en Chandigarh en el campo de la informática y la informática?

¿Qué es .ASP?

¿Cuáles son algunos buenos recursos para aprender sobre la optimización distribuida?

¿Es buena la sobre optimización en la investigación en informática?

Gráficos por computadora: ¿cómo funciona Matchmoving?

¿Cuáles son algunos buenos temas de investigación en minería de datos?

¿Qué opinas sobre la computadora cuántica D-Wave 2?

Estoy haciendo un gran proyecto escolar sobre visión por computadora y robótica. ¿Cuáles son algunos libros no técnicos que podría leer sobre estas áreas temáticas?

Cómo aumentar la posibilidad de que mi algoritmo genético alcance el verdadero óptimo global en un 99% en lugar de solo el 65% de las corridas

¿Cuál es el propósito de las carpetas ocultas $ recycle.bin y de datos del programa en la unidad C?

¿Qué problemas de visión por computadora son importantes para un equipo de mapas?

En términos simples, ¿cómo funciona el algoritmo de hash perfecto "comprimir, hash y desplazar (CHD)"?