8.10. Configuraciones avanzadas de PPP

Mientras que configurar PPP para conectar a una red como internet es la m�s comun de sus aplicaciones, hay algunos de vosotros que teneis requerimientos m�s avanzados. En esta seccion hablaremos sobre algunas de las configuraciones mas avanzadas que son posibles con PPP bajo 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 recivida. 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 modem y explotar su caracteristica de “/AutoPPP/”.

Para configurar un servidor usando el m�todo de 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 como lo haya creado. Adem�s tiene que establecer la contrase�a para la cuenta mencionada usando la orden passwd.

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

El comando mesg deshabilita la opci�n de que otros usuarios puedan escribir a la terminal (tty) usada utilizando, por ejemplo, el comando write. El comando 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 opcion 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 comando del pppd, o en el fichero de opciones globales. La p�gina del manual tambi�n habla sobre opciones m�s especificas 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 modem esta 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 de options, y finalemente, 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 minusculas y mayusculas. 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, desavilitado la CHAP, y especificado que el fichero del sistema passwd debe ser usado para autentificar usuarios. Esto es probablemente parecido a lo que usted querra. 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. Asegurese de que cada paso funciona correctamente antes de pasar al siguiente:

  1. Configure el modem para que funcione en modo de auto-respuesta. En los modems compatibles Hayes, esto se realiza mediante el comando ATS0=3. Si va a utilizar el demonio mgetty, esto no sera necesario.

  2. Configure el dispositivo serie con un comando de tipo getty par que responda a las llamadas entrantes. Una variante comunmente usada de getty es mgetty.

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

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

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

8.10.2. Llamada en demanda

Cuando hay trafico IP para ser transportado a travez 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 linea 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 la conexi�n establecida s�lo cuando lo necesite y desconectada cuando no est� usando Internet.

Las soluciones Linux tradicionales han usado el comando diald, que funcionaba bien pero era algo complicado de configurar. Las versiones 2.3.0 y posteriores del demonio PPP tienen incluido el soporte de llamanda en demanda y una configuraci�n muy sencilla de realizar. Debe usar un kernel actual para poder hacer esto. Cualquiera de los kernels posteriores al 2.0 funcionara bien.

Para configurar pppd para llamada en demanda, todo lo que tiene que hacer es a�adir opciones a su fichero de options o a la linea de comandos del pppd. La tabla siguiente resume las opciones relacionadas a la llamada en demanda:

Opci�nDescripci�n
demand

Esta opci�n especifica que el enlace PPP debe ser establecido en modo de llamada en demanda. El dispositivo de red PPP sera creado, pero el comando connect no ser� usado hasta que un datagrama sea transmitido por el host local. Esta opci�n es obligatoria para que funcione la llamada en demanda.

active-filter expression

Esta opci�n le permite especificar que paquetes de datos van a ser considerados como trafico activo. Cualquier tr�fico que cumpla la regla especificada reiniciara el temporizador de la llamada en demanda, asegurando que el pppd espera de nuevo antes de terminar el enlace. La sintaxis del filtro ha sido cogida prestada del comando tcpdump El filtro por defecto especifica todos los datagramas.

holdoff n

Esta opci�n le permite especificar la cantidad minima de tiempo, en segundos, que esperar antes de reconectar el enlace si termina. Si la conexi�n falla mientras pppd cree que esta en uso activo, sera reestablecido despu�s de que este temporizador finalice. Este temporizador no se aplica a las reconexiones producidas por la no transmision de paquetes.

idle n

Si esta opci�n esta configurada, pppd desconectara el enlace cuando este temporizador expire. Los tiempos muertos son especificados en segundos. Cada paquete de datos nuevo activo resetear� el temporizador.

Una configuracion simple de llamada en demanda podria ser algo como esto:
    demand
    holdoff 60
    idle 180
Esta configuraci�n activar� la llamada en 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 querra usar. Hay una sut�l diferencia entre llamada en demanda y llamada persistente. Con la llamada persistente, la conexi�n es automaticamente 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 esta siempre disponible relanzando automaticamete la conexi�n si esta se interrumpe.

Usted podr�a ser afortunado de no tener que pagar por sus llamdas telef�nicas; quizas sean locales y gratu�tas, o quizas su empresa es quien 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 este seguro de que estara usando la conexion constantemente muy amenudo veinticuatro horas al d�a. Si paga las llamadas, pero no en base al tiempo, necesitara tener cuidado de protegerse de situaciones que puedan causar que el modem 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 del pppd. Incluir esta opcion es todo lo que necesita para tener al pppd invocando automaticamente el comando especificado en la opci�n connect para restablecer la conexi�n cuando el enlace se interrumpe. Si esta preocupado por el remarcado demasiado r�pido del modem (en el caso de un fallo del servidor o modem del otro extremo de la conexi�n) , puede usar la opcion holdoff para establecer el tiempo m�nimo que el pppd deber� esperar antes de intentar reconectar. Esta opci�n no resolvera 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 configuracion t�pica de llamada persistente podria parecerse a esta:
    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 periodo especificado de tiempo. Dudamos de que sean muchos los usuarios que quieran hacer esto, pero este escenario esta 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.