8.10. Configuraciones avanzadas de PPP

Mientras que configurar PPP para conectar a una red como Internet es la m�s com�n de sus aplicaciones, hay algunos de vosotros que ten�is requerimientos m�s avanzados. En esta secci�n hablaremos sobre algunas de las configuraciones m�s avanzadas que son posibles con PPP bajo GNU/Linux.

8.10.1. Servidor PPP

Hacer funcionar el pppd como servidor es solo cuesti�n de configurar un dispositivo terminal serie para que invoque al pppd con las opciones apropiadas cuando una llamada entrante es recibida. Una manera de hacer esto es crear una cuenta especial, digamos ppp, y asociarle un script o programa como shell de entrada que llame al pppd con esas opciones. De forma alternativa, si quiere soportar autentificacion PAP o CHAP, puede usar el programa mgetty para soportar su m�dem y explotar su caracter�stica “/autoPPP/”.

Para configurar un servidor usando el m�todo de registro (login), a�ada una l�nea similar a la siguiente a su fichero /etc/passwd: [1]
    ppp:x:500:200:Public PPP Account:/tmp:/etc/ppp/ppplogin
Si su sistema soporta shadow passwords, tambien necesita a�adir una entrada al fichero /etc/shadow:
    ppp:!:10913:0:99999:7:::

Por supuesto, el UID y GID que utilice dependen de que usuario desea que sea due�o de la conexi�n, y de c�mo lo haya creado. Adem�s tiene que establecer la contrase�a para la cuenta mencionada usando la orden passwd.

El script ppplogin podr�a tener este aspecto:
    #!/bin/sh
    # ppplogin - script to fire up pppd on login
    mesg n
    stty -echo
    exec pppd -detach silent modem crtscts

La orden mesg deshabilita la opci�n que permite que otros usuarios puedan escribir en el terminal (tty) usado utilizando, por ejemplo, la orden write. La orden stty desactiva el eco de caracteres. Esto es necesario, pues de otra forma todo lo que el otro ordenador env�e le ser� devuelto a modo de eco. La opci�n del pppd m�s importante de las incluidas en el script es –detach, porque evita que el pppd se separe de la terminal controlada. Si no especific�semos esta opci�n, se ir�a a segundo plano, haciendo que el script del shell terminase. Esto provocar�a que la l�nea serie colgase y se perdiera la conexi�n. La opci�n silent hace que el pppd espere hasta recibir un paquete del sistema llamante antes de comenzar a enviar. Esto evita la aparici�n de timeouts al transmitir cuando el sistema que nos llama es lento en lanzar su cliente PPP. La opci�n modem hace al pppd vigilar la l�nea DTR para ver si el otro sistema ha colgado. Siempre deberia activar esta opci�n cuando use pppd con un modem. La opci�n crtscts activa el control de flujo por hardware.

Adem�s de estas opciones, se puede forzar alguna clase de autentificaci�n, por ejemplo especificando auth en la l�nea de �rdenes de pppd, o en el fichero de opciones globales. La p�gina del manual tambi�n habla sobre opciones m�s espec�ificas para activar o desactivar los protocolos de autentificaci�n individuales.

Si desea usar mgetty, todo lo que tiene que hacer es configurar mgetty para que soporte el dispositivo serie al que su m�dem est� conectado (vea Secci�n 4.6.1” para m�s detalles), configurar pppd bien para autentificaci�n PAP o CHAP con las opciones apropiadas en sus ficheros options, y finalmente, a�adir una secci�n similar a la siguiente a su fichero /etc/mgetty/login.config:
    # Configura mgetty para automaticamente detectar llamandas entrantes e invocar
    # al demonio pppd para que se haga cargo de la conexi�n.
    #
    /AutoPPP/ -     ppp   /usr/sbin/pppd auth -chap +pap login

El primer campo es una parte especial m�gica usada para detectar que la llamada entrante es una de tipo PPP. No debe cambiar el aspecto de esta cadena; es sensitivo a min�usculas y may�usculas. La tercera columna en el nombre de usuario que aparece en en el listado de who cuando alquien a entrado en el sistema. El resto de la l�nea es el comando a invocar. En nuestro ejemplo, nos hemos asegurado de que la autentificaci�n por PAP es requerida, deshabilitado CHAP, y especificado que el fichero del sistema passwd debe ser usado para autentificar usuarios. Esto es probablemente parecido a lo que usted querr�. Recuerde, puede especificar las opciones en el fichero options o en la linea de comandos si lo prefiere.

