Ingeniería telemática

Dpto. de Teoría de la señal, telemática y Comunicaciones Movilidad en Redes Inalámbricas
Universidad de Granada 2014 © Jorge Navarro Ortiz, Pablo Ameigeiras



MOVILIDAD EN REDES IINALÁMBRICAS
1. INTRODUCCIÓN
En esta práctica se va a hacer uso de una Raspberry Pi con dos tarjetas inalámbricas. Una servirá de
red de gestión, interfaz denominada wifi_gestion, y la otra como red de datos, interfaz denominada
wifi_datos.


Figura 1. Raspberry Pi y tarjetas inalámbricas
En esta práctica se va a abordar el problema de la macromovilidad en redes IP. Para ello, se utilizará
una implementación gratuita y de código abierto del protocolo IP móvil, desarrollado por la
Universidad de Tecnología de Helsinki [1].
El escenario para la práctica es el mostrado en la Figura 2.

Figura 2. Escenario para la utilización de IP móvil.
Tal y como se explicó en las clases teóricas, IP móvil sólo requiere la modificación de dos equipos, el
agente propio (HA), el agente extranjero (FA), además del nodo móvil (MN). Los dos primeros se
implementarán en PCs del laboratorio (ubicación fija), mientras que el tercero se implementará en una
Raspberry Pi (lo que permitirá su movilidad).
Así, el objetivo de la práctica será comprobar el correcto funcionamiento de IP móvil cuando el nodo
móvil cambia de red (tanto de red propia a red extranjera como viceversa), capturar trazas con los
IP 192.168.X.Y/16
(interfaz gestion)
IP 192.168.X’.Y’/16
(interfaz gestion)
red Wi-Fi mipZZ_HN (interfaz wifi)
IP 192.168.1ZZ.1/24
red Wi-Fi mipZZ_FN (interfaz wifi)
IP 192.168.2ZZ.1/24
AGENTE PROPIO (HA) AGENTE EXTRANJERO (FA)
RED EXTRANJERA
192.168.2ZZ.0/24
RED PROPIA
192.168.1ZZ.0/24
red Wi-Fi ad-hoc de gestión ahRPi (interfaz wifi_gestion)
IP 192.168.34.1ZZ/24
red Wi-Fi mipZZ_HN ó mipZZ_FN (interfaz wifi_datos)
IP 192.168.1ZZ.2/24
NODO MÓVIL (MN)
Movilidad en Redes Inalámbricas
2 de 6

mensajes implicados en los diferentes procedimientos (registro en el agente propio, descubrimiento
del agente extranjero, etcétera) y analizar los mismos.
2. CONEXIÓN A UNA RASPBERRY PI PARA GESTIONARLA
Para conectarse desde un PC a una Raspberry Pi y poder gestionarla, hay que:
1) Conectarse desde el PC a la red ad-hoc ahRPi:
iw wifi set type ibss
iw wifi ibss join ahRPi 2412 key 0:ahRPi
NOTA1: El gestor de redes de Ubuntu tiene que tener deshabilitado el uso de redes inalámbricas,
ya que si no, habría un proceso que ya utiliza este interfaz de red.
NOTA2: Si da algún fallo relacionado con que “la radiofrecuencia está desactivada”, pruebe a
ejecutar rfkill unblock all.
2) Asignar al interfaz inalámbrico del PC una dirección IP (que no coincida con las asignadas a las
Raspberry Pi en la red ad-hoc, e.g. 192.168.34.1/24) usando el comando:
ifconfig wifi 192.168.34.1/24
NOTA: Las Raspberry Pi tienen la dirección 192.168.34.1ZZ/24 en esta red. Por tanto, utilice una
dirección en el PC que no coincida con la de otra Raspberry Pi, ni con la de otro PC. Por ejemplo,
puede utilizar la dirección 192.168.34.ZZ/24.
3) Conectarse a la Raspberry Pi a través de SSH:
ssh pi@192.168.33.1ZZ
Las Raspberry Pi viene por defecto con el usuario “pi” y la clave “raspberry”.
NOTA: Para evitar utilizar muchos PCs únicamente para conectarse a la red wifi de gestión de las
Raspberry Pi (ya que los PCs sólo tienen un interfaz inalámbrico), el profesor configurará un PC que se
conectará a dicha red. Los alumnos podrán conectarse a dicho PC mediante SSH (e.g. ssh
administrador@IP_PC_configurado_por_profesor, con la clave finisterre) y,a través de éste,
el alumno podrá conectarse a su Raspberry Pi (mediante ssh pi@direccion_IP_raspberry_pi).
El profesor indicará en clase la dirección IP del PC configurado para tal fin.
3. INSTALACIÓN
En el caso de los PCs, primero se requiere instalar la librería GMP (librería gratuita de aritmética con
precisión arbitraria [2]). Esto se realiza mediante los comandos:
apt-get install libgmp3-dev
Además, tanto en los PCs como en la Raspberry Pi habrá que instalar el paquete Dynamics. En el
segundo caso habrá que indicar el tipo de arquitectura (ARM) para compilar. En el caso de las
Movilidad en Redes Inalámbricas
3 de 6

