Conexión de una red a internet mediante Speed Touch USB ADSL


ADSL se ha abaratado y está pegando fuerte. Mucha gente quiere compartir su conexión de banda ancha con una pequeña red casera o de oficina.

Pero las ofertas de los proveedores suelen venir acompañadas con “modems” ADSL conectables solo al puerto USB que dificultan esta tarea, pero si conectamos un Linux al “modem” ADSL podemos compartir la conexión fácil y eficazmente.

¿Cómo? Explico en este articulo como lo he hecho con mi red y el “modem” Speed Touch que me suministró mi proveedor.

En primer lugar, hay que conectar una máquina Linux a internet a través del “modem” ADSL. Esta máquina será la encargada de transportar los paquetes desde la red hacia internet y viceversa, el resto de máquinas de la red deberán tener como gateway a esta máquina.

Si se dispone de un router adsl todo se torna más sencillo, pues basta conectar las máquinas al router mediante ethernet y configurar este para que haga NAT (Network Address Translation).

El problema radíca en que los proveedores de conexión nos hacen ofertas muy atractivas entregando “modems” ADSL que se conectan al puerto USB y nos clavan si pedimos un router, voy a intentar explicar como configurar un equipo Linux conectandolo a uno de estos “modems” para conseguir compartir la conexión con el resto de la red.

En concreto voy a explicar como hacer esto con un “modem” speed touch USB de Alcatel que es el que me endosaron a mi (al menos este tiene algo de soporte para Linux). Con otros modems será similar.

Para ello hay que tener instalado un kernel con soporte USB en nuestra máquina y activado dicho soporte. Necesitaremos también el demonio pppd, preferiblemente en la versión 2.4.x.

# pppd –version
pppd version 2.4.1

Puede consultar otro articulo en Bulma sobre Configuración PPP para el Linux 2.4(1)

Partimos de la premisa de que esto es así, es decir que tenemos soporte USB con HotPlug funcionando y pppd instalado.

La mayoría de distribuciones en su versión actual ya tienen el soporte USB activado y pppd por lo que no debería haber problemas con distribuciones recientes.

