Un middlebox es un dispositivo de red de computadoras que transforma, inspecciona, filtra y manipula el tráfico con fines distintos al reenvío de paquetes . [1] Estas funciones extrañas han interferido con el rendimiento de la aplicación y han sido criticadas por violar "principios arquitectónicos importantes" como el principio de extremo a extremo . Ejemplos de cajas intermedias incluyen firewalls , traductores de direcciones de red (NAT), equilibradores de carga y cajas de inspección profunda de paquetes (DPI). [2]
La profesora de ciencias de la computación de UCLA, Lixia Zhang, acuñó el término caja intermedia en 1999. [1] [3]
Uso
Los middleboxes se implementan ampliamente en redes públicas y privadas. El hardware de middlebox dedicado se implementa ampliamente en redes empresariales para mejorar la seguridad y el rendimiento de la red ; sin embargo, incluso los enrutadores de redes domésticas a menudo tienen firewall integrado, NAT u otra funcionalidad de middlebox. [4] Un estudio de 2017 que contabiliza más de 1.000 implementaciones en sistemas autónomos , en ambas direcciones de los flujos de tráfico y en una amplia gama de redes, incluidos los operadores móviles y las redes de centros de datos. [2]
Ejemplos de
Los siguientes son ejemplos de middleboxes comúnmente implementados:
- Los firewalls filtran el tráfico según un conjunto de reglas de seguridad predefinidas definidas por un administrador de red. Los cortafuegos IP rechazan paquetes "basándose únicamente en los campos de la IP y los encabezados de transporte (p. Ej., No permiten el tráfico entrante a ciertos números de puerto , no permiten el tráfico a determinadas subredes, etc.)" [1] Otros tipos de cortafuegos pueden utilizar conjuntos de reglas más complejos, como aquellos que inspeccionan el tráfico en la capa de sesión o aplicación. [5]
- Los sistemas de detección de intrusos (IDS) monitorean el tráfico y recopilan datos para analizarlos fuera de línea en busca de anomalías de seguridad. A diferencia de los firewalls, los IDS no filtran paquetes en tiempo real, ya que son capaces de realizar inspecciones más complejas y deben decidir si aceptan o rechazan cada paquete a medida que llega. [6]
- Los traductores de direcciones de red (NAT) reemplazan las direcciones IP de origen y / o destino de los paquetes que los atraviesan. Por lo general, los NAT se implementan para permitir que varios hosts finales compartan una sola dirección IP : a los hosts "detrás" del NAT se les asigna una dirección IP privada y sus paquetes destinados a la Internet pública atraviesan un NAT, que reemplaza su dirección privada interna con una compartida. direccion publica. [7] Estos son ampliamente utilizados por los proveedores de redes celulares para administrar recursos escasos. [8]
- Los optimizadores de WAN mejoran el consumo de ancho de banda y la latencia percibida entre los puntos finales. Normalmente, los optimizadores WAN, que se implementan en grandes empresas, se implementan cerca de los puntos finales de comunicación de envío y recepción; los dispositivos luego se coordinan para almacenar en caché y comprimir el tráfico que atraviesa Internet. [9]
- Los balanceadores de carga brindan un punto de entrada a un servicio, pero reenvían los flujos de tráfico a uno o más hosts que realmente brindan el servicio.
- Las redes celulares utilizan cajas intermedias para garantizar que los escasos recursos de la red se utilicen de manera eficiente, así como para proteger los dispositivos de los clientes.
Críticas y desafíos
Los middleboxes han generado desafíos técnicos para el desarrollo de aplicaciones y han incurrido en "desprecio" y "consternación" en la comunidad de arquitectura de red [10] por violar el principio de extremo a extremo del diseño de sistemas informáticos. [11]
Interferencia de la aplicación
Algunas cajas intermedias interfieren con la funcionalidad de la aplicación, restringiendo o impidiendo que las aplicaciones del host final funcionen correctamente.
En particular, los traductores de direcciones de red (NAT) presentan un desafío en el sentido de que los dispositivos NAT dividen el tráfico destinado a una dirección IP pública entre varios receptores. Cuando las conexiones entre un host en Internet y un host detrás del NAT son iniciadas por el host detrás del NAT, el NAT aprende que el tráfico para esa conexión pertenece al host local. Por lo tanto, cuando el tráfico proveniente de Internet se destina a la dirección pública (compartida) en un puerto en particular , el NAT puede dirigir el tráfico al host apropiado. Sin embargo, las conexiones iniciadas por un host en Internet no ofrecen al NAT ninguna oportunidad de "aprender" a qué host interno pertenece la conexión. Además, es posible que el host interno ni siquiera conozca su propia dirección IP pública para anunciar a los clientes potenciales a qué dirección conectarse. Para resolver este problema, se han propuesto varios protocolos nuevos. [12] [13] [14]
Además, debido a que las implementaciones de middlebox por parte de operadores celulares como AT&T y T-Mobile son opacas, los desarrolladores de aplicaciones a menudo "desconocen las políticas de middlebox impuestas por los operadores", mientras que los operadores carecen de un conocimiento completo sobre el comportamiento y los requisitos de las aplicaciones. Por ejemplo, un operador estableció un " valor de tiempo de espera agresivo para reciclar rápidamente los recursos retenidos por las conexiones TCP inactivas en el firewall, causando inesperadamente interrupciones frecuentes en las conexiones de larga duración y ocasionalmente inactivas mantenidas por aplicaciones como el correo electrónico push y la mensajería instantánea ". . [8]
Otros desafíos comunes de aplicaciones inducidos por middlebox incluyen proxies web que sirven contenido "obsoleto" o desactualizado, [15] y firewalls que rechazan el tráfico en los puertos deseados. [dieciséis]
Diseño y extensibilidad de Internet
Una de las críticas a los middleboxes es que pueden limitar la elección de protocolos de transporte, limitando así los diseños de aplicaciones o servicios. Los middleboxes pueden filtrar o eliminar el tráfico que no se ajusta a los comportamientos esperados, por lo que se pueden filtrar protocolos nuevos o poco comunes o extensiones de protocolo. [17] Específicamente, debido a que las cajas intermedias hacen que los hosts en dominios de direcciones privadas no puedan "pasar identificadores que permitan que otros hosts se comuniquen con ellos" ha obstaculizado la propagación de protocolos más nuevos como el Protocolo de inicio de sesión (SIP), así como varios peer-to-peer sistemas. [10] [18] Esta reducción progresiva de la flexibilidad se ha descrito como osificación del protocolo . [19] [20]
Por el contrario, algunas cajas intermedias pueden ayudar en la implementación de protocolos proporcionando una traducción entre protocolos nuevos y antiguos. Por ejemplo, IPv6 se puede implementar en puntos finales públicos como balanceadores de carga , proxies u otras formas de NAT, con el tráfico de backend enrutado a través de IPv4 o IPv6.
Ver también
- Conectividad de un extremo a otro
- Establecimiento de conectividad interactiva (ICE)
- Utilidades de recorrido de sesión para NAT (STUN)
- Cruce con NAT de retransmisión (TURN)
- Conmutador multicapa
Referencias
- ^ a b c Brian Carpenter . "Middleboxes: taxonomía y problemas" . RFC 3234 .
- ^ a b Shan Huang; Steve Uhlig; Félix Cuadrado (2017). "Middleboxes en Internet: una perspectiva HTTP" . 2017 Conferencia de Análisis y Medición de Tráfico de Red (TMA) . págs. 1–9. doi : 10.23919 / TMA.2017.8002906 . ISBN 978-3-901882-95-1. S2CID 34925433 .
- ^ Kromhout, Wileen Wong (2 de febrero de 2012), "Lixia Zhang nombrada para la cátedra Jonathan B. Postel de Ciencias de la Computación de UCLA " , Sala de redacción de UCLA , archivado desde el original el 25 de abril de 2019 , consultado el 14 de junio de 2015
- ^ Ido Dubrawsky y Wes Noonan. "Cortafuegos y enrutadores de banda ancha" . Prensa CISCO . Consultado el 15 de julio de 2012 .
- ^ Magalhaes, Ricky. "La diferencia entre firewalls de capa de aplicación y de sesión" . Consultado el 17 de julio de 2012 .
- ^ "Comprensión de los sistemas de detección de intrusos" . Consultado el 17 de julio de 2012 .
- ^ K. Egevang y P. Francis. "El traductor de direcciones de red IP (NAT)" . RFC 1631 .
- ^ a b Zhaoguang Wang, Zhiyun Qian, Qiang Xu, Z. Morley Mao, Ming Zhang (agosto de 2011). "Una historia no contada de Middleboxes en redes celulares" (PDF) . Revisión de comunicación informática ACM SIGCOMM . Asociación para Maquinaria de Computación. 41 (4): 374–385. doi : 10.1145 / 2043164.2018479 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Poe, Robert. "¿Qué es la optimización WAN y cómo puede ayudarlo?" . Consultado el 17 de julio de 2012 .
- ^ a b Michael Walfish, Jeremy Stribling, Maxwell Krohn, Hari Balakrishnan, Robert Morris y Scott Shenker (2004). "Middleboxes ya no se considera dañino" (PDF) . 6º Simposio de Diseño e Implementación de Sistemas Operativos . Asociación USENIX: 215-230.CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Walfish; et al. (2004). "Middleboxes ya no se considera dañino" (PDF) . OSDI . Consultado el 17 de julio de 2012 .
- ^ J. Rosenberg; et al. "Utilidades de recorrido de sesión para NAT (STUN)" . RFC 5389 .
- ^ "NAT-PMP" . Consultado el 17 de julio de 2012 .
- ^ "Grupo de Trabajo de Protocolo de Control de Puertos" . Consultado el 17 de julio de 2012 .
- ^ "Base de conocimientos de BlueCoat: Proxy muestra contenido obsoleto" . Consultado el 17 de julio de 2012 .
- ^ "Uso de FaceTime e iMessage detrás de un firewall" . Consultado el 17 de julio de 2012 .
- ^ Honda; et al. (2011). "¿Todavía es posible extender TCP?" (PDF) . Conferencia de medición de Internet .
- ^ Bryan Ford; Pyda Srisuresh; Dan Kegel (2005). "Comunicación entre pares a través de traductores de direcciones de red" (PDF) . 2005 Conferencia Técnica Anual de USENIX . Asociación USENIX: 179-192. arXiv : cs / 0603074 . Bibcode : 2006cs ........ 3074F .
- ^ Papastergiou, Giorgos; Fairhurst, Gorry; Ros, David; Brunstrom, Anna; Grinnemo, Karl-Johan; Hurtig, Per; Khademi, Naeem; Tuxen, Michael; Welzl, Michael; Damjanovic, Dragana; Mangiante, Simone (2017). "Desosificación de la capa de transporte de Internet: una encuesta y perspectivas futuras" . Encuestas y tutoriales de comunicaciones de IEEE . 19 (1): 619–639. doi : 10.1109 / COMST.2016.2626780 . hdl : 2164/8317 . ISSN 1553-877X . S2CID 1846371 . Archivado (PDF) desde el original en 2017.
- ^ Corbet, Jonathan (29 de enero de 2018). "QUIC como solución a la osificación del protocolo" . lwn.net . Consultado el 14 de marzo de 2020 .