Slirp (a veces SLiRP en mayúscula ) es un programa de software que emula una conexión PPP , SLIP o CSLIP a Internet mediante una cuenta de shell basada en texto . Su propósito original se volvió obsoleto en gran medida a medida que las conexiones PPP de acceso telefónico dedicadas y el acceso a Internet de banda ancha se volvieron ampliamente disponibles y económicos. Luego encontró un uso adicional para conectar dispositivos móviles, como PDA , a través de sus puertos serie . Otro caso de uso significativo es la perforación de firewall / reenvío de puertos . [1][2] Un uso típico de Slirp crea una conexión de red de propósito general a través de unasesión SSH en la que el reenvío de puertos está restringido. Otro caso de uso es crear conectividad de red externa para contenedores sin privilegios .
Desarrollador (es) | Danny Gasparovski, Kelly Price (mantenedor) |
---|---|
Versión inicial | 30 de marzo de 1995 |
Lanzamiento estable | 1.0.17 / 8 de enero de 2006 |
Sistema operativo | Tipo Unix |
Plataforma | cuenta shell |
Tipo | Acceso telefónico |
Licencia | Licencia BSD modificada de 4 cláusulas similar a BSD |
Sitio web | slirp.sf.net |
Uso
Las cuentas de shell normalmente solo permiten el uso de software de línea de comandos o basado en texto , pero al iniciar sesión en una cuenta de shell y ejecutar Slirp en el servidor remoto, un usuario puede transformar su cuenta de shell en una conexión de red SLIP / PPP de propósito general, lo que le permite para ejecutar cualquier aplicación basada en TCP / IP , incluido el software de GUI estándar , como el anteriormente popular Netscape Navigator, en su computadora. Esto fue especialmente útil en la década de 1990 porque las cuentas shell simples eran menos costosas y / o estaban más disponibles que las cuentas SLIP / PPP completas. [3]
A mediados de la década de 1990, numerosas universidades proporcionaron cuentas shell de acceso telefónico (a sus profesores, personal y estudiantes). Estas conexiones de solo línea de comandos se volvieron más versátiles con SLIP / PPP, lo que permite el uso de aplicaciones arbitrarias basadas en TCP / IP. Se publicaron en línea muchas guías sobre el uso de conexiones de acceso telefónico universitario con Slirp (por ejemplo, [1] , [2] , [3] , [4] ). El uso de software de emulación de TCP / IP como Slirp y su competidor comercial TIA fue prohibido por algunos proveedores de cuentas shell, que creían que sus usuarios violaban sus términos de servicio o consumían demasiado ancho de banda . [4] [5]
Slirp también es útil para conectar PDA y otros dispositivos móviles a Internet: al conectar un dispositivo de este tipo a una computadora que ejecute Slirp, a través de un cable serie o USB , el dispositivo móvil puede conectarse a Internet. [6]
Limitaciones
A diferencia de una verdadera conexión SLIP / PPP, proporcionada por un servidor dedicado, una conexión Slirp no obedece estrictamente al principio de conectividad de un extremo a otro previsto por el conjunto de protocolos de Internet . El extremo remoto de la conexión, que se ejecuta en la cuenta de shell, no puede asignar una nueva dirección IP y enrutar el tráfico hacia ella. [7] Por lo tanto, la computadora local no puede aceptar conexiones entrantes arbitrarias, aunque Slirp puede usar el reenvío de puertos para aceptar tráfico entrante para puertos específicos .
Esta limitación es similar a la de la traducción de direcciones de red . Proporciona seguridad mejorada como efecto secundario , actuando efectivamente como un cortafuegos entre la computadora local e Internet. [7]
Estado actual
Slirp es un software gratuito con una licencia BSD modificada de 4 cláusulas similar a BSD por su autor original. Después de que el autor original dejó de mantenerlo, Kelly Price asumió el cargo de mantenedor. [8] No hubo lanzamientos de Kelly Price después de 2006. Los mantenedores de Debian se han hecho cargo de algunas tareas de mantenimiento, como modificar Slirp para que funcione correctamente en computadoras de 64 bits . [9] En 2019, [10] una más repositorio Slirp mantenido activamente fue utilizado por slirp4netns a proporciona conectividad de red para, contenedores sin raíces no privilegiados.
Influencia en otros proyectos
A pesar de ser en gran parte obsoleto, Slirp tuvo una gran influencia en las pilas de redes utilizadas en máquinas virtuales y otros entornos virtualizados. La práctica establecida de conectar las máquinas virtuales a la pila de red del host era utilizar los diversos mecanismos de inyección de paquetes . Los sockets sin procesar , que son uno de esos mecanismos, se utilizaron originalmente para ese propósito y, debido a muchos problemas y limitaciones, fueron reemplazados posteriormente por el dispositivo TAP .
La inyección de paquetes es una operación privilegiada que puede introducir una amenaza a la seguridad , algo que la introducción del dispositivo TAP resolvió solo parcialmente. La implementación de NAT derivada de Slirp trajo una solución a este problema de larga data. Se descubrió que Slirp tiene la implementación completa de NAPT como un código de espacio de usuario independiente , mientras que otros motores NAT generalmente están integrados en una pila de protocolos de red y / o no cooperan con el sistema operativo host cuando realizan PAT (use su propio puerto rangos y requieren inyección de paquetes). El proyecto QEMU adoptó las partes de código apropiadas del paquete Slirp y obtuvo el permiso de sus autores originales para volver a licenciarlo bajo la licencia BSD de 3 cláusulas. [11] Este cambio de licencia permitió que muchos otros proyectos de software libre adoptaran las partes Slirp proporcionadas por QEMU, lo que no era (y sigue siendo) posible con la base de código Slirp original debido a los problemas de compatibilidad de la licencia. Algunos de los adoptadores notables son los proyectos VDE y VirtualBox . A pesar de que el código derivado de Slirp fue muy criticado, [12] hasta la fecha no existe una implementación competitiva disponible.
Ver también
- Demonio PPP
- El Adaptador de Internet , un producto comercial que compitió con Slirp
Referencias
- ^ Rideau, François-René (2001), Mini-HOWTO de perforación de cortafuegos, Solución segura: perforación con ssh
- ^ JDIMPSON (2008), pppsshslirp: cree una sesión PPP a través de SSH en una máquina remota en la que no tiene root
- ↑ Jim Knoble (1 de agosto de 1996). "Casi Internet con SLiRP y PPP" . Diario de Linux . Consultado el 28 de agosto de 2009 .
- ^ Craig J. Miller (15 de marzo de 1995). "Intermind discusión de TIA en TENET" . Consultado el 31 de agosto de 2009 .
- ^ "Actualización de Internet para todos (sección 1.5)" . Fundación Frontera Electrónica . Septiembre de 1994 . Consultado el 31 de agosto de 2009 .
- ^ Precio de Kelly. "Página de inicio del proyecto de mantenimiento de Slirp" . Consultado el 31 de agosto de 2009 .
- ^ a b Glen Reesor (21 de febrero de 2001). "Mini-HOWTO del Emulador SLIP / PPP" . Consultado el 29 de agosto de 2009 .
- ^ Precio de Kelly. "Preguntas frecuentes de Slirp" . Consultado el 28 de agosto de 2009 .
- ^ "Slirp de registro de cambios de Debian" . Consultado el 28 de agosto de 2009 .
- ^ "Lanzamientos - contenedores-sin raíz / slirp4netns" . 2019-01-04.
- ^ "[Qemu-devel] Eliminar la cláusula publicitaria de la licencia slirp" .
- ^ "[Qemu-devel] Re: accidente relacionado con slirp" .
enlaces externos
- Proyecto de mantenimiento de Slirp , sitio oficial para versiones recientes de Slirp
- Última versión de Slirp (1.0.17) de Debian