Introducción a IPv6

textos y apuntesEl siguiente documento es una recopilación en un archivo único de la Introducción a IPv6 que di el curso pasado a mis alumnos del módulo de Redes de Área Local (Ciclo Formativo de Sistemas Microinformáticos y Redes). Se trata de una introducción básica al nuevo espacio de direccionamiento del protocolo, unas notas sobre la forma de empezar a trabajar con él en windows y en Linux, una práctica sobre la forma de hacer un túnel desde Linux (que ya había dejado por aquí) y algún apunte sobre el estado de implantación en nuestro país que puedes ampliar aquí o aquí. Ahí queda por si a alguien le viene bien:

Descargar “Introducción a IPv6”

CLI (Command Line Interface) en Routers y Switches CISCO

textos y apuntesEl siguiente documento es una recopilación en un archivo único de los apuntes que di a lo largo de todo el curso pasado a mis alumnos del módulo de Redes de Área Local (Ciclo Formativo de Sistemas Microinformáticos y Redes) sobre configuración y administración de routers y switches de CISCO usando el Command Line Interface o CLI. Abarca desde una configuración básica de los mismos hasta configuración de protocolos de rutado dinámico, creación de VLANs y algunas nociones muy básicas de seguridad. Ahí queda por si a alguien le viene bien:

Descargar “CLI en Routers y Switches Cisco”

Creando un túnel IPv6 desde Linux

IPV6 El pasado 3 de febrero la IANA asignó los últimos bloques de direcciones IP de la versión 4 disponibles. Parecía una broma pero, finalmente, las casi 4300 millones de direcciones de IPv4 se han agotado y ahora toca, por fin, ponerse las pilas en serio con IPv6. De hecho y para que no nos durmamos en los laureles, el próximo día 8 de Junio se “celebrará” el World IPv6 Day y durante 24 horas algunos de los grandes de Internet (Yahoo!, Microsoft Bing, Google, Facebook, etc.) sólo estarán disponibles con la nueva versión de este protocolo. ¿Cómo saber si estás preparado para ese momento? Pues puedes probar, por ejemplo, a acceder al portal IPV6 de Google. Si ves la página de inicio de Google normal y corriente, estupendo. Si, por el contrario, el navegador te dice que la página no existe o algo similar es que, en realidad, no puedes acceder a ella. Mala suerte.

¿Qué hacer para solventarlo? Pues por nuestro lado poca cosa. Tu sistema operativo seguramente no necesitará ni que lo toques puesto que desde el año 2001 aproximadamente todos sin excepción (GNU/Linux, Microsoft, MacOSX, etc.) soportan sin problemas IPV6. Si aún trabajas con Windows XP tendrás que activarlo (ejecutando ipv6 install en una ventana de comandos) pero lo normal es que, sea cual sea el sistema que uses, si abres un terminal o ventana de comandos y miras la información de tus interfaces de red (ipconfig en windows e ifconfig en Linux) te encuentres con que ya tienes asignada una de las llamadas direcciones de enlace local que el propio sistema operativo genera y asigna de forma automática:
dirección ipv6 de enlace local en linux

O sea, que el problema no está en tu PC, sino en tu acceso a Internet y mientras que tu proveedor de acceso no te solucione esto una solución para ir “jugando” con IPv6 puede ser usar un túnel. Existen muchos proveedores que te facilitan esto pero, de entre los gratuitos, el más cómodo y fácil de poner en marcha para mi ha sido el que proporciona Hurricane Electric: tunnelbroker.

El procedimiento es bien sencillo. Nos registramos en el servicio (esto es obligatorio) y una vez que nos hemos identificado pulsamos el enlace de “Create Regular Tunnel” (arriba a la izquierda). El servicio detectará nuestra IP pública (que debería de ser uno de los extremos del túnel si planeamos usarlo desde el ordenador con el que lo estamos creando) y nos sugiere para el otro extremo su centro de datos más cercano:
creando un túnel ipv6 con tunnelbroker

Los túneles creados se listan en la página principal de tu perfil como pueden verse en la siguiente imagen. Para ver los datos técnicos, modificarlos, borrarlos, etc. sólo tienes que pulsar en el enlace de uno de ellos:
creando un túnel ipv6 con tunnelbroker

