CONFIGURACIONES
BASICAS DE UN USR2450 bajo LinuxAP
Este
documento esta basado en las recopilaciones y experiencias propias del autor.
Están hechas para la distribución de LinuxAP del 13-09-2002 que es la versión
estable que se esta utilizando actualmente. El autor declina cualquier responsabilidad
derivada de la aplicación de este tutorial. La distribución total o parcial
con fines comerciales de este documento esta expresamente prohibida en cualquier
medio o soporte sin la autorización por escrito del autor.

Con este tutorial pretendemos ayudar a todos aquellos que, como nosotros mismos, se han encontrado con un nuevo concepto de hardware y software con el que no estamos familiarizados a ver trabajar ni a configurar. No hemos querido hacer una simple configuración “tipo”, sino que hemos querido ir un poco mas al fondo de la cuestión para permitir al experimentador atreverse a “tocar” sin tener miedo a “romper” nada, y hacerle ver el porque de las cosas. Este no es un documento cerrado, sino que lo iremos ampliando a medida que, entre todos, vayamos haciendo nuevos descubrimientos.
Vamos pues a empezar.
Familiarizándonos con el LinuxAP
Lo primero que necesitaremos será un cable para unir el puerto “serie” o RS-232 de nuestro PC con el del USR2450.Si no lo tenéis podéis fabricároslo vosotros mismos.
-2-RX-----------------------TX-3-
DB9 Hembra -3-TX-----------------------RX-2- DB9 Hembra
-5-GND---------------------GND-5-
Una vez dispongamos del cable:
1.-Conectar el cable null RX-TX-GROUND al port RS-232 (serie).
2.-Establecer conexión con hyperterminal o programa correspondiente de Linux a 4800-8-N-1-N.
3.-Conectar el USR2450 con el software de LinuxAP
4.-Tendríamos que visualizar como arranca el LinuxAP en el terminal. La primera vez tardara unos 3 minutos! ya que busca por defecto un terminal tftp que, evidentmente no existe, y despus se encalla intentando crear un Log, que, evidentemente tampoco no puede encontrar. Una vez arrancado ya tenemos delante de nosotros el boot de arranque
5.-Nos pide que entremos en el modo terminal pulsando la tecla Enter. Lo hacemos y arranca el " Busybox" desde donde podremos configurar nuestro LinuxAP.
alios
biosless Linux bootloader
V2
- Bank 0: 2048K organized as 1024K (10 rows by 10 columns) by 16 bits, EDO
- Bank 1: 2048K organized as 1024K (10 rows by 10 columns) by 16 bits, EDO
- Bank 2: no DRAM detected
- Bank 3: no DRAM detected
- Total DRAM detected: 4096 kbytes
- loading configuration 1
- kernel args: console=ttyS0,4800n8
- scanning bootsect.o
- scanning setup.o
- updating setup values
- copying compressed kernel into RAM.......
- starting kernel
Linux version 2.4.17 (root@benchbox.ksmith.com) (gcc
version 2.95.3 20010315 (re
lease)) #1 Fri Sep 13 01:05:42
MST 2002
BIOS-provided physical RAM map:
BIOS-88: 0000000000000000 - 000000000009f000 (usable)
BIOS-88: 0000000000100000 - 0000000000460000 (usable)
On node 0 totalpages: 1120
zone(0): 1120 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,4800n8
Initializing CPU#0
Calibrating delay loop... 16.48 BogoMIPS
Memory: 2884k/4480k available (735k kernel code, 1208k reserved, 148k data,
48k
init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
kmem_create: Forcing size word
alignment - names_cache
Dentry-cache hash table entries:
1024 (order: 1, 8192 bytes)
Inode-cache hash table entries:
512 (order: 0, 4096 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 2048 (order: 1,
CPU: AMD 02/0a stepping 04
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
register_swap_method: method
blkdev
register_swap_method: method
blkdev file
Serial driver version 5.05c (2001-07-08) with no serial options enabled
ttyS00 at 0x03f8 (irq
= 4) is a 16550A
block: 64 slots per queue, batch=16
ne.c:v1.10 9/23/94 Donald Becker (becker@scyld.com)
Last modified Nov 1, 2000 by Paul Gortmaker
NE*000 ethercard probe at 0x200: 02 02
02 02 05 02
eth0: NE2000 found at 0x200, using IRQ 14.
physmap
flash device: 0x100000 at 0x1000000
2nd physmap flash device: 0x200000 at 0x2000000
Found: Macronix MX29F800T - 8bit access
number of JEDEC chips: 1
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 512)
ip_conntrack (35 buckets, 280
max)
ip_tables: (c)2000
Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
VFS: Mounted root (cramfs filesystem)
readonly.
Freeing unused kernel memory: 48k freed
serial console detected. Disabling virtual terminals.
console=/dev/console
init started: BusyBox
v0.60.3-pre (2002.09.13-08:10+0000) multi-call binary
Entering runlevel S
10.sysinit:
Welcome to Linux Instant802
re-mounting root filesystem
in rw mode
mounting proc filesystem
mounting var
filesystem
20.configfs:
2+0 records in
2+0 records out
netcfg
runlevel
telnetd.hosts
udhcpd.conf
udhcpd.leases
wlan0
loaded saved config.
Done.
Entering runlevel 2
10.0.lo:
10.1.wlan0:
Starting wlan0: Using /lib/modules/2.4.17/pcmcia/pcmcia_core.o
Linux PCMCIA Card Services 3.1.28
kernel build: 2.4.17 #1 Fri Sep 13 01:05:42 MST 2002
options: none
Using /lib/modules/2.4.17/pcmcia/i82365.o
Intel PCIC probe:
Intel i82365sl A step ISA-to-PCMCIA at port 0x3e0
ofs 0x00
host opts [0]: none
ISA irqs (default) = 3,5,7,9,10,11,12,15
polling interval = 1000 ms
Using /lib/modules/2.4.17/pcmcia/ds.o
Using /lib/modules/2.4.17/pcmcia/hostap_cs.o
hostap_cs: hostap_cs.c
0.0.0 2002-05-19 (SSH Communications Security Corp, Jouni
Malinen)
hostap_cs: (c) SSH Communications
Security Corp <jkm@ssh.com>
Jan 1
00:00:12 cardmgr[62]: starting, version is 3.1.28
Jan 1
00:00:12 cardmgr[62]: watching 1 sockets
Jan 1
00:00:12 cs: memory probe 0x0d0000-0x0dffff:cardmgr[62]:
ini clean.
tializing
socket 0
Jan 1
00:00:12 cardmgr[62]: socket 0: PRISM2 IEEE 802.11
PC-CARD
cs:
IO port probe 0x0100-0x04ff: clean.
cs:
IO port probe 0x0800-0x08ff: clean.
cs:
IO port probe 0x0c00-0x0cff: clean.
hostap_cs: index 0x01: Vcc
5.0, irq 3, io
0x0100-0x013f
hostap_cs: Registered netdevice
wlan0
wlan0: NIC: id=0x8002 v1.0.0
wlan0: PRI: id=0x15 v0.3.0
wlan0: STA: id=0x1f v0.7.5
wlan0: Channel setting out of range (3)!
Jan 1
00:00:13 cardmgr[62]: executing: './network start
wlan0'
Jan 1
00:00:13 cardmgr[62]: + ./network: No such
Jan 1
00:00:13 cardmgr[62]: start cmd
exited with status 127
Jan 1
00:00:13 cardmgr[62]: exiting
Done.
10.2.primary:
Starting wlan0 interface.
udhcp
client (v0.9.7) started
Sending discover...
Sending select for 10.34.121.6...
Lease of 10.34.121.6 obtained, lease time 345600
deleting routers
SIOCDELRT: No such process
adding dns
10.34.121.1
10.3.tftpcfg:
Download 0090D101637D as etc.tar from 192.168.4.1
tftp:
timeout
tftp:
timeout
tftp:
timeout
tftp: timeout
tftp:
timeout
tftp:
timeout
tftp:
last timeout
10.5.cipe
10.5.cipe
10.9.route:
11.0.netswap:
15.0.tcpsrv:
Set date && start logging.
rdate:
192.168.4.1: Connection timed out
16.0.dhcpd:
# udhcpd.conf disable
udhcpd
disabled
17.0.httpd:
Starting httpd daemon.
18.0.telnetd:
Starting telnetd daemon.
21.0.iptables:
98.tweak:
99.done:
Startup Complete
Please press Enter to activate this console.
BusyBox v0.60.3-pre (2002.09.13-08:10+0000)
Built-in shell (ash)
Enter 'help' for a list of built-in commands.
Si nos fijamos en el boot nos daremos cuenta, entre otras cosas que arranca por defecto con "runlevel2", es decir, en modo "cliente" de tal manera que, aunque quisiéramos no lo veríamos con ningún programa o utilidad “cliente” de ninguna otra tarjeta o adaptador USB.
wlan0
loaded
saved config.
Done.
Entering runlevel
2
10.0.lo:
10.1.wlan0:
El programa intenta arrancar en el canal 3, canal que no soporta la versión Belga del USR2450, así que por defecto arranca en el canal 11.
wlan0:
PRI: id=0x15 v0.3.0
wlan0: STA: id=0x1f v0.7.5
wlan0: Channel setting out of range (3)!
Jan 1
00:00:13 cardmgr[62]: executing: './network start
wlan0
Y, si nos fijamos un poco más, descubriremos que al arrancar el “cliente” udhcp ya ha descubierto un AP o Punto de acceso que ya nos ha otorgado una IP.
udhcp
client (v0.9.7) started
Sending discover...
Sending select for 10.34.121.6...
Lease of 10.34.121.6 obtained, lease time 345600
Ahora entraremos a ver como esta configurado de origen nuestro LinuxAP.
Para hacerlo hemos de tener en cuenta que el soft tal y como esta compilado solo nos permitirá editar en una pequeña parte del AP. Esta parte la encontraremos haciendo cd etc/rw desde #, es decir:
# cd etc/rw
Esta es la única parte que podremos editar, el resto podremos verlas pero sin poder alterar su contenido.
Para ver los documentos que contiene el directorio "rw" lo hacemos con la orden :
#ls
Así pues nos aparecerán los siguientes documentos:
netcfg runlevel udhcpd.conf wlan0
resolv.conf telnetd.hosts udhcpd.leases
#
Para ver el contenido podremos utilizar la orden "cat" o la orden "vi". Con la orden "cat" nos lo mostrara, con la orden "vi" nos permitirá, además, editar lo que sea necesario. Si no estais habituados os aconsejo la orden "cat" para evitar alterar involuntariamente ningún parámetro y así familiarizaros con la nueva maquina sin peligro de desconfigurar nada.
Empezamos por el primero y tecleamos:
# cat netcfg
la respuesta debería ser:
#
# netcfg
#
# Primary Interface (RL2/wlan0, RL3/br0, RL4/eth0)
# Need first 3 if not dhcp
# p_dhcp should be either
enabled or disabled
p_dhcp=enabled
p_address=192.168.4.51
p_netmask=255.255.255.0
p_broadcast=192.168.4.255
# Secondary Interface (RL2/eth0, RL4/wlan0)
# Ignored at RL3
s_dhcp=disabled
s_address=10.0.1.1
s_netmask=255.255.255.0
s_broadcast=10.0.1.255
# These should pull from dhcp ...
router=
tftphost=192.168.4.1
logaddr=
# Network Swapping
swaphost=
swapport=4401
# Masqerading support ... Masquerade this network
# ex: 10.1.0.0/27
# Will Masquerade 10.1.0.0-10.1.0.31
# This assumes you've set up eth0 appropriately
# elsewhere
masq_net=10.0.1.0/27
#
Es decir, nos muestra la configuración de IP por defecto de nuestra maquina. Si observamos, nos daremos cuenta que, para cada arranque "normal" la configuración es distinta. En nuestro caso, como sabemos que hemos arrancado en "runlevel2", es decir, en modo "cliente" la "primary address" o p_address corresponde a la WLAN, o sea, al puerto radio y corresponde a la IP 192.168.4.51 que seria la IP que debería de responder si llamáramos en modo Ad-hoc desde otro "cliente". Así mismo nos muestra la IP que utilizará para Broadcast y también la netmask o máscara.
En el "secondary interface" podemos ver que los datos, trabajando en modo “cliente” o "runlevel2" corresponden a la ethernet, y, en este caso, corresponderían a la IP 10.0.1.1 con una máscara de 255.255.255.0 y la IP del Broadcast 10.0.1.255.
Observamos asimismo que el “p_dhcp”, es decir, el cliente dhcp de la wlan esta activado y el “s_dhcp”, es decir, el cliente dhcp de la ethernet esta desactivado.
Así pues, ya sabemos como poder conectar con la maquina a través del port ethernet!
Si seguimos observando veremos como se definen más parámetros, como el router, que ve en blanco. El tftphost, que es el servidor que, si recordáis, buscaba al arrancar, el swaphost, el swapport y para acabar, la máscara de la red ethernet, para generar una tabla de IP entre la 10.0.1.0 i la 10.0.1.27.
Podemos pues sacar ya las primeras conclusiones.
a.- Para cada modo de arranque nos corresponderá un netcfg diferente.
b.- Para conectar en HTML con nuestro LinuxAP por ethernet, debemos configurar la maquina con la que deseemos acceder con una IP del rango 10.0.1.2 al 10.0.1.27.
c.- Si queremos un control total de nuestra maquina no nos queda mas remedio que entrar a configurarla por el port RS-232, es la única manera fiable y que no nos confundirá.
Vamos ahora a analizar el resto de configuraciones de etc/rw
#
cat resolv.conf
domain olotwireless.net
nameserver 10.34.121.1
#
Ep! Esto ya no nos es del todo desconocido!...Esto no venia “por defecto” en nuestro AP! Evidentemente el cliente dhcp de nuestro LinuxAP ha capturado el dominio y la IP del Punto de Acceso cercano, con lo que ya tendremos algunos datos mas para configurar posteriormente otros parámetros de nuestra maquina.
Seguimos investigando
#
cat runlevel
2
#
Esto nos confirma lo que ya habíamos observado al arrancar nuestro LinuxAP, así que ya sabremos por donde cambiar el modo de nuestro AP. Seguimos…
#
cat telnetd.hosts
10.
192.168.
Evidentemente nos muestra los “rangos” de IP con las que trabaja el servidor de telnet. Seguimos…
#
cat udhcpd.conf
start 10.0.1.2
end 10.0.1.27
interface eth0
lease_file /etc/rw/udhcpd.leases
option dns
10.34.121.1
option subnet
255.255.255.0
option router 10.0.1.1
option domain example1.com
option lease 86400
Ep… este es importante. Se trata del servidor DHCP que lleva incorporado nuestro LinuxAP. Vemos que de origen viene configurado para dar a nuestros posibles clientes las IP de la 10.0.1.2 a la 10.0.1.27. También apreciamos que esta preparado para trabajar en la ethernet (recordemos que estamos en modo “cliente”) y que, en el caso de tener relacionadas IP especificas con determinadas MAC ira a leerlas al fichero /etc/rw/udhcpd.leases. Seguimos observando y vemos que en “option DNS” nos da un numero de IP que nos es desconocido (137.39.1.3) y, así mismo el numero de “option subnet” (255.255.255.224) tampoco corresponde a nada conocido, esto quiere decir que estos serán datos a modificar posteriormente. Seguimos leyendo y encontramos “option router”. Esta si que nos es conocida ya que es la IP de nuestra ethernet (10.0.1.1). Encontramos ahora el “option domain” que seria el dominio que asociaríamos a nuestra red y que, seguro, no será examples1.com, y ya finalmente encontramos la “option lease” que es el tiempo que el servidor DHCP nos “reservará” la IP que nos haya otorgado y que, en este caso es de 86400 segundos.
Seguimos buscando…
# cat udhcpd.leases
Y, la encontramos en blanco… ya que aquí es donde el programa guardara la relación que asociará una IP determinada a una MAC determinada.
I, ya, por último:
#cat
wlan0
#
# wlan0
#
SSID=opensta
# S/B one of 1,6,11
CHANNEL=11
wep=
# Only for RL/3
NWDS=0
#
Otra configuración importante. Aquí vemos que se define el SSID que tendrá nuestro LinuxAP cuando este definido como Punto de acceso, en este caso « opensta », el canal, que en principio nos recomienda que sea 1, 6 o 11 y que, en nuestro caso, si tenemos un AP de procedencia Belga nos limitará, en principio, solo a trabajar canal 11 ya que el resto no están contemplados por el software de la tarjeta (USR2410 o USR2445).
Pero… algo falla! En la arrancada de nuestra maquina hemos visto que intentaba arrancar en el canal 3… y aquí le esta diciendo que arranque en el canal 11!!!. ¿Que significa esto??.. Pues que, simplemente, nuestra maquina no viene a leer el wlan0 a la hora de arrancar en modo cliente, sino que los datos los lee en otra parte como podremos ver mas adelante. Seguimos… Vemos también que podríamos activar la encriptación y también activar el número de AP de una red para hacer WDS, que es un nuevo sistema de reconocimiento de “estaciones” basada en la MAC de cada tarjeta y que nuestro LinuxAP distribuiría por los AP vecinos. Esto, pero, solo funciona con el modo “runlevel3”, es decir, con nuestro AP en modo transparente.
Así
pues ya hemos hecho un repaso a nuestro LinuxAP en modo “cliente” y ahora ya
estamos preparados para empezar a trabajar con el.