Raspberry Pi, dicho paquete (fichero dynamics-0.8.1.tar.gz) está disponible en el directorio
/home/pi. En el caso de los PCs, habrá que descargarlo del servidor eihal
(http://192.168.33.21/redes/rim/practica3/dynamics-0.8.1.tar.gz).
Los comandos de instalación son:
Para todos los equipos:
wget --no-proxy “http://192.168.33.21/redes/rim/practica3/dynamics-0.8.1.tar.gz”
sudo su
tar xvfz dynamics-0.8.1.tar.gz
cd dynamics-0.8.1

En el caso de HA:c
./configure --sysconfdir=/etc --without-fa --without-mn

En el caso de FA:
./configure --sysconfdir=/etc --without-ha --without-sha --without-mn

En el caso de MN:
sh ./autogen.sh
./configure --host=arm-raspberry-linux-gnueabihf --sysconfdir=/etc --with-onlymn

Para todos los equipos:
make
make install
Además, en el caso de los agentes de movilidad (HA y FA), se debe utilizar el módulo ipip, necesario
para la creación de túneles. Para ello se debe ejecutar el siguiente comando.
modprobe ipip
En los equipos que hay que configurar como puntos de acceso (HA y FA), hay que instalar el paquete
hostapd:
apt-get install hostapd
NOTA: Recuerde que para utilizar eihal como servidor de repositorio, debe ejecutar los siguientes
comandos:
sudo su
export http_proxy=
wget “http://192.168.33.21/redes/rim/repository_ubuntu_precise.sh”
sh ./repository_ubuntu_precise.sh
4. REALIZACIÓN DE LA PRÁCTICA
Tanto HA como FA además actuarán como puntos de acceso inalámbricos, con SSIDs mipZZ_HN y
mipZZ_FN respectivamente, donde ZZ es el número de Raspberry Pi (e.g. 01 para RPi01). Para ello
habrá que configurar el servicio hostapd, que habrá que instalar y configurar adecuadamente (véase
la práctica 1).
interface=wifi
driver=nl80211
ssid=test

hw_mode=a
Movilidad en Redes Inalámbricas
4 de 6

channel=36 # check interface capabilities with “iw list”
Figura 3. Ejemplo de configuración de hostapd (fichero /etc/hostapd/hostapd.conf).
Una vez configurado, habrá que arrancar el servicio mediante service hostapd start.
Además, habrá que 1) configurar la dirección IP del interfaz inalámbrico de HA y FA según la Figura 2
mediante el comando ifconfig. Igualmente, habrá que 2) configurar en HA la ruta para llegar a la
red extranjera a través de FA mediante el comando route, así como en FA la ruta para llegar a la red
propia a través de HA. Por último, como ambos equipos actúan como routers, tendrán que 3) activar
el reenvío de paquetes mediante el comando sysctl net.ipv4.ip_forward=1.
Por su lado, 4) el nodo móvil debe configurar la dirección IP de su interfaz wifi_datos siguiendo los
datos de la Figura 2 (comando ifconfig), así como 5) conectarse a la red inalámbrica que se requiera
(e.g. mediante iw wifi_datos disconnect; iw wifi_datos connect SSID). Además, aunque
no es necesario, este nodo puede incluir una ruta (comando route) a la red extranjera a través del
agente propio.
Escenario inicial
TAREA 1: Configuración de direcciones IP y rutas de HA, FA y MN. Creación de redes WiFi por parte de
HA y FA. Reenvío de paquetes por parte de HA y FA.
COMPROBACIÓN: Una vez realizado el paso anterior, conecte MN a la red inalámbrica de HA
(mipZZ_HA). Compruebe la correcta conectividad entre todos los equipos (mediante PING entre cada
par de equipos).

