José Manuel Mira Ros
Red
Wifi IP...  vpnc  eduroam
Red Wifi

La conexión mediante red inalámbrica de una máquina GNU/Linux no suele crear problemas siempre que el hardware esté soportado. Esta cuestión es importante porque cuando un fabricante de hardware crea un producto se ocupa también de crear el correspondiente driver para gestionar el hardware y además de distribuirlo con el hardware. Así ocurre siempre con MS-Windows, pero frecuentemente se olvidan de que hay otros sistemas operativos... Algunos fabricantes crean drivers para GNU/Linux y en otros casos con el esfuerzo de los usuarios GNU/Linux se consigue un driver.

Antes de comprar una tarjeta (o un ordenador con tarjeta) hay que asegurarse de que funcionará con GNU/Linux. Eso es aplicable aunque de momento no se esté usando GNU/Linux (quien sabe en un futuro cambiaremos de sistema) para forzar a los fabricantes a hacer las cosas bien, o premiar a aquellos que las hacen. Mis experiencias han sido con SMC (la última que usé es la SMCWPCI-G EU)

Para saber que tarjetas están soportadas puede utilizarse http://linux-wless.passys.nl/. Son muchísimas, pero conviene tener en cuenta que la cuestión no es la marca de la tarjeta, sino del chip que lleva, que fecuentemente es compartido por muchas marcas, al tiempo que una misma marca puede utilizar chips diferentes según los modelos.

Mis experiencias con Debian las he pautado del siguiente modo.

Instalar el paquete wireless-tools
La forma típica, disponiendo de red, sería usar
apt-get install wireless-tools
pero como no es esa la situación, hemos de utilizar otro ordenador para bajarnos el paquete de www.debian.org (stable, testing o unstable, según la distribución que usemos) e instalarlo como root con
dpkg -i wireless-tools

Una vez instalado podemos tratar de conocer cual es el estado de la red ejecutando como root el comando iwconfig. Por ejemplo podemos obtener algo así.
loli:~# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

sit0      no wireless extensions.
que indicaría que no hay posibilidad de conexión, sea porque no existe tarjeta de red inalámbrica en el ordenador o porque si existe no es reconocida. En esta segunda hipótesis lo primero es identificar la tarjeta (y, más específicamente el chip, porque una misma marca puede montar diferentes chips) y, supuesto que esté soportada, instalar el correspondiente driver en la forma que se indique en www
Obtener una respuesta similar a la que sigue
loli:~# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wifi0     no wireless extensions.

ath0      IEEE 802.11b  ESSID:""
          Mode:Managed  Channel:0  Access Point: 00:00:00:00:00:00
          Bit Rate:0 kb/s   Tx-Power:0 dBm   Sensitivity=0/3
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=0/94  Signal level=-95 dBm  Noise level=-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

sit0      no wireless extensions.
es una buena noticia: significa que el hardware está operativo. Ha sido detectada al menos una red inalámbrica a través del puerto ath0 (la a indica seguramente un chip atheros en la tarjeta).

Podemos conocer el estado específico de un puerto como en el caso anterior usando, por ejemplo,

loli:~# iwconfig ath0
ath0      IEEE 802.11b  ESSID:""
          Mode:Managed  Channel:0  Access Point: 00:00:00:00:00:00
          Bit Rate:0 kb/s   Tx-Power:0 dBm   Sensitivity=0/3
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=0/94  Signal level=-95 dBm  Noise level=-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
Activar la red del puerto que corresponda

Eso se consigue, por ejemplo, con

loli:~# ifconfig ath0 up

donde ath0 puede requerir, según los casos, ser cambiado por eth0, eth1...

Seleccionar la red

Si hubiera varias redes posibles a las que conectarse, es necesario seleccionar la adecuada. Para conocer las redes visibles podemos utilizar el comando

iwlist ath0 scan

Y si queremos conectarnos a una llamada "VULCANO" escribirimos

iwconfig ath0 essid "VULCANO"

