enero 2012


Hace exactamente dos años escribí un post explicando cómo configurar un servidor NFS. Hoy voy a completar ese post explicando cómo configurar ese servicio para funcionar con IPv6.

1- Configuración del escenario:

He creado dos máquinas virtuales de Ubuntu con Virtualbox, una de ellas hará de servidor y la otra será el cliente. El servidor tiene la IPv4 192.168.2.1/24 y la IPv6 2001::1:1/64 mientras que el cliente tiene la IPv4 192.168.2.10/24 y la IPv6 2001::1:2/64.

Servidor y cliente NFS

Servidor y cliente NFS

Para que haya un enlace entre ellas he configurado una red interna en VirtualBox entre ellos. Para crear dicha conexión hay que ir a las propiedades de la máquina virtual y, en la sección de red, cambiar de NAT a Red Interna. Se le puede dar un nombre para distinguirla de otras redes, en mi caso la he llamado nfsIPv6, como muestro en la siguiente captura de pantalla:

Configuración de red interna

Configuración de red interna

2- Configuración del servidor

En la máquina virtual del servidor tengo dos interfaces de red: eth0 en modo NAT para conectarme a internet y poder instalar software o consultar manuales y eth1 para realizar la comunicación con el cliente en IPv6. Para asignar una dirección IPv6 al interfaz de red eth1 he utilizado el siguiente comando:

root@server:~# ifconfig eth1 inet6 add 2001::1:1/64

Instalación del servidor NFS:

root@server:~# apt-get install nfs-kernel-server nfs-common portmap

creación de las carpetas que voy a exportar:

root@server:~# mkdir /home/abian/test
root@server:~#mkdir /home/abian/test2
root@server:~#chown -R abian.abian /home/abian/test*

Edición del archivo /etc/exports:

/home/abian/test       2001::1:2(rw,sync,no_subtree_check)
/home/abian/test2    *(ro,root_squash,no_subtree_check)

Edición del archivo /etc/hosts.allow:

portmap:[2001::1:2]
nfs:[2001::1:2]

Edición del archivo /etc/hosts.deny:

ALL: PARANOID

Reinicio de los servicios con las nuevas configuraciones:

root@server:~# /etc/init.d/portmap restart
root@server:~# /etc/init.d/nfs-kernel-server restart

3- Configuración del cliente

En el cliente solo hay una interfaz de red. Para añadir una dirección de IPv6 utilizo el mismo comando que para el servidor:

root@linux:~# ifconfig eth1 inet6 add 2001::1:2/64

Montar la partición NFS con IPv6

root@linux:~# mount -t nfs [2001::1:1]:/home/abian/test /home/abian/nfs_folder

4- Consideraciones adicionales

En el archivo /etc/exports puse dos líneas. Eso quiere decir que estoy exportando dos directorios del servidor. El directorio /home/abian/test solo puede ser accedido desde la dirección IPv6 2001::1:2 pero el directorio /home/abian/test2 puede ser accedido desde cualquier dirección IP porque puse un “*”.

Lo bueno de esta configuración es que puedo utilizar el protocolo IPv4 para acceder a un directorio y el protocolo IPv6 para conectarme a otro como muestro en la siguiente captura de pantalla:

IPv4 e IPv6 son buenos amiguitos

IPv4 e IPv6 son buenos amiguitos

Espero que este post os haya gustado. Se lo dedico especialmente al Maño y a su asignatura de sistemas operativos. ¡Ya me invitarás a una cerveza cuando nos veamos! :-)

Últimamente se está hablando muchísimo de piratería, derechos de autor, libertad de expresión, control de Internet. Todos son temas muy interesantes con discusiones realmente apasionadas. Sin embargo, como los más catastrofistas dirían, es posible que Internet tal y como la conocemos en la actualidad cambie si se aprueban determinadas leyes.

Por ahora os dejo la captura de pantalla de Wikipedia del día 18 de enero. No se si este “blackout” dará resultado pero al menos es una forma de protesta sin precedentes. ¿Realmente los internautas podemos hacer algo para parar a los grandes gobiernos y corporaciones?

wikipedia el 18 de enero de 2012

wikipedia el 18 de enero de 2012

El otro día me tuve que enfrentar de nuevo a la pregunta de qué sistema de ficheros utilizar en un disco duro externo. Me encantaría utilizar ext4 por su robustez, el journaling, etc. Sin embargo, seguro que tendré problemas cuando intente acceder a información de este disco duro externo desde un ordenador que no sea el mío. Tampoco quería caer en la tentación de utilizar VFAT por sus conocidos problemas y limitaciones. A sí que al final opté por NTFS que me permite utilizar archivos de más de 4GB, tiene journaling, metadatos de archivos, etc. Muchas de las ventajas que me ofrece ext4 pero sabiendo que funcionará en casi todos los ordenas donde lo utilice.

No tuve ningún problema para crear la partición utilizando gparted y funciona perfectamente en ubuntu. Sin embargo, me sorprendió que no hubiera soporte nativo de escritura para NFTS en Mac Os X 10.6.8. Tras alguna búsqueda en google parece que muchos usuarios de Mac se decantan por utilizar: paragon software o NTFS-3G. Ambos tienen una licencia que ronda los $20.

Tenía más sentido que, ya que existe soporte de escritura para en NTFS para GNU/Linux, los chicos de Apple hubieran implementado un soporte nativo de escritura en NTFS para Mac, a sí que al final encontré una solución más barata sencilla en este blog.

La idea es que por defecto se montará la partición como solo lectura pero utilizando la consola se puede forzar a que la partición se monte también como lectrua/escritura. Solo hay que saber el nombre del volumen y la ruta de la partición (algo del estilo /dev/disk?s?).

Para averiguar esas dos cosas se puede utilizar los comandos:

ls /Volumes/

diskutil info /Volumes/Abian/ | grep “Device Node”

Luego solo hay que crear una carpeta donde se montará el dispositivo y ejecutar el comando para montar la partición. Para que no se me olvide me he hecho un pequeño script:

#/bin/sh
#desmontar el volumen
hdiutil eject /Volumes/Abian/
#crear la carpeta donde se montará la partición
sudo mkdir /Volumes/Abian/
#montar la partición con la opción de escritura
sudo mount_ntfs -o rw /dev/disk1s1 /Volumes/Abian/
#mostrar que se ha montado bien
mount | grep Abian

No hay que olvidar darle privilegios de ejecución con chmod +x script.sh

Tras ejecutar el script debería aparecer la línea:

/dev/disk1s1 on /Volumes/Abian (ntfs, local, noowners)

en lugar de:

/dev/disk1s1 on /Volumes/Abian (ntfs, local, nodev, nosuid, read-only, noowners)

Un saludo