Antes de responder eso, se viene la introducción.
Es la 1:40 am, un amigo me rompe las bolas para que probemos el Hamachi (cosa que hice en su momento cuando tenia windows) pero para no quedarme atras y decirle “Mira Gaby, yo tengo linux y en linux instalar algo es medio complicado (salvo que venga en los repositorios) por que puede ser que no tenga todo lo que necesite, y bla, bla” en vez de eso me puse a instalar Hamachi leyendo su README y siguiendo unos sencillisimos pasos (por suerte ya estaba compilado)
make install (instalo el Hamachi)
sudo /sbin/tuncfg (cargo el daemon, para algo que todavia no sabemos que es)
hamachi-init (lo inicio, esto me crea un carpeta con la configuración de Hamachi en mi Home)
hamachi start (lanzo el daemon de Hamachi)
hamachi login (cuando lo cargamos necesitamos loguearnos, por que por defecto estamos offline)
hamachi join el_nombre_de_la_red_de_mi_amigo luego ingreso el password
hamachi set-nick mi_nick (tengo que explicar esto?)
En Ubuntu en el menu Lugares, hay una opción que dice Conectar con el servidor.. hago click ahi, luego selecciono Compartido por Windows pongo la ip que me dio el Hamachi y listo

Eso me crea un enlace en el escritorio, hago doble click y supuestamente tendria que mostrarme las carpetas compartidas pero no lo hace. Tal vez estoy haciendo mal las cosas.
Entonces fue cuando pensé en leer el foro de Hamachi, de ahi me baje este GUI (Interfaz gráfica) hecho por uno de los tantos users de linux y de gnome.

