TCPI/IP sobre USB con un Nokia 9500


La mayor parte de los dispositivos móviles de gama media-alta, incluyen diversos sistemas de conexión. Desde luego que bluetooth y wifi son los más fáciles de utilizar, pero en ocasiones hay que recurrir al cable USB.

Al fin y al cabo, es una buena excusa para trastear un fin de semana.

Escenario

El Nokia 9500 puede conectarse a través de su tarjeta
wireless, de manera muy fácil y transparente pero … en
ocasiones no disponemos de un punto de acceso, como en mi trabajo,
con lo cual hay que recurrir a la conexión por cable (Sí
a estas alturas todavía se usan cables), para poder
sincronizar los datos de la agenda, la lista de tareas y los
contactos, o poder bajar el correo con mucha más rapidez y a
un costo menor que con la conexión GPRS.

Entrando en materia, el reto es poner en marcha un servidor dchp
para asignar una IP dinámica al Nokia 9500, compartir la
conexión a Internet de nuestro equipo de escritorio, y todo
ello sobre una nueva tarjeta de red que nos creará el cable
USB, por lo que tendremos que montar un bridge. Manos a la obra.

Configurar el cable de
datos

Para que el cable de datos actúe como tal ha de
configurarse como IP passthroug.

Favoritos -> Herramientas -> Panel de Control -> Conexiones -> Configuración cable

El nuevo dispositivo

Comenzaremos por ver lo que sucede cuando conectamos el Nokia
9500 al ordenador, para ello tecleamos desde la línea de
comandos:

# dmesg
Veremos al final las siguientes líneas:

[17180241.692000] usb 2-2: new full speed USB device using ohci_hcd and address 2
[17180242.152000] usbcore: registered new driver cdc_ether
[17180243.740000] eth0: register ‘rndis_host’ at usb-0000:00:03.1-2, RNDIS device, 00:0e:ed:51:29:88
[17180243.740000] usbcore: registered new driver rndis_host
Bueno, parece que tenemos un dispositivo nuevo y es algo así
como un rndis y parece que está montado sobre eth0. De todas
formas, no te lo creas del todo. Si corres el network-admin, verás
como sí, ha aparecido una nueva interfaz de red, pero no es
eth0, sino eth2. Por cierto, ni se te ocurra tocar la configuración
con el network-admin, si no quieres que te ocurra lo mismo que a mi:
más de una hora perdida.

Creando el bridge

Comprueba si tienes instaladas las bridge-utils y si no:

# apt get-install bridge-utils
A partir de ahí nos queda configurar el bridge:

# brctl addbr brUSB
# brctl stp brUSB off
# brctl sethello brUSB 0
# brctl setfd brUSB 0
# ifconfig brUSB 192.168.2.1 netmask 255.255.255.0 up
# ifconfig eth2 0.0.0.0 up
# brctl addif brUSB eth2
Un par de explicaciones:

  • brUSB es un nombre arbitrario para el bridge (brUSB = bridge
    USB, en mi caso)

  • En la primera sentencia ifconfig uso 192.168.2.1 como
    dirección del bridge de manera arbitraria, siendo mi red
    local 192.168.0.0/24. Debes asignar un rango de valores que no
    coincida con tu red y que sea de tipo privado.

  • eth2 es la interfaz de red creada por el Nokia 9500, como
    vimos en el apartado anterior.

Vamos a ver como ha quedado el bridge:

# brctl show
bridge name bridge id STP enabled interfaces
brUSB 8000.000eed512988 no eth2

#ifconfig
brUSB Link encap:Ethernet HWaddr 00:0E:ED:51:29:88
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3990 (3.8 KiB) TX bytes:3997 (3.9 KiB)

eth2 Link encap:Ethernet HWaddr 00:0E:ED:51:29:88
inet6 addr: fe80::20e:edff:fe51:2988/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3990 (3.8 KiB) TX bytes:6297 (6.1 KiB)

Instalando, configurando y poniendo en marcha el servidor dchp

Instalamos el servidor dhcp:

# apt-get install dhcp3-server
Para la configuración del dhcp vamos a utilizar un fichero
personalizado, puesto que para la conexión PAN mediante
bluetooth de la iPAQ los datos son diferentes, por tanto, lo corremos
con diferentes configuraciones.

# cd /var/lib
# mkdir brUSB
# cd brUSB
# gedit dhcpd.conf
En el fichero introducimos el siguiente texto:

# dhcpd.conf for brUSB
#======================

# global settings
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.1 192.168.2.254;
option domain-name-servers 80.58.0.33,80.58.32.97;
option routers 192.168.2.1;
}
Ahora podemos poner en marcha el servidor:

# dhcpd3 -cf /var/lib/brUSB/dhcpd.conf
Compartiendo
la conexión a Internet

Desde la consola tecleamos:

#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A POSTROUTING -o $FORWARD_IFACE_ -j MASQUERADE

Configurando la conexión a Internet en el Nokia 9500

Seleccionamos

Favoritos -> Herramientas -> Panel de Control -> Conexiones -> Configuración de Internet –> Nuevas
Contestamos que no queremos crear una copia del punto de acceso y
seguimos con el asistente:

Probando la conexión

Ahora podemos ir al navegador web del Nokia 9500 y, cuando nos
solicite la conexión, elegir “cableUSB” (La conexión
que creamos en el punto anterior).

También podemos comprobarla desde la consola:

# ping 192.168.2.254
Desconectando y
eliminando el bridge

Desde la consola:

# killall dhcpd3
# ifconfig eth2 down
# ifconfig brUSB down
# brctl delif eth2
# brctl delbr brUSB
Simplificando: sin
el servidor dhcp

Vale, puede simplificarse. En el caso del Nokia 9500 se puede
prescindir del servidor dhcp, debido a que se pueden asignar
directamente los valores que utilizará la conexión. Así
que no montes, o no pongas en marcha el servidor dhcp y vamos a
configurar el Nokia 9500

Favoritos -> Herramientas -> Panel de Control -> Conexiones -> Configuración de Internet –> Nuevas
Editamos la conexión y seleccionamos “Avanzad.”

Cambiamos a No la opción “Recuperar IP
automáticamente” e introducimos los datos de la conexión:

TODO

Como es lógico, queda pendiente hacer un script para
automatizar estas tareas. De hecho, lo tengo hecho en plan muy simple
(chapuza) sin control de errores y sin que se le puedan pasar
variables para indicarle la interfaz de red, el nombre del bridge o
las características de la subred a crear. Tal vez el próximo
fin de semana.

Última versión de este documento
Puedes encontrar la última
versión de este documento
en mi wiki

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=2339 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.