Español English
Showing posts with label Network. Show all posts
Showing posts with label Network. Show all posts

Thursday, 6 June 2013

Diferentes tipos de redes para VirtualBox

La aplicación VirtualBox nos proporciona diferentes opciones para conectar las máquinas virtuales que hemos creado entre ellas o a diferentes redes. En esta entrada quiero mostraros las opciones que nos proporciona VirtualBox y que características y ventajas nos proporcionan.

Los tipos de conexión que hay disponibles en VirtualBox:
  • NAT (Network Address Translation).
  • Bridged.
  • Red interna.
  • Red sólo anfitrión.
Supongo que la mayoría estáis familiarizados con los dos primeros tipos de conexión, pero los otros dos os pueden resultar confusos. Por eso paso a explicar un poco que características tienen cada tipo y la forma de utilizarlas en el VirtualBox.

NAT:

El NAT (Network Address Translation) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que asignan mutuamente direcciones incompatibles. En este caso el router es el sistema anfitrión que hace el trabajo de traducción entre las dos redes (la privada de las máquinas virtuales y a la que está conectado el sistema anfitrión). 

VBoxManage modifyvm "Nombre Máquina Virtual" --natpf1 "<Nombre de la regla>,tcp|udp,<IP destino>,<Puerto de escucha>,<IP máquina virtual>,<Puerto de la máquina virtual>"

por ejemplo, vamos a crear una regla que nos permita conectarnos por SSH a la máquina virtual ArchLinux, con cualquier IP y desde cualquier IP. Para ello vamos a dejar en blanco el apartado de las IP.

VBoxManage modifyvm "ArchLinux" --natpf1 "ConexionSSH,tcp,,2222,,22"

Bridged:

El Puente conecta segmentos de red formando una sola subred. Para nosotros tenemos dos segmentos de red, uno es el que forman las máquinas virtuales y el otro es la red a la que está conectado el sistema anfitrión. 


VBoxManage modifyvm "Nombre Máquina Virtual" --nic1 bridged --bridgeadapter1 <Adaptador de red adaptador>

Utilizamos la máquina virtual ArchLinux para que se conecte a una red puente.

VBoxManage modifyvm "ArchLinux" --nic1 bridged --bridgeadapter1 eth0

Red interna:

La red interna es similar a la puente en que la máquina virtual se puede comunicar directamente con “el mundo exterior”. Sin embargo, el “el mundo exterior” está limitado a las otras máquinas virtuales en el mismo anfitrión que estén conectadas a la misma red interna. 

Para utilizar este tipo de conexión debemos tener un servidor DHCP primero, para ello ejecutamos la siguiente orden:

VBoxManage dhcpserver add --netname intnet --ip 192.168.2.100 --netmask 255.255.255.0 --lowerip 192.168.2.101 --upperip 192.168.2.254 --enable

Ahora debemos decirle a la máquina virtual que utilize la red que acabamos de crear. Para ello empleamos esta orden:

VBoxManage modifyvm "ArchLinux" --nic1 intnet

Red sólo-afitrión:

La red sólo−anfitrión es un híbrido entre la red puente y la res interna. Las máquinas virtuales puede
comunicarse entre si y además con el sistema anfitrión. 

Primero debemos activar un servidor DHCP, como en el caso anterior, y después cambiar el tipo de red en la máquina virtual como en la siguiente orden:

VBoxManage modifyvm "ArchLinux" --nic1 hostonly

Como siempre si alguien tiene alguna duda o quiere preguntar algo, que lo escriba en los comentarios y lo intentaré responder ;)

Tuesday, 26 January 2010

Conectarse a internet a través del portátil

En casa de mi novia por un mal entendido con el proveedor de internet no hay internet y estamos a la espera de que el proveedor lo solucione ya que era un error suyo. Por suerte una red inalámbrica de un vecino no estaba cifrada con lo cual pude acceder a internet desde el portátil. Una vez explicada la causa por la que no teníamos internet voy a explicar como he conseguido que el ordenador de sobremesa de mi novia tenga acceso a internet sin un dispositivo para las redes inalámbricas.

Resum: Portátil con wifi conectado al vecino y la torre sin wifi.

Me hice la siguiente pregunta ¿Puedo hacer que la torre se conecte a internet a través del portátil? La respuesta es sí. Si tienes instalada alguna distribución de GNU/Linux tanto en el portátil como en la torre. Supongo que no sería complicado hacer que una torre con windows también hiciese esto pero no es mi caso.

Como el portátil tiene dos interfaces de red, la inalámbrica y la entrada ethernet RJ45. No hay problema en que esté conectado a dos redes al mismo tiempo. La red inalámbrica es la siguiente: 192.168.1.0/24. Ahora nosotros vamos a crear una red para que se conecten los dos ordenadores que será la siguiente: 192.168.2.0/24.

Lo primero es conectar los dos ordenadores con un cable cruzado o también conocido como latiguillo. Una vez hecho esto abrimos una terminal en cada ordenador. En la torre ejecutamos el siguiente comando:
ifconfig eth0 192.168.2.2 netmask 255.255.255.0
éste comando nos da la ip 192.168.2.2 a la interfaz eth0. Ahora ejecutamos
route add default gw 192.168.2.1
éste comando le indica a la torre que por defecto las peticiones las ha de realizar a la ip indicada (el portátil).

La torre ya hace las peticiones al portátil para conectarse a internet, pero todavía no hemos acabado.Ahora en el portátil ejecutamos
ifconfig eth0 192.168.2.1 netmask 255.255.255.0
y después éste
echo "1" > /proc/sys/net/ipv4/ip_forward
éste último le dice al portátil que reenvíe todos los paquetes que le llegan.

Una vez llegados a este punto si queréis podéis ver como tanto el portátil como la torre contestan a los ping. Ahora mismo sólo se pueden comunicar entre ellos pero nosotros queremos que la torre tenga acceso fuera de la red que hemos creado. Para eso el portátil tiene que trabajar como si fuera un router NAT. Esto se hace de la siguiente forma. En el portátil ejecutamos.
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0.0.0.0/0 -j MASQUERADE
iptables -A INPUT -i wlan0 -p ICMP -j ACCEPT
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
iptables -A INPUT -i wlan0 -m state --state NEW, INVALID -j ACCEPT
iptables -A FORWARD -i wlan0 -m state --state NEW, INVALID -j ACCEPT
Con esto lo que conseguimos es que el portátil trabaje como un router NAT. En el man iptables podéis ver todas las posibilidades de éste fabuloso comando.

Ahora mismo la torre se puede conectar a internet pero no resuelve los DNS. Si queréis hacer la prueba podéis ejecutar en la torre
ping 216.239.59.191
Es la IP del servidor de blogspot.com.
Ahora sólo nos falta añadir las líneas que indican como se resuelven las peticiones DNS en nuestra torre. Para esto tenemos que editar el fichero /etc/resolv.conf. Añadimos las siguientes líneas al final
nameserver 208.67.222.222
nameserver 208.67.220.220
Estas IP son de los servidores DNS openDNS, podéis utilizar las que más os gusten. Yo he puesto estas porque forman parte de un desarrollo opensource.

Ahora una vez hecho esto, ENHORABUENA. Ya tienes acceso a internet desde la torre sin tener un dispositivo inalámbrico en ella.

Cualquier duda comentario.