Depto. Automática y computación
Universidad Pública de Navarra
Daniel Morató
daniel.morato@unavarra.es

41309 Laboratorio de Programación de Redes

3º Ingeniero Técnico en Informática de Gestión

Práctica 2 - Conexión de PCs a través de modem

    1. Objetivos

    En las prácticas de esta asignatura trabajamos con routers CISCO y PCs con sistema operativo Linux. Una de las formas de configurar un router CISCO es a través de una conexión desde el puerto serie de un ordenador al puerto de consola del router. Por ello, lo primero que haremos es aprender a utilizar el puerto serie del PC. Para ello emplearemos un modem conectado al puerto serie de un PC y conectaremos dos PCs empleando modems y una llamada telefónica.

    2. Material

    3. Avisos generales

    En los ordenadores dispuestos para la realización de estas prácticas (PC A, B y C) se ha creado una cuenta de nombre lpr y password telemat. Esta cuenta tiene permisos para ejecutar mediante el comando sudo ciertos comandos restringidos normalmente al superusuario. Igualmente se le han otorgado permisos para modificar el contenido de ciertos ficheros del sistema necesarios para la realización de la práctica. Para más detalle diríjanse a la documentación sobre los armarios.

    Si quieren conservar cualquier fichero entre sesiones guárdenlo en un disquete, dado que no se asegura que los ficheros creados o modificados durante una sesión de prácticas se mantengan para la siguiente.

    4. Devices (dispositivos)

    El acceso a los perifericos en Linux se realiza a traves de los devices. Los devices están en el sistema de ficheros de Linux por lo que parecen ficheros pero al abrirlos y leer y escribir sobre ellos en realidad estamos pidiento al kernel de Linux que envíe o reciba información a un dispositivo determinado. El device que hace referencia al primer puerto serie suele tener de nombre /dev/ttyS0. Compruebe su existencia en su ordenador con ls -l. Podrá ver que hay varias diferencias con la salida para un fichero normal, por ejemplo:

    $ ls -l /dev/ttyS0
    crw-rw-rw-   1 root     users        4,  64 May  5  1998 /dev/ttyS0
    

    Por un lado vemos que en la sección de permisos, la primera letra, que no es un permiso sino un indicador del tipo de fichero, vale c. Esto es lo que indica que éste no es un fichero ordinario, si fuera un fichero ordinario aparecería -, si fuera un directorio aparecería d. La c indica que el fichero es un device para un dispositivo a caracteres. Eso quiere decir que hace referencia a un dispositivo al cual se escribe byte a byte sin emplear un buffer.

    También aparecen dos números que son toda la información que contiene este fichero. No es que haya un contenido del fichero, en realidad, el fichero solo sirve para indicar esos dos números. El primero es lo que se llama el major number y hace referencia al driver dentro del kernel que debe emplear el sistema cuando abramos este fichero, leamos o escribamos en él. El segundo número es lo que se llama el minor number y se le pasará al driver como argumento (qué haga con él depende del driver en concreto, en uno de disco por ejemplo sirve para indicar la partición sobre la que trabajar). Podemos saber qué driver es el que se emplea con el major number indicado mirando el contenido del fichero /proc/devices.

    El device ttyS0 se utiliza normalmente para comunicarse con dispositivos conectados al primer puerto serie. Algunos programas que trabajan con módems conectados al puerto serie suelen buscar un device llamado /dev/modem por lo que es normal que haya un link suave a /dev/ttyS0 con ese nombre.

    5. minicom

    El programa minicom nos permite enviar información al puerto serie y dar ordenes al posible módem conectado a él, así como configurar la velocidad a la que funcionará el puerto serie. Lo que vamos a hacer a continuación es comunicar dos PCs entre si empleando sus puertos serie y un cable NULL modem entre ellos Este cable tiene cruzados los pines de transmisió y recepción

    Revise la documentación sobre los armarios y verá que entre PC A y PC B hay un cable serie de este tipo uniendo los primeros puertos serie de ambos.

    Checkpoint
    Muestren al responsable de prácticas que la comunicación les funciona correctamente

    Observe que la configuración del puerto serie no es algo interno a minicom sino que se queda configurada en el dispositivo. Para probarlo:

    Dos PCs con enlace punto-a-punto

    Una última nota sobre el /dev/modem, /dev/ttyS0 . Al comportarse como un fichero UNIX varios programas podrían tenerlo abierto al mismo tiempo pero al llegar datos por el puerto serie el sistema se lo entregará al primero en reaccionar de los programas que estén esperando. Para arbitrar esto se utiliza un fichero de lock (/var/lock/LCK..ttyS0). Un programa, antes de abrir /dev/ttyS0, mira si ya existe el fichero lock y si no existe lo crea, con lo que se considera el dueño del dispositivo. Al finalizar el uso del device borra el fichero. minicom es uno de los programas que usa esto por lo que si se cierra de forma incorrecta y no borra el fichero se negará a volverse a abrir hasta que desaparezca el lock. Para arreglarlo solo tiene que borrar el fichero LCK..ttyS0

    6. Módems y comandos Hayes

    A continuación vamos a establecer un enlace PPP con IP entre los dos PCs pero esta vez los PCs representan máquinas en ubicaciones alejadas, por lo tanto no podemos conectarlas mediante un simple cable serie. Lo que vamos a hacer es colocar unos modems que conviertan las señales de nuestros puertos serie en señales que se puedan transmitir por una línea telefónica tradicional. En nuestro caso realizaremos la llamada a través de una de las centralitas telefónicas disponibles.

    Primero probemos el modem:

    A continuación probemos la línea:

    Finalmente establezcamos la comunicación:

    Dos PCs con enlace punto-a-punto por módem

    Checkpoint
    Muestre al responsable de prácticas que el chat telefónico les funciona correctamente

    Al igual que en el caso de la conexión directa por el puerto serie puede salir del minicom sin resetear el módem, dejando la conexión establecida.

    7.- Login por modem [opcional]

    Algo que sería muy interesante es que pudiéramos llamar al modem del PC y tras conectar nos ofreciera la posibilidad de hacer login y obtener una shell del sistema.

    Investigue cómo se podría hacer esto. ¿Qué software le hace falta? ¿Cómo lo configuraría?

    Una pista: mgetty

    Si cree que sabe cómo hacerlo pero necesita más privilegios comente su solución al profesor de prácticas y puede lograr un checkpoint adicional si lo hace funcionar.

    8. Conclusiones

    En esta práctica hemos aprendido a emplear el puerto serie de un PC con Linux. Lo hemos usado para realizar una conexión directa entre dos PCs empleando un cable NULL modem o una llamada telefónica con modems.

    El conocimiento adquirido sobre el manejo del puerto serie nos será muy útil a la hora de configurar los rouers Cisco. Volveremos a los modem cuando vayamos a configurar un ISP que ofrezca acceso a Internet por modem.


    Depto. Automática y computación
    Universidad Pública de Navarra
    Daniel Morató
    daniel.morato@unavarra.es