Funcionamiento en la red propia
Tras comprobar que la configuración inicial es correcta, se procederá a configurar y utilizar el protocolo
IP móvil. En primer lugar, se probará el correcto funcionamiento del nodo móvil en su red propia.
TAREA 2: Configure el agente propio (fichero /etc/dynhad.conf) y el nodo móvil (fichero
/etc/dynmnd.conf). Para ello considere:
- Intervalo de anuncios de 1 segundo (para aumentar la velocidad en los procedimientos)
- Seguridad entre MN y HA: índice SPI = 1000, algoritmo de autenticación 1 (véase los comentarios en
el fichero dynhad.conf), secreto entre HA y MN “mn-ha”, método de réplica 0 (sin considerar
timestamps)
Para ejecutar IP móvil en HA y MN se utilizan los siguientes comandos:
- HA: dynhad --fg –debug
- MN: dynmnd --fg –debug
COMPROBACIÓN: Mediante la herramienta dynmn_tool se puede comprobar, en el nodo móvil, el
estado de IP móvil (e.g. registro correcto en el HA). Capture una traza con Wireshark donde aparezcan
Movilidad en Redes Inalámbricas
5 de 6

los mensajes de IP móvil utilizados por ambos equipos, que reflejen el correcto registro del nodo móvil
en el agente propio. Compruebe la conectividad entre ambos equipos (mediante PING).

Funcionamiento en la red extranjera
A continuación se comprobará el correcto funcionamiento cuando el nodo móvil está en la red
extranjera.
TAREA 3: Configure el agente propio (fichero /etc/dynhad.conf), el agente extranjero (fichero
/etc/dynfad.conf) y el nodo móvil (fichero /etc/dynmnd.conf). Para ello tenga en cuenta las
consideraciones de la tarea 2 y las siguientes:
- Seguridad entre FA y MN: índice SPI = 2000, algoritmo de autenticación 1, secreto “fa-mn”.
IMPORTANTE: la dirección IP del FA que se indica en el fichero de configuración de MN es la que tiene
en el interfaz conectado a la red extranjera (inalámbrica).
- Seguridad entre FA y HA: índice SPI = 3000, algoritmo de autenticación 1, secreto “fa-ha”.
IMPORTANTE: la dirección IP del FA que se indica en el fichero de configuración de HA es la que tiene
en el interfaz conectado a la red que une HA y FA (cableada).
- Configuración de FA: la dirección IP del FA que se indica en su propio fichero de configuración es la
que tiene en el interfaz conectado a la red que une HA y FA (cableada). Por otro lado, el paquete
Dynamics permite una jerarquía de agentes extranjeros (en una estructura de árbol). En este caso, al
haber un único FA, éste coincide con el FA más alto en la jerarquía.
Antes de la ejecución de IP móvil, FA tiene que generar un fichero de claves RSA mediante el siguiente
comando:
sudo rsakeygen /etc/dynfad.key 786
Para ejecutar IP móvil en HA, FA y MN se utilizan los siguientes comandos:
- HA: dynhad --fg –debug
- FA: dynfad --fg –debug
- MN: dynmnd --fg –debug
COMPROBACIÓN: Mediante la herramienta dynmn_tool se puede comprobar, en el nodo móvil, el
estado de IP móvil (e.g. túnel correctamente establecido entre FA y HA). Capture una traza con
Wireshark donde aparezcan los mensajes de IP móvil utilizados por todos los equipos, e indique el
procedimiento al que pertenecen. Compruebe la conectividad entre del nodo móvil con los dos
agentes de movilidad (mediante PING).

Escenario con movilidad
Por último, se comprobará el correcto funcionamiento de IP móvil en un escenario con movilidad.
Movilidad en Redes Inalámbricas
6 de 6

TAREA 4: Partiendo de la configuración de la tarea 3, conecte primero la Raspberry Pi a la red
inalámbrica mipZZ_HN antes de ejecutar IP móvil en HA, FA y MN. Después, ejecute IP móvil en cada
uno de los nodos. Por último, provoque que MN cambie a la red inalámbrica mipZZ_FN. Compruebe
que el nodo móvil se registra correctamente en FA, así como que tiene conectividad con ambos
agentes de movilidad.
COMPROBACIÓN: Repita la comprobación realizada en la tarea 3. Compruebe también a qué red está
conectada el nodo móvil mediante el comando iwconfig.

REFERENCIAS
[1] Dynamics Mobile IP, disponible en http://sourceforge.net/projects/dynamics/.
[2] The GNU Multiple Precision Arithmetic Library, disponible en https://gmplib.org/.