Tuve un problema, ya que no tenia las imagenes de los botones pero funcionaba muy bien, me senti un poco frustrado por que esperaba un poco mas, ya que en modo texto podia hacer lo mismo, la unica ventaja era que tiene un menu contextual que permite hacer ping (no habia respuesta), permite conecciones vnc (mi amigo no tiene vnc) y permite hacer un browse (seguia sin ver nada). Ahora recuerdo que cuando lo probe sobre Windows, tampoco podia ver las carpetas compartidas, cuac !
Este post no tiene las intenciones de resolver nada (tal vez si, mi interés por aprender), sino que quiero hablar de TUN y TAP.
Que carajo es TUN Y TAP ?
Paseando por el README de hamachi encontre algo que me llamo la atención:
Hamachi requires TUN/TAP device driver to create and manage virtual
network interface. If you have /dev/net/tun file, you are all set.
Y buscando informacion encontre una aplicacion que se llama VTun (Tunel Virtual para los amigos).
Y que es VTun ?
VTun es la forma facil de crear Tuneles Virtuales a traves de redes TCP/IP con encriptación y compresión. Soporta los protocolos IP, PPP, SLIP, Ethernet y otros tipos de tuneles. VTun es facil y altamente configurable, puede ser usado para varias tareas de networking. Pero para instalar VTum se necesita los drivers TUN/TAP y entre otras cosas drivers PPP y pppd.
En el FAQ de VTum hay un lindo chiste geek, aqui esta en su version original:
I don’t like VTun. Where can I send complains ?
You can send them to /dev/null.
Ahora sigamos con TUN/TAP
TUN/TAP provee recepción y transmision de paquetes para programas del espacio-de-usuario. Puede ser visto como un simple dispositivo Punto a Punto o Ethernet, el cual en vez de recibir paquetes a traves de un medio fisico, los recibe desde programas del espacio-de-usuario y en vez de enviarlos por un medio fisico los escribe en el espacio de usuario.
Cuando un programa abre /dev/net/tun, el driver crea y registra el dispositivo tunX o tapX. Luego si lo cerramos, el driver automaticamente borra los dispositivos tunXX o tapXX y todas las rutas correspondientes.
Que es TUN ?
TUN es un dispositivo Punto a Punto virtual. El driver TUN fue desarrollado como soporte de bajo nivel para el kernel (?) para hacer IP tunneling. TUN provee a las aplicaciones de espacio-de-usuario 2 interfaces:
- /dev/tunX – un dispositivo de caracter
- tunX – una interfaz Punto a Punto virtual.
Las aplicaciones de espacio-de-usuario pueden escribir tramas IP a /dev/tunX y el kernel las recibe a traves de la interfaz tunX. Al mismo tiempo, cada trama que el kernel escribe en la interfaz tunX, podrán ser leidas por los programas de espacio-de-usuario a a traves de la interfaz /dev/tunX.
(Pensamiento del Traductor: por que carajo le di bola a mi amigo, ahora estaria durmiendo tranquilamente)
Que es TAP ?
TAP es un dispositivo Ethernet virtual. El driver TAP fue desarrollado como soporte de bajo nivel para el kernel (?) para Ethernet tunneling. Este provee a las aplicaciones del espacio-de-usuario 2 interfaces:
- /dev/tapX – un dispositivo de caracter
- tapX – una interfaz Ethernet virtual
Los programas del espacio-de-usuario pueden escribir las tramas Ethernet en /dev/tapX y el kernel las recibirá a traves de la interfaz tapX. De la misma forma cuando el kernel escribe en tapX, los programas de espacio-de-usuario recibiran las tramas por /dev/tapX.
Cual es la diferencia entre TUN y TAP ?
TUN trabaja con tramas IP y TAP trabaja con tramas Ethernet.
En Resumen (espero que pueda hacerlo): Hamachi necesita los drivers TUN/TAP para funcionar. Estos drivers crean interfaces de red virtuales (ubicadas en /dev/net/), diferentes de las clasicas interfaces físicas (eth0) las cuales necesitan de un tarjeta de red y cables. TUN simulará un dispositivo Punto a Punto y TAP un dispositivo Ethernet. Los paquetes que se envian y se reciben por los dispositivos TUN/TAP son enviados y recibidos por programas del espacio-de-usuario (Hamachi, VTun, etc), lo cual quiere decir que los paquetes son enviados y recibidos por aplicaciones externas al nucleo.
Esta información la saqué del FAQ de TUN/TAP, tambien del FAQ de VTun, fue de utilidad el texto escrito por un tal Maxim Krasnyansky y el README de Hamachi.
Son las 4:13 am estoy terminando de escribir este post, solo me queda decir 2 cosas: Gracias Linux por hacerme buscar y aprender y muchas gracias usuarios de linux por documentar y desarrollar cosas tan copadas, las cuales se pueden aprender y tocar debido al open-source.



Muy bueno, si señor.
Gracias.
Hola! … intente jugar por medio del Hamachi “Joey the passion” juego de YU-GI-OH! … cartas … pero este no me logra conectar … me puedo conectar para hablar pero cada vez que intento comenzar el juego sale como si no hubiera ningun usuario … solo queria saber si tu tienes una idea de lo que me sucede … te agradeceria una respuesta si lo sabes .. bye!
ximexime_89@hotmail.com
gracias señor… muy buen texto.
saludos cordiales!
gracias muy ilustrativo
Gracias, de verdad que me has aclarado una gran interrogante con esto del Tun y Tap.
lo del final era una ironia no? lo de la documentacion y todo eso. realmente no lei de cuando es este post y realmente no interesa, lo que interesa es que te tenia que agradecer x esta info q se entendio perfectamente (ojala los howto fueran asi) y agradecele a google x haber aparecido en la 1era pagina de busqueda de “tun/tap” jeje
auricom
wow de 1ero de julio de 2006 es el post!!!
hola!!! despues de 3 anios, lei este post, recien hoy se me cruza saber de tun… y tambien ” que carajo es el tun?”
la verdad sumamente interesante, ademas de agradecerle a dios google porque aparecio en la primera pagina.
gracias por la recoplilacion!!
un abrazo
muchas gracias tu texto es muy claro
gracias desde uruguay