O bien, si la red tiene contraseña

iwconfig ath0 essid "VULCANO" key "s:XYZ67890EFG"

supuesto que la contraseña en ASCII sea XYZ67890EFG

Solicitar dirección IP al router

Para poder conectar con internet es necesario disponer de una dirección IP. Lo más usual es que ésta te sea asignada por el router usando dhcp. Puedes pedirla del siguiente modo

loli:~# dhclient
Internet Software Consortium DHCP Client 2.0pl5
Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
All rights reserved.

Please contribute if you find this software useful.
For info, please visit http://www.isc.org/dhcp-contrib.html

sit0: unknown hardware address type 776
wifi0: unknown hardware address type 801
sit0: unknown hardware address type 776
wifi0: unknown hardware address type 801
Listening on LPF/sit0/
Sending on   LPF/sit0/
Listening on LPF/ath0/00:13:f7:0d:38:93
Sending on   LPF/ath0/00:13:f7:0d:38:93
Listening on LPF/wifi0/
Sending on   LPF/wifi0/
Listening on LPF/eth0/00:e0:7d:96:e6:c4
Sending on   LPF/eth0/00:e0:7d:96:e6:c4
Listening on LPF/lo/
Sending on   LPF/lo/
Sending on   Socket/fallback/fallback-net
DHCPDISCOVER on sit0 to 255.255.255.255 port 67 interval 4
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPDISCOVER on wifi0 to 255.255.255.255 port 67 interval 6
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on lo to 255.255.255.255 port 67 interval 4
DHCPACK from 192.168.1.1
bound to 192.168.1.36 -- renewal in 1800 seconds.

La clave está en la última línea que nos indica que nos ha asignado la dirección ip 192.168.1.36

Si el resultado es de ese tipo podemos probar a establecer contacto con una dirección concreta, por ejemplo www.google.es, mediante

loli:~#ping www.google.es
PING www.l.google.com (64.233.183.99) 56(84) bytes of data.
64 bytes from nf-in-f99.google.com (64.233.183.99): icmp_seq=1 ttl=245 time=100 ms
64 bytes from nf-in-f99.google.com (64.233.183.99): icmp_seq=2 ttl=245 time=101 ms
64 bytes from nf-in-f99.google.com (64.233.183.99): icmp_seq=3 ttl=245 time=101 ms
64 bytes from nf-in-f99.google.com (64.233.183.99): icmp_seq=4 ttl=245 time=101 ms

--- www.l.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 100.997/101.358/101.971/0.460 ms

y si la respuesta es de ese tipo, ¡felicidades! la red ha sido configurada y está operativa.

Si eso no ocurre puede ser debido a que la red WEP esté protegida por contraseña. Puede desactivarse temporalmente la contraseña y reiniciar el router. Si repitiendo los pasos la conexión se establece el problema está en la contraseña.

Si los problemas persisten tal vez sea necesario leer algo más sobre contraseñas en el apartado

key/enc[ryption]

del manual de iwconfig accesible desde la consola mediante

loli:~#man iwconfig
Dejar automatizado el proceso

Una vez conseguido que la red funcione, lo razonable es que la máquina al iniciarse realice las acciones que le permitan por sí misma conectarse a la red sin necesidad de tener que hacer en cada ocasión el proceso antes descrito. Eso se consigue modificando el archivo /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Las dos líneas que siguen configuran con dhcp la red de cable
#
#auto eth0
#iface eth0 inet dhcp

# Las líneas que siguen configuran dirección estática del cable
#
auto eth0
iface eth0 inet static
        address 192.168.1.33
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 192.168.1.1 

# Las líneas que siguen configuran dhcp para inalámbrica (en ath0)
auto ath0
iface ath0 inet dhcp
wireless-essid VULCANO
wireless-key s:XXXXXXXXXXXXX   # Para una cadena ASCII
# wireless-key XXXXXXXXXXXXX   # Para una cadena hexadecimal