Capítulo 3. Dispositivos de interconexión

Tabla de contenidos

1. Conexión con un módem nulo
1.1. Módem Nulo
1.2. Servidor
1.3. Terminal
1.4. PPP sobre Módem Nulo
1.5. Referencias y lecturas recomendadas
2. Conexión a Internet con un módem o módem ISDN
3. Conexión a Internet ADSL con pppoe
3.1. Referencias y lecturas recomendadas
4. Uso y configuración en una red LAN Ethernet
4.1. Tarjetas Ethernet
4.2. Configuración de una interfaz de red
4.3. Protocolo ARP
4.4. Cableado de una red local
4.4.1. Planeación
4.4.2. Adquisición de Hardware
4.4.3. Instalación
4.5. Referencias
5. Red Local Inalámbrica: uso y configuración
5.1. OpenBSD como cliente en una red inalámbrica
5.2. Dispositivo dedicado que obra como Punto de Acceso Inalámbrico
5.3. OpenBSD como Punto de Acceso Inalámbrico
5.4. Referencias

Durante el arranque, OpenBSD detecta la gran mayoría de dispositivos conectados a un computador. Una vez en operación puede examinar la detección con dmesg.

Si durante el arranque algún dispositivo no es detectado o es detectado incorrectamente, puede intentar hacer modificaciones durante el arranque iniciando con bsd -c cuando esté en el prompt de arranque del programa boot (ver [usuario_OpenBSD]).

1. Conexión con un módem nulo

Para conectar una terminal a un sistema OpenBSD puede emplearse un módem nulo. La terminal puede ser un computador con OpenBSD o con cualquier otro sistema operativo y un programa que permita ver la información que llegue a un puerto serial y enviar la que se teclee (por ejemplo sirven varios programas para comunicarse vía módem).

1.1. Módem Nulo

Un módem nulo es un cable serial que tiene en sus extremos dos conectores hembra para puerto serial y que intercambia algunas conexiones. Si ambos conectores son de 25 pines, todos los cables deben estar sueltos excepto:

  • (DSR) 6 & (DCD) 8 -- 20,

  • (TxD) 2 -- 3,

  • (RxD) 3 -- 2,

  • (RTS) 4 -- 5,

  • (CTS) 5 -- 4,

  • (SG) 7 -- 7,

  • (DTR) 20 -- 6 & 8.

En un conector de 9 pines la nomenclatura es: 1 DCD, 2 TxD, 3 RxD, 4 DTR, 5 SG, 6 DSR, 7 RTS y 8 CTS.

Un módem nulo mínimo sólo requiere que se conecten SG - SG (tierra), TxD - RxD (transmisión de uno con recepción del otro) y RxD - TxD. Sin embargo para poder efectuar control de flujo también deben conectarse los demás.

Aunque en el comercio es posible comprar un módem nulo, también es relativamente fácil ensamblar uno, una vez tenga conectores, cable y cautín. Si hace su propio módem nulo puede probar que la conexión haya quedado bien empleando un ohmiometro.

Una vez se conecte un módem nulo puede probarlo enviando mensajes por el puerto serial del uno y viendo lo que recibe en el otro. Por ejemplo si conecta dos sistemas OpenBSD empleando en ambos el primer puerto serial, en uno de los dos puede ejecutar (como usuario root)

	cat < /dev/cua00

mientras que en el otro ejecute

	cat > /dev/cua00

cuando escriba en el segundo y presione ENTER, en el primero recibirá el mensaje y líneas en blanco (cat no es el programa apropiado para establecer la comunicación, sólo para probar).

1.2. Servidor

Con un módem nulo conectado y funcionado puede configurarse un sistema OpenBSD como servidor para que permita conectar terminales a un puerto serial. Debe configurarse el programa init para que durante el arranque ejecute un programa que reciba conexiones por el puerto serial (tal programa normalmente es getty).

Basta editar el archivo /etc/ttys, quitar el comentario a la línea apropiada para que quede:

tty00   "/usr/libexec/getty std.9600"   vt220 on secure
      

Después puede reiniciar el sistema o reiniciar init con: kill -HUP 1.

En la línea modificada a /etc/ttys, tty00 se refiere a /dev/tty00 (i.e el dispositivo del primer puerto serial); /usr/libexec/getty std.9600 es el comando por ejecutar al arranque para manejar ese dispositivo[17]; vt220 indica el tipo de terminal que se conectará; on y secure son banderas[18] para init, el primero indica que se esperan conexiones por esa línea tty y el segundo indica que puede iniciar conexiones el usuario root.

1.3. Terminal

Una vez conectado su módem nulo a un servidor OpenBSD ya configurado para recibir conexiones por el puerto serial, puede conectar una terminal.