Esto es una peque�a lista de comprobaci�n de los pasos que debe realizar y la secuencia que debe seguir para tener funcionando en su m�quina un servidor PPP. Aseg�rese de que cada paso funciona correctamente antes de pasar al siguiente:

  1. Configure el m�dem para que funcione en modo de auto-respuesta. En los m�dems compatibles Hayes, esto se realiza mediante la orden ATS0=3. Si va a utilizar el demonio mgetty, esto no ser� necesario.

  2. Configure el dispositivo serie con una orden tipo getty para que responda a las llamadas entrantes. Una variante com�nmente usada de getty es mgetty.

  3. Considere la autentificaci�n. �Como se autentificar�n con usted los clientes, usando PAP, CHAP, o el registro del sistema?

  4. Configure pppd como servidor tal como se describe en esta secci�n.

  5. Considere el encaminamiento. �Necesitar� proporcionar una ruta de red a los clientes? El encaminamiento puede realizarse usando el script ip-up.

8.10.2. Llamada bajo demanda

Cuando hay tr�fico IP para ser transportado a trav�s del enlace, la llamada en demanda provoca la llamada de su modem y el establecimiento de una conexi�n con un host remoto. La llamada en demanda resulta �til cuando no puede dejar su l�nea telef�nica permanentemente conectada a su proveedor de Internet. Por ejemplo, puede que tenga que pagar llamadas locales por tiempo de uso, as� le resultar� m�s barato tener la conexi�n establecida s�lo cuando lo necesite y desconectada cuando no est� usando Internet.

Las soluciones GNU/Linux tradicionales han usado la orden diald, que funcionaba bien pero era algo complicado de configurar. Las versiones 2.3.0 y posteriores del demonio PPP tienen inclu�do el soporte de llamada bajo demanda y una configuraci�n muy sencilla de realizar. Debe usar un n�cleo actual para poder hacer esto. Cualquiera de los n�cleos posteriores al 2.0 funcionar� bien.

Para configurar pppd para llamada bajo demanda, todo lo que tiene que hacer es a�adir opciones a su fichero /etc/options o a la l�nea de �rdenes de pppd. La tabla siguiente resume las opciones relacionadas a la llamada en demanda:

Una configuraci�n simple de llamada bajo demanda podr�a ser algo como esto:
    demand
    holdoff 60
    idle 180
Esta configuraci�n activar� la llamada bajo demanda, esperar� 60 segundos antes de reestablecer un conexi�n fallida, y terminar� el enlace si pasan 180 segundos sin ning�n dato activo en el enlace.

8.10.3. llamada persistente

La llamada persistente es lo que la gente que tiene conexiones permanentes a una red querr� usar. Hay una sutil diferencia entre llamada en demanda y llamada persistente. Con la llamada persistente, la conexi�n es autom�ticamente establecida tan pronto como el demonio PPP es lanzado, y el aspecto de persistencia viene a cuento siempre que la llamada telef�nica que soporta el enlace se interrumpa. La llamada persistente asegura que el enlace est� siempre disponible relanzando autom�ticamete la conexi�n si �sta se interrumpe.

Usted podr�a ser afortunado de no tener que pagar por sus llamdas telef�nicas; quiz�s sean locales y gratuitas, o quiz�s su empresa es qui�n las paga. La opci�n de llamada persistente es extremadamente �til en esta situaci�n. Si tiene que pagar por sus llamadas telef�nicas, entonces tiene que tener un poco de cuidado. Si paga por sus llamadas telef�nicas en base al tiempo que la utiliza, la llamada persistente es algo que casi seguro no es lo que quiere, a menos que est� seguro de que estar� usando la conexi�n constantemente muy amenudo veinticuatro horas al d�a. Si paga las llamadas, pero no en base al tiempo, necesitar� tener cuidado de protegerse de situaciones que puedan causar que el m�dem llame de forma interminable. El demonio pppd provee de una opci�n que puede ayudar a reducir el efecto de este problema.

Para activar la llamada persistente, debe incluir la opci�n persist en uno de los ficheros de opciones de pppd. Incluir esta opci�n es todo lo que necesita para tener al pppd invocando autom�ticamente la orden especificada en la opci�n connect para restablecer la conexi�n cuando el enlace se interrumpe. Si est� preocupado por el remarcado demasiado r�pido del m�dem (en el caso de un fallo del servidor o m�dem del otro extremo de la conexi�n), puede usar la opci�n holdoff para establecer el tiempo m�nimo que pppd deber� esperar antes de intentar reconectar. Esta opci�n no resolver� el problema de un fallo y su consecuente gasto en llamadas de tel�fono, pero al menos le servir� para reducir el impacto de uno de ellos.

Una configuraci�n t�pica de llamada persistente podr�a parecerse a �sta:
    persist
    holdoff 600
El tiempo de espera es especificado en segundos. En nuestro ejemplo, el pppd espera durante cinco minutos antes de rellamar cuando una llamada ha fallado.

Es posible combinar la llamada persistente con la llamada en demanda, usando idle para interrumpir el enlace si ha estado inactivo por un per�odo especificado de tiempo. Dudamos de que sean muchos los usuarios que quieran hacer esto, pero este escenario est� descrito brevemente en la p�gina del manual de pppd, por si tuviera que buscarlo.

Notas

[1]

La utilidades useradd o adduser, si las tiene, simplificaran la tarea.