Dialup, Configuración Módem

Requerimientos antes de iniciar con la Instalación

Tipos de Módem

Antes de intentar configurar un Módem para Linux, asegúrese que este Módem no sea WinModem , la razón por la cual no pueden ser utilizados Winmodem's en Linux (generalmente, mas no siempre) es que estos utilizan el CPU del "Host" para convertir las señales digitales en señales análogas que pueden ser enviadas a través de lineas telefónicas, esto a diferencia de un Módem clásico que utiliza un chip especial dentro del módem para esta función; lo anterior implica que para utilizar un Winmodem es necesario un driver especial para implementar en el sistema operativo, debido a que los desarrollos de Winmodems utilizan un sistema propietario "propietary" los detalles para desarrollar un driver no son divulgados por la empresa, por lo tanto limitan su uso únicamente a sistemas operativos que soporta el vendedor de Modems (Típicamente Microsoft Windows). Una lista de modems NO compatibles con sistemas Linux . (Véase comentario al final de esta página, sobre una posible solución )

Datos
  • El número telefónico de su proveedor de Internet (ISP)
  • El usuario y contraseña utilizados para conectarse a su ISP
  • El nodo IP del ( o los) servidor DNS de su ISP
Kernel

El Kernel de Linux debe estar compilado para utilizar el daemon pppd, para verificar si la imagen del Kernel es capaz de ejecutar pppd,ejecute:

 
modprobe -l  | egrep ppp 

Debió aparecer una linea indicando la ubicación del modulo, si no aparece entonces debe crear una nueva imagen del Kernel . Otra utileria que es necesaria para esta instalación es chat , ejecute: which chat , si aparece ...no chat in.. entonces debe instalar el RPM de chat.

Instalación del Módem

La instalación del Módem es relativamente automática, aunque existen una gran cantidad de detalles para inicializar el Hardware de un Módem, basta conectar el Módem al puerto Serial o "Slot" y reinicializar el "Host" y este debe ser detectado , ejecute el comando dmesg el cual despliega todo el "Hardware" detectado al arranque, observando los resultados de este comando puede analizar si fue detectado el Módem. Seguramente aparecerán algunas lineas claramente indicando ppp o serial modem y sus detalles.

Marcación

Chat

Para establecer una conexión de Internet vía Dial-up se debe invocar el daemon pppd , sin embargo debido a que pppd requiere varios parámetros para ser invocado se utilizan algunas herramientas para modularizar el proceso. Chat se utiliza para automatizar el proceso de marcación, emplea un script que contiene todos los parámetros necesarios para realizar una conexión Dial-up:

 
ABORT 'BUSY'
ABORT 'NO CARRIER'
'' ATZ
OK ATDT61-703234
CONNECT ''

Este script debe encontrarse bajo el directorio /etc/ppp/ con un nombre descriptivo como: scriptchat o lasecuenciachat , además debe ser asignado acceso 755, para que sea ejecutable por cualquier usuario del sistema.

Este script indica pares de acontecimientos que deben ser ejecutados entre el Módem y el Sistema.

  1. Los caracteres '' indican que no se debe esperar respuesta alguna del módem, por lo tanto el comando ATZ debe ser enviado de inmediato al módem, el enviar la señal ATZ al módem indica que debe ser reinicializado (similar a un "Boot" de cualquier computadora).
  2. Cuando se reciba la señal OK del "Módem", se debe enviar la señal ATDT61-703234, esta ultima señal contiene el número que será marcado por el módem (61-703234).
  3. Tercera Linea: Cuando se reciba la señal CONNECT del Módem, no es necesario ejecutar ninguna acción ('').

El script anterior es sumamente sencillo ya que no se ocupa de casos especiales, como remarcaciones,errores..etc.Los comandos AT ("Attention Commands") que son enviados al Módem generalmente son definidos para cada vendedor de Módem , por lo tanto el manual de su módem debe contener varios AT específicos, sin embargo, los AT definidos en el script anterior generalmente son validos para todo vendedor de Modems.

Otro AT útil puede ser: ATDP61-703234, a diferencia de ATDT , ATDP marcará el teléfono esperando un servicio de pulso (Dial-Pulse) mientras ATDT (Dial-Tone) el ampliamente utilizado (mas no estandarizado) servicio de tono. Otro parámetro importante es la ", (coma)" que permite esperar un lapso de tiempo antes de continuar con la marcación, ATDT9,,,61-703234 indica que debe marcarse 9 y esperar 3 segundos antes de marcar 61-70323 , un caso típico cuando se tiene una red telefónica corporativa.

Usuarios y Contraseñas

Dentro del directorio /etc/ppp existen dos archivos llamados pap-secrets y chap-secrets , estos archivos deben contener el usuario y contraseña que fueron asignados por su ISP, siga el formato indicado en el archivo, sin entrar en mucho detalle, la diferencia entre PAP y CHAP es que CHAP utiliza una metodología más segura (MD5) para enviar información a través de la Red, y PAP no utiliza esto; es necesario que su ISP soporte la metodología CHAP , por lo que si no esta seguro, se recomienda colocar el nombre y contraseña dentro del archivo pap-secrets

pppd

Una vez escrito el script chat y definidos los usuarios y contraseñas en pap-secrets , es necesario configurar algunos parámetros que utilizará pppd , para invocar pppd generalmente se define otro script similar al utilizado por chat bajo el directorio /etc/ppp/peers/ , este script es colocado bajo este directorio para facilitar la ejecución de pppd , de esta manera basta ejecutar el comando:

 
  pppd call <nombre_del_script_pppd>   

Un script pppd es el siguiente:

 
ttyS1 38400 lock crtscts noipdefault
user gabriel
defaultroute 0.0.0.0:0.0.0.0 
connect '/usr/sbin/chat -v -f /etc/ppp/lasecuenciachat'

El primer parámetro de este script indica el "device" sobre el cual se encuentra el módem , este típicamente es ttyS1 (Puerto Serial 2), como se mencionó anteriormente puede utilizar el comando dmesg para verificar su ubicación.El segundo parámetro indica la velocidad que utilizará el módem en bps . lock permite que el "device" (modem) no pueda ser manipulado por ningún otro proceso del sistema, mientras crtscts significa que se utilizara "flow control" de Hardware, algo absolutamente necesario para cualquier conexión por arriba de los 9600 bps. noipdefault indica que la dirección IP no puede ser obtenida del "Host" que esta iniciando la marcación, por lo tanto debe ser obtenida del ISP.

La linea user gabriel indica el usuario que realizará la conexión, donde gabriel es el usuario definido en pap-secrets o chap-secrets según sea el caso. defaultroute indica que debe ser agregada una ruta "default" a la tabla de ruteo del sistema para asegurarse que todo paquete de información desconocido sea enviado a esta interfase, 0.0.0.0:0.0.0.0 significa la dirección IP del "Host" local y la dirección IP "Host" remoto (ISP) respectivamente , 0.0.0.0 indica que estas direcciones serán asignadas por el "Host" remoto.

Y finalmente connect '/usr/sbin/chat -v -f /etc/ppp/lasecuenciachat' ejecuta el script para chat llamado lasecuenciachat definido en la sección anterior.

Si el script anterior lo nombra miconexion , a partir de este punto si ejecuta el comando pppd call miconexion debe oír su módem marcar a su ISP. Aun no lo haga, falta una parte critica para utilizar Internet con una conexión Dial-up en Linux.

La configuración DNS

Hasta este punto en la configuración solo es posible establecer una conexión Dial-up con nuestro ISP, pero sin mucha utilidad ya que nuestro "Host" aun no sabe como encontrar nombres en Internet (Vea DNS ) , para esto es necesario modificar el archivo resolv.conf que contenga al menos los siguientes parámetros:

 
nameserver 203.23.12.1
nameserver 203.23.12.2

Donde 203.23.12.1 y 203.23.12.2 son los nodos IP de los servidores DNS de su ISP. Estas dos lineas permiten que toda resolución de DNS que requiera su "Host" , desde correos electrónicos, FTP o páginas de Internet (HTTP) sea encontrado en alguno de estos dos servidores. Si aun desea eficientizar esta instalación puede hacer las resoluciones en un servidor DNS más cercano , definiendo un servidor Cache DNS en su Host .

Archivos ip-up y ip-down

Estos dos archivos localizados también dentro del directorio /etc/ppp son utilizados al iniciar y al terminar la conexión Dial-up, en el caso de ip-up este script es ejecutado cada vez que se inicie una conexión Dial-up, mientras ip-down es ejecutado cada vez que se termine una conexión Dial-up.

En RedHat Linux se recomienda no modificar este archivo y crear un archivo ip-up.local y ip-down.local, un ejemplo seria colocar la linea /usr/bin/wall "La conexion al ISP fue exitosa" , en el archivo ip-up.local lo cual enviaría un mensaje a todas las terminales del sistema. Otro uso más practico seria cuando se emplea qmail con Dial-up ya que automatiza el revisar y enviar correo electrónico cada ocasión que se inicie una conexión ppp.

Terminar la Conexión

Para terminar la conexión Dial-up es conveniente definir un script que realice la terminación, coloquelo dentro de /etc/ppp para que sea accesible de cualquier directorio, la ejecución del siguiente script terminaría la conexión:

 
#!/bin/sh
killall 'pppd'

Comentarios

Gracias al paquete ltmodem-kv_2.2.16_22-6.00a1-1.i386.rpm he conseguido poder conectarme a Internet utilizando un WinModem en Linux (hay un rpm para cada versión del kernel). .

En la página http://www.physcip.uni-stuttgart.de/heby/ltmodem/ se encuentran los detalles de diversos RPM's.

Eduardo Cobian Garrido, educobian@hotmail.com