2. Conexión a Internet con un módem o módem ISDN

Es posible conectar un sistema OpenBSD a Internet empleando un módem o un módem ISDN. Para esto el módem que se emplea debe estar soportado y debe configurarse ppp para realizar la conexión.

Hay diversos tipos de módems (tarjetas ISA, PCI, módems externos USB o seriales), los módems externos que se conectan a puerto serial son los más fáciles de configurar, algunos módems USB también son soportados (los que tengan comandos y datos multiplexados --como indica la página del manual del controlador umodem) y eventualmente es posible hacer funcionar tarjetas ISDN ISA o PCI (http://people.freebsd.org/~hm/i4b-home/).

Los módems y los módems ISDN reciben comandos AT y se configuran empleando ppp. Por ejemplo el archivo /etc/ppp/ppp.conf podría incluir porciones como las siguientes (remplazando el número de teléfono, el nombre de la cuenta y la clave por los correctos):

default:
  set log Phase Chat LCP IPCP CCP tun command
  set device /dev/cua01
  set speed 115200
  set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
    OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"


PAP:
 set phone 019478909891 
 set authname micuenta@miproveedor.com
 set authkey laclaveusada
 set timeout 120
 add default HISADDR
 enable dns
    

Para conectarse ejecute /usr/sbin/ppp -ddial PAP desde una cuenta que pertenezca al grupo network. Cuando se establezca la conexión quedará asociada una dirección IP a una interfaz tun (e.g a tun0). Puede también emplear el siguiente script para realizar la conexión:

#!/bin/sh
# Dominio público. 2004.

# Usa configuracion de /etc/ppp/ppp.conf regla PAP

netw=`groups | sed -e "s/.*network.*/1/g"`;
if (test "$netw" != "1") then {
	echo "Para usar PPP debe ser del grupo network";
	exit 1;
} fi;

IP=`/sbin/ifconfig tun0 | tail -n 1 | sed -e "s/.*inet \([.0-9]*\) .*/\1/g"`;
esta=`echo $IP | sed -e "s/^[0-9][.0-9]*$/SI/g"`
if (test "$esta" = "SI") then {
	echo "Ya está conectado, IP es $IP";
	exit 0;
} fi;
/usr/sbin/ppp -ddial PAP
while (test "$esta" != "SI") ; do
	sleep 1;
	IP=`/sbin/ifconfig tun0 | tail -n 1 | sed -e "s/.*inet \([.0-9]*\) .*/\1/g"`;
	esta=`echo $IP | sed -e "s/^[0-9][.0-9]*$/SI/g"`
done

echo "Conectado. La IP es $IP";
    

Y el siguiente que facilita la desconexión:

pid=`ps ax | grep "[p]pp" | sed -e "s/^[ ]*\([0-9]*\) .*$/\1/g"`;
espid=`echo $pid | sed -e "s/^[0-9][0-9]*$/SI/g"`;
if (test "$espid" != "SI") then {
  echo "No está conectado";
  exit 1;
} fi;
kill -HUP $pid
echo "Desconectado";