Multihoming es la práctica de conectar un host o una red informática a más de una red. Esto se puede hacer para aumentar la confiabilidad o el rendimiento.
Una red típica de host o de usuario final está conectada a una sola red. Conectarse a múltiples redes puede aumentar la confiabilidad porque si una conexión falla, los paquetes aún se pueden enrutar a través de la conexión restante. Conectarse a múltiples redes también puede mejorar el rendimiento porque los datos se pueden transmitir y recibir a través de múltiples conexiones simultáneamente multiplicando el rendimiento y, dependiendo del destino, puede ser más eficiente enrutar a través de una red u otra.
Hay varias formas diferentes de realizar multihoming.
Un único host puede estar conectado a varias redes. Por ejemplo, un teléfono móvil podría estar conectado simultáneamente a una red WiFi y a una red 3G , y una computadora de escritorio podría estar conectada tanto a una red doméstica como a una VPN . A un host multitarjeta generalmente se le asignan varias direcciones, una por red conectada.
En la red multihoming, [1] [2] una red está conectada a múltiples proveedores y utiliza su propio rango de direcciones (generalmente de un rango de proveedor independiente (PI)). Los enrutadores de borde de la red se comunican con los proveedores mediante un protocolo de enrutamiento dinámico , generalmente BGP , que anuncia el rango de direcciones de la red a todos los proveedores. Si uno de los enlaces falla, el protocolo de enrutamiento dinámico reconoce el error y reconfigura sus tablas de enrutamiento para utilizar los enlaces restantes, de forma transparente para los hosts.
La red multihoming es costosa ya que requiere el uso de un espacio de direcciones aceptado por todos los proveedores, un número público de Sistema Autónomo (AS) y un protocolo de enrutamiento dinámico. Dado que el espacio de direcciones multihomed no se puede agregar, esto provoca el crecimiento de la tabla de enrutamiento global. [3]
En este enfoque, la red está conectada a múltiples proveedores y se le asignan múltiples rangos de direcciones, uno para cada proveedor. A los hosts se les asignan varias direcciones, una para cada proveedor. [4]
El multihoming con múltiples direcciones es más barato que el multihoming de red y se puede utilizar sin ninguna cooperación de los proveedores (por ejemplo, en una red doméstica), pero requiere tecnología adicional para realizar el enrutamiento: [5]
Cuando se utiliza multihoming para mejorar la confiabilidad, se debe tener cuidado de eliminar cualquier punto único de falla (SPOF):
Al aumentar la cantidad de interfaces y enlaces que se utilizan y hacer que el enrutamiento sea menos determinista, el multihoming complica la administración de la red [ cita necesaria ] .
La red multihoming es la técnica dominante para IPv4. Esto requiere que una red tenga su propio rango de direcciones IP públicas y un número AS público.
Si bien se ha implementado multihoming con múltiples direcciones para IPv4, [6] generalmente no se usa, ya que las implementaciones de host no manejan bien múltiples direcciones por interfaz, lo que requiere el uso de "interfaces virtuales". [7] También es posible implementar multihoming para IPv4 utilizando múltiples puertas de enlace NAT . [8]
En IPv6 se pueden utilizar tanto redes multihoming como multihoming con múltiples direcciones.
El espacio de direcciones independiente del proveedor (PI) está disponible en IPv6. [9] Esta técnica tiene la ventaja de funcionar como IPv4, admitir el equilibrio del tráfico entre múltiples proveedores y mantener las sesiones TCP y UDP existentes mediante cortes. Los críticos dicen que el mayor tamaño de las tablas de enrutamiento necesarias para manejar el multihoming de esta manera abrumará al hardware de enrutador actual. Los defensores dicen que el nuevo hardware podrá soportar el aumento debido a que la memoria es más barata, cuyo precio baja según la ley de Moore . Sus defensores también dicen que esta es la única solución viable en este momento, y la filosofía de cuanto peor es mejor respalda la idea de que es mejor implementar una solución imperfecta ahora que una solución perfecta cuando ya sea demasiado tarde.
Debido a que muchos ISP filtran los anuncios de ruta con prefijos pequeños, esto generalmente requerirá una gran asignación de IP "del tamaño de un ISP", como /32, para garantizar la accesibilidad global. El uso de prefijos tan grandes es un uso ineficiente del espacio de direcciones IPv6; sólo hay alrededor de 4 mil millones de prefijos /32. Sin embargo, desde una perspectiva pragmática, asignar un /32 equivale en costo de espacio de direcciones global a asignar una única dirección IPv4, y esto puede ser aceptable si, como parece probable en el futuro previsible, se puede numerar el número de sitios multihomed. sólo en millones, a diferencia de los muchos miles de millones de puntos finales no multihomed que se prevé que comprendan la gran mayoría de los puntos finales IPv6. [ cita necesaria ] Algunos registros regionales de Internet (RIR), como RIPE, han comenzado a asignar /48 de un prefijo específico para este propósito. RIPE asigna espacios de direcciones IPv6 independientes del proveedor /48 o menos desde 2001:0678::/29.
Se ha implementado multihoming con múltiples direcciones para IPv6. [6] [10] Para el tráfico saliente, esto requiere soporte en el host, ya sea independiente del protocolo ( Multipath TCP , SCTP , QUIC , etc.) o específico de IPv6 (por ejemplo, SHIM6 ).