Redes inalámbricas multisalto en GNU/Linux
Esta receta describe cómo configurar una red inalámbrica multisalto (MANET) bajo GNU Linux totalmente funcional.
Introducción
Las redes inalámbricas multisalto no necesitan de infraestructura fija para compartir datos entre distintos PC's, cada uno de los nodos que forman la red hacen las labores de un router de forma que se enrutan datos de unos a otros para formar una infraestructura de red dinámica. Si uno de los nodos tiene una conexión a Internet, los demas nodos pueden utilizar a éste como pasarela.Requisitos previos
Como paso previo hay que hacer lo siguiente (a modo de precondiciones):- En el kernel tienes que tener compilado el "Netfilters"
- Habilitar el Packet Forwarding. En /etc/sysconfig/network añadir una línea:
FORWARD_IPV4=yes
- Tener configuradas las tarjetas wireless.
Montar la red ad-hoc
En lo relativo a la configuración de las tarjetas, es muy útil el comando iwconfig que permite la configuración de las tarjetas de forma similar al clásico ifconfig. En Debian, ese comando está en el paquete wireless-tools. Bien, tenemos una tarjeta Wireless (en mi caso PC Card WL100) configurada en un portátil con Debian. El iwconfig nos dice que tenemos:eth1 IEEE 802.11-DS ESSID:"COMPAQ" Nickname:"Prism I" Mode:Managed Frequency:2.457GHz Access Point: 00:02:A5:2D:06:35 Bit Rate:11Mb/s Tx-Power=15 dBm Sensitivity:1/242700000 Retry min limit:8 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:49/1 Signal level:-53 dBm Noise level:-144 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0Es el momento de observar dos cuestiones importantes, la primero de ellas es el Mode que está en "Managed" (utilizado para asociarse a puntos de acceso) y el segundo es el ESSID. Hay que señalar que para que esta tarjeta pueda formar parte de una red ad-hoc todas las tarjetas tienen que tener el mismo ESSID y estar puestas en modo ad-hoc. Para ello, y utilizando el iwconfig ejecutamos:
homer:~# iwconfig eth1 mode ad-hoc homer:~# iwconfig eth1 essid ARCO homer:~# iwconfig eth1 IEEE 802.11-DS ESSID:"ARCO" Nickname:"Prism I" Mode:Ad-Hoc Frequency:2.457GHz Cell: 02:23:7A:CF:F1:E5 Bit Rate:5.5Mb/s Tx-Power=15 dBm Sensitivity:1/242700000 Retry min limit:8 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0El segundo ordenador a utilizar en nuestra red es un ordenador de sobremesa con una tarjeta PCI-PCMCIA y con una tarjeta Wireless PC Card WL110. La salida del iwconfig es similar a la anterior, mientras que la salida del lsmod nos muestra el módulo orinoco_plx que es el driver que se ha usado. Ahora es el momento de configurar las direcciones IP que van a formar parte de nuestra red ad-hoc. Idealmente, un nodo ad-hoc debería ser capaz de autoconfigurarse para formar parte de la red. En principio nosotros vamos a asignar estas direcciones de forma estática. Edita el archivo /etc/networks/interfaces y añade la configuración de la interfaz eth1, por ejemplo:
auto eth1 iface eth1 inet static address 10.10.0.4 netmask 255.255.255.0 gateway 10.10.0.1De forma que si ejecutamos:
radia:~# ifdown eth1 radia:~# ifup eth1 radia:~# ifconfig eth1 Link encap:Ethernet HWaddr 00:02:A5:6F:28:FC inet addr:10.10.0.4 Bcast:10.255.255.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1091 errors:0 dropped:0 overruns:0 frame:0 TX packets:89 errors:20 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:81419 (79.5 KiB) TX bytes:20266 (19.7 KiB) Interrupt:11 Base address:0xd800Vemos la interfaz configurada con la dirección IP asociada. Debemos hacer lo mismo tanto en el portátil como el otro PC.(obviamente con direcciones IP distintas). Bien, en este momento deberíamos poder realizar un simple ping de un ordenador a otro a las direcciones que hayamos puesto, siempre y cuando estemos en el ámbito de cobertura.
Enrutando paquetes
Para tener una verdadera red inalámbrica multisalto debemos hacer que cada nodo enrute paquetes, para ello debemos instalar un algoritmo de enrutado, en nuestro caso vamos a usar el algoritmo AODV cuya implementación (una de ellas) podeis bajar de aodv_kernel Siguiendo los pasos del archivo README no debe haber ningún problema. Básicamente:- Te bajas el archivo y lo descomprimes.
- Ejecutas
- Cambias los ficheros start.sh y start_gateway.sh según los parámetros de la subred
- ejecutas start.sh si eres cliente sin acceso a internet
- ejecutas start_gateway.sh si vas a funcionar como gateway dentro de la red ad-hoc
Recetas relacionadas
Estas recetas pueden ser útiles: [ show comments ]
blog comments powered by Disqus