A pesar de ello podemos encontrar información sobre la instalación del soporte usb en [http://linux-usb.sourceforge.net/](2) y especificamente para el modem SpeedTouch en
[http://linux-usb.sourceforge.net/SpeedTouch/howto.html](3)

Es importante destacar que el controlador USB puede ser de dos tipos, UHCI o OHCI que son dos estandares incompatibles y esto ha de ser reflejado en el soporte del kernel y se usará más adelante.

Para saber de que tipo de chipset disponemos podemos usar el comando
# lspci -v | grep USB
Puede encontrar más información sobre ello en otro artículo Bulmero: Truco para compilar el kernel adaptado a nuestro harware(4)

Instalación del modem
Voy a tratar el caso concreto del Speed Touch que es el que he instalado. Para este modem lo mejor es utilizar los drivers de Código Abierto de Benoit Papillault que estan en el archivo speedtouch-1.1.tar.gz(5).

Necesitamos tambien descargar el microcodigo cerrado que Alcatel pone a disposición en [http://www.speedtouchdsl.com/support.htm](6). Hay que descargar el archivo y descomprimirlo pero no instalarlo, solo se necesita el archivo mgmt.o ya que los drivers citados se encargan de cargarlo mediante un programa.

Para instalar los drivers hay que descomprimir el archivo descargado speedtouch-1.1.tar.gz, configurar y compilar y finalmente instalarlo:

# tar -xzvf speedtouch-1.1.tar.gz

# cd speedtouch-1.1

# ./configure

# make

# make install

Esto debería habernos instalado /usr/local/sbin/modem_run

Configuración de pppd
Es necesario editar (o crear si no existe) 4 archivos:
/etc/ppp/options, /etc/ppp/peers/adsl, /etc/ppp/chap-secrets y /etc/modules.conf

Hay información extensa y útil sobre ppp en internet, tan solo voy a citar como referencia este How to(7)

Los archivos:

/etc/ppp/options: dejarlo como sigue comentando las lineas que sobren con # al inicio

# Inicio de options
defaultroute
noauth
usepeerdns
lock
noipdefault

#fin de options

/etc/ppp/peers/adsl: Los parametros VPI (Virtual Path Id) y VCI (Virtual Circuit ID) los ha de proveer el ISP donde tengamos contratada la conexión.
Por otra parte existen dos tipos de protocolo PPPoA y PPPoE que tambien ha de ser determinado por parte del provehedor.
El ejemplo descrito a continuación utiliza PPPoA.

#debug
kdebug 1
noipdefault
defaultroute
#
# edit the following line for your provider. examples follow
# France, wanadoo: -vpi 8 -vci 35
# UK, BTopenworld: -vpi 0 -vci 38
# you may use one of the following PPPoA methods:
# pppoa2: uses fork to create a read and write process
# pppoa2m: backported new atm-aal5 stack from pppoa3 in pppoa2m
# pppoa3: uses threads
pty “/bin/pppoa3 -vpi 0 -vci 38”
nodetach
sync
#
# put your username in the following line
user “miusuario”
noauth
kdebug 1
noaccomp
nopcomp
#nomagic
noccp
#passive
#lcp-echo-interval 5
#lcp-echo-failure 30
#persist

/etc/ppp/chap-secrets: Este archivo nos permite especificar la password para la autentificación del usuario con el que nos conectaremos.

# Secrets for authentication using CHAP
# client server secret IP addresses
miusuario * mipassword

/etc/modules.conf: así es como tengo configurado mi archivo, las lineas añadidas para la configuración de adsl son las 8 últimas (en itálica).

alias parport_lowlevel parport_pc
alias eth0 3c59x
alias usb-controller usb-uhci
alias sound-slot-0 sb
post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L
>/dev/null 2>&1 || :pre-remove sound-slot-0 /bin/aumix-minimal
-f /etc/.aumixrc -S >/dev/null 2>&1 || :
alias synth0 awe_wave
alias char-major-108 ppp_generic
alias /dev/ppp ppp_generic
alias tty-ldisc-3 ppp_async
alias tty-ldisc-13 n_hdlc
alias tty-ldisc-14 ppp_synctty
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate

Arrancalo por dios!
arrancar el firmware
# modem_run -m -f /path/to/mgmt.o
arrancar pppd
#pppd call adsl
En teoría con esto debería andar y tener el enlace ppp0 abierto, para revisar esto basta escribir:
# ifconfig ppp0

Si tenemos disponible la conexión, tan solo resta configurar NAT, activar el reenvio de paquetes y de paso aplicar algunas reglas de filtrado sobre el enlace.

Esto está perfectamente explicado en el articulo bulmero iptables y NAT para vagos(8)

Tan solo voy a añadir que para que las iptables queden almacenadas , hay que sobreescribir el archivo /etc/sysconfig/iptables con las listas actuales. Es recomendable no modificar directamente este archivo, existen herramientas para hacerlo. Y modificar /etc/sysctl.conf para que se active el reenvio de paquetes al reiniciar.

Por ejemplo en Red Hat se hace de la siguiente forma:
# /sbin/iptables-save > /etc/sysconfig/iptables
Y para el tema del ip-forwarding hay que añadir / modificar:
# Enables packet forwarding
net.ipv4.ip_forward = 1

en /etc/sysctl.conf

Agradecimientos:
No hubiera podido conectar este cacharro a internet sin la estimable ayuda de:
Oriol Raventos
Ricardo Galli
Kiko Piris

Y los autores de los artículos mencionados.Lista de enlaces de este artículo:

  • http://bulma.net/body.phtml?nIdNoticia=383
  • http://linux-usb.sourceforge.net/
  • http://linux-usb.sourceforge.net/SpeedTouch/howto.html
  • http://bulma.net/body.phtml?nIdNoticia=1469
  • http://speedtouch.sourceforge.net/download.php
  • http://www.speedtouchdsl.com/support.htm
  • http://www.tldp.org/HOWTO/PPP-HOWTO/
  • http://bulma.net/body.phtml?nIdNoticia=1522
  • Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1553 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.