Por último pinchamos en la solapa de “Example Configurations”, elegimos la opción de Linux-net-tools y ejecutamos las instrucciones que allí aparecen en una terminal y con privilegios de root:
creando un túnel ipv6 con tunnelbroker

Y ya está. No hay nada más que hacer. Lo he probado desde Ubuntu y Fedora y tanto con máquina reales como virtuales (con el interfaz de red en modo bridge) y funciona perfectamente y sólo debería de darte problemas con algunas configuraciones de tu cortafuegos. Tu máquina ahora debería de disponer de conexión tanto a servicios con IPv4 como con IPv6. Puedes probarlo en el enlace anterior de Google IPv6, comprobando aquí la dirección global IPv6 con la que se te ve en Internet o haciendo este test que debería de darte una puntuación de 9/10 en IPv6 (te faltaría aún que tus DNS fuesen compatibles con el nuevo protocolo).

Dos notas finales. Los cambios que hemos hecho son volátiles y desaparecerán cuando apagues tu equipo, así que si quieres hacerlos permanente deberías de hacer un script que se ejecute en el arranque aunque esto tampoco tiene mucho sentido: el túnel es dependiente de tu conexión pública a Internet y tendrás que editarlo cada vez que tu proveedor le asigne a tu router una nueva dirección o, si eres de los que haces trampas en menéame, cada vez que lo reinicies tu mismo para obtener una nueva IP.

Y dos. Sólo tienes cinco túneles por registro (pero puedes modificarlos y borrarlos cuantas veces quieras) y el sistema no admitirá ni crear dos tuneles diferentes con la misma IP pública en tu extremo ni que dos equipos dentro de la misma red local usen el mismo túnel.

Configuración de red en Fedora 11

Fedora Una de las cosa más frustrantes a la hora de cambiar de distribución de Linux es que, de pronto, hay algunas cosas que ya no están donde esperas encontrarlas. ¿Dónde diablos se ha metido ahora mi fichero /etc/network/interfaces? Normalmente los cambios son mínimos, pero los hay y no hay más remedio que saber cuales son. Para configurar manualmente la red en una máquina con Fedora, los ficheros que hay que tocar estan en la tabla siguiente. Pongo a su lado los equivalentes en una Debian/Ubuntu para que le resulte más intuitivo a quienes, como yo, venimos de largos años con estas distribuciones:

Debian/UbuntuFedora
Dirección IP y máscara de red/etc/network/interfaces/etc/sysconfig/network-scripts/ifcfg-ethx
Router por defecto/etc/network/interfaces/etc/sysconfig/network
Servidores DNS/etc/resolv.conf/etc/resolv.conf
Nombre del host/etc/hostname/etc/sysconfig/network
Daemon del servicio de red/etc/init.d/networking/etc/init.d/network

La configuración básica está, como veis, en un fichero denominado ifcfg-ethx (donde ethx es el interfaz de red por ejemplo eth0, eth1, etc.). La configuración por defecto de Fedora configura el interfaz de red con una dirección obtenida de forma dinámica por DHCP. Para configurar una IP fija el contenido debería de ser parecido a este:

# Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller
DEVICE=eth0
HWADDR=00:16:e6:50:45:e2
BOOTPROTO=static
IPADDR=192.168.1.5
NETMASK=255.255.255.0
ONBOOT=yes

En el archivo /etc/sysconfig/network configuramos el nombre del host y el router por defecto. Más o menos así:

NETWORKING=yes
GATEWAY=192.168.1.1
HOSTNAME=valeria.isf-apd.org

Por último, el fichero /etc/resolv.conf:

nameserver 87.216.1.65
nameserver 87.216.1.66
nameserver 62.14.2.1
search isf-apd.org

He leído, pero ho he llegado a probarlo, que tanto los servidores DNS y el dominio de búsqueda por defecto como el router predeterminado, pueden asociarce a la interfaz de red en el fichero ifcfg-ethx correspondiente mediante la siguiente sintaxis:

GATEWAY=192.168.1.1
DNS1=87.216.1.65
DNS2=87.216.1.66
DNS3=62.14.2.1
DOMAIN=isf-apd.org

Y, para esos a los que esto de la línea de comandos no les convence, existe también un asistente gráfico para todo ello: system-config-network.

system-config-network en Fedora 11

ACTUALIZACI?N: Ya he probado la configuración de servidores DNS y router por defecto en el fichero ifcfg-ethx y funciona perfectamente.

Instalando un servidor con NFS

servicios en red ¿Cuánto tiempo hace que no te tropiezas con un servidor con NFS? Si se tratase de un animal seguro que casi podríamos decir que está en peligro de extinción. El caso es que, en ambientes mixtos Windows/*nix con un Directorio Activo (que es el entorno más habitual al que nos enfrentamos) es mucho más práctico y menos problemático montar un servidor con Samba. Pero si en nuestro entorno no existen máquinas con windows o estas son minoritarias, aún podemos montar nuestros servidores de archivos con NFS y usar Windows Services for Unix para dar soporte a este protocolo desde las máquinas con windows (aquí tenéis un tutorial de instalación en castellano).

Para preparar la máquina que ofrecerá los servicios de NFS (y partiendo, como siempre, de una Debian o derivada), sólo tenemos que instalar el paquete nfs-kernel-server (sudo apt-get install nfs-kernel-server) y sus dependencias. Una vez hecho esto podemos ver en el archivo /proc/filesystems que nuestro sistema ya debería de soportar nfs.

Los directorios que queremos compartir se configuran de forma sencilla en el fichero /etc/exports. Allí, y en función de nuestras necesidades, podríamos tener algo como esto:

/mnt/Sistemas 192.168.1.0/25(rw,sync,subtree_check)
/mnt/Desarrollo 192.168.1.0/25(rw,sync,subtree_check)
/mnt/Gestión 192.168.1.0/25(rw,sync,subtree_check)
/mnt/Público (rw,sync,subtree_check)

La sintaxis es bien sencilla. En cada línea pondremos en primer lugar el recurso compartido, en segundo la dirección o direcciones de las máquinas que tendrán acceso a él y, por último y entre paréntesis y sin ningún espacio de separación, los atributos que aplicaremos al recurso compartido.

La forma de expresar las máquinas que tienen acceso al recurso es bien versatil. Podemos poner una única dirección IP (192.168.1.5), una subred completa (192.168.1.0/25 ó 192.168.1.0/255.255.255.128), un nombre de máquina (estacion1.midominio.net), o usar comodines * y ? (estacion*). Si no ponemos nada quiere decir que no habrá restricciones en cuanto al origen de la conexión (como en el caso del recurso /mnt/Público del ejemplo anterior). Si quisiéramos aplicar opciones diferentes según el origen de la conexión lo hacemos de forma consecutiva en la misma línea del fichero exports. De esta forma:

/mnt/Gestión 192.168.1.10(rw) 192.168.1.11(rw) 192.168.1.0/25(ro)

Las diferentes opciones de montaje pueden consultarse con man exports. Algunas de las más comunes son ro (sólo lectura), rw (lectura y escritura), async o sync (según si queremos que replique las modificaciones antes de hacer un commit de estas o no), etc. Despues de cada cambio en el fichero de unidades compartidas debemos de ejecutar la orden exportfs -a para que estos tengan efecto. Ah, y no olvidemos que los permisos aplicados sobre ficheros y directorios de las unidades compartidas ha de ser coherente con los que apliquemos al publicar las mismas.

Y ahora nos vamos con los clientes. En ellos lo único que tenemos que instalar es el paquete nfs-common y sus dependencias. Y listo. Ahora podemos montar las unidades de nuestro servidor remoto de forma manual o, si queremos hacerlo de forma permanente, añadiendo una línea en nuestro fichero fstab. La forma manual sería algo así:

mount -t nfs servidornfs:/mnt/datos /home/josemaria/datos

Si queremos hacerlo desde el fichero fstab, la línea a añadir para el mismo ejemplo anterior sería esta:

servidordns:/mnt/datos /home/josemaria/datos nfs auto,user,noexec,rw

Un par de notas finales. NFS siempre ha recibido muchas críticas por su seguridad hasta la versión 3. La versión 4, que es la que implementan ya los kernels modernos de Debian y sus derivados (Ubuntu, etc.), puede usar Kerberos para proporcionar seguridad en los accesos si así lo requerimos. Por último, aquí tenéis una buena comparativa que señala las debilidades y fortalezas de los sistemas de compartición de archivos más comunes (CIFS es la versión de SMB implementada por los sistemas de Microsoft).