Si la terminal cuenta con un sistema operativo, puede emplear un programa de comunicaciones. Con este debe poder ver los mensajes de login del servidor. Desde ahí puede entrar como un usuario de ese sistema y trabajar como en una de las consolas virtuales (sin ambiente X).

Si el computador que va a conectar es un sistema OpenBSD puede emplear el programa tip como usuario root:

tip tty0 

Es posible que tenga que intentar varias veces, si configura el servidor con una velocidad diferente puede especificarla por ejemplo con tip -38400 tty0

tip empleará la descripción de tty0 disponible en /etc/remote (que por defecto está configurado para representar el primer puerto serial). Le permitirá ver la información que el servidor envíe, enviar información al servidor y hacer algunas operaciones especiales comenzando con el carácter '~'. Por ejemplo terminar la sesión con '~.', enviar un archivo con '~p' o recibir un archivo con '~g'.

Dado que puede haber inconvenientes enviando o recibiendo archivos de 8 bits, los archivos (especialmente binarios) que envíe o reciba con tip debe codificarlos antes con uuencode y decodificarlos después de transmitidos con uudecode. Para codificar un archivo prog.tgz y dejarlo codificado en prog.tgz.uue:

uuencode prog.tgz < prog.tgz > prog.tgz.uue

posteriormente para decodificarlo:

uudecode prog.tgz.uue
      

El inconveniente del método descrito es que tip no verifica la información transmitida. Una alternativa es emplear un protocolo como Zmodem. Para eso instale tanto en cliente como en servidor el paquete zmtx-zmrx (o lrzsz). Cuando desee transmitir un archivo del servidor al cliente, inicie la transmisión en el servidor:

zmtx Mattich2.pdf
      

y en el cliente desde tip use ~C zmrx. Para enviar un archivo del cliente al servidor ejecute en el servidor: zmrx y después desde tip use: ~C zmtx miarchivo.txt

1.4. PPP sobre Módem Nulo

Una vez esté conectado un cliente con un servidor OpenBSD, es posible emplear el protocolo PPP[19] para permitirle al computador cliente acceder a Internet o a la red a la que esté conectado el servidor.

Una forma posible para lograr conectividad a Internet en una Intranet es asignando una dirección estática de la red al cliente y empleando el servidor para que actúe como proxy a nivel ARP.

En el servidor asegúrese de tener en el archivo /etc/ppp/ppp.conf:

default:
  set log Phase Chat LCP IPCP CCP tun command
  set device /dev/cua00
  set speed 115200
  set ctsrts on
  set dial ""

modemnulo:
  set timeout 0
  set lqrperiod 10
  enable proxy
  enable lqr
  accept lqr
  allow users SuLogin
       

Remplazando SuLogin, SuClave y las direcciones de red por las apropiadas. Por su parte el archivo /etc/ppp/ppp.conf del cliente debe contener:

default:
 set log Phase Chat LCP IPCP CCP tun command
 set device /dev/cua00
 set speed 115200
 set ctsrts on
 set dial ""

modemnulo:
  set dial ""
  set authkey SuClave
  set login "TIMEOUT 3 ogin:-\\r-login: SuLogin word: \\P $ ppp\\s\\-direct\\smodemnulo\\r"
  set lqrperiod 10
  set timeout 0
  set ifaddr 192.168.16.20 192.168.16.131
  add default HISADDR
  enable lqr
  accept lqr
  enable dns
       

Después pude iniciar la comunicación desde el cliente con:

ppp -ddial modemnulo
       

1.5. Referencias y lecturas recomendadas

Puede consultar más sobre la conexión física de un módem nulo en [CablesModemNulo]. Puede consultar sobre comunicaciones seriales en FreeBSD (similar a OpenBSD) en el capítulo "Serial Communications" de [FreeBSDHandbook] Para emplear un sistema OpenBSD mínimo como consola de algunos eventos de un servidor OpenBSD puede consultar [SerialOpenBSD]. La configuración del servidor OpenBSD que le permite atender conexiones por el puerto serial puede verse en las siguientes páginas man: init(8), ttys(5) y getty(8). La configuración de un cliente OpenBSD para funcionar como consola puede consultarse en: tip(1) y remote(5). Para conocer más sobre PPP puede consultarse el RFC 1661, la implementación particular de el protocolo de usuario en OpenBSD en la página del manual. El archivo de configuración por defecto también cuenta con comentarios que ayudan.



[17] Como parámetro getty recibe características de la línea que deben estar especificadas en /etc/gettytab. En este caso std.9600 especifica la velocidad de transmisión. Empleando un módem nulo con control de flujo es posible emplear velocidades mayores hasta std.115200.

[18] banderas del inglés flags

[19] PPP es un protocolo especificado en el RFC 1661.