Logo de AulaDigital

PPP Como 23

Linux PPP Cómo: Tras hacer que la conexión funcione - el script Página siguiente Página anterior Índice general

23. Tras hacer que la conexión funcione - el script/etc/ppp/ip-up

Una vez que la conexión PPP se ha establecido, pppd busca un fichero /etc/ppp/ip-up. Si este script existe y es ejecutable, el demonio PPP ejecutará el script. Esto le permite automatizar cualquier orden de encaminamiento que pueda ser necesaria y cualesquiera otras acciones que puede desear que sucedan cada vez que conecte el enlace PPP.

Esto es sólo un script de shell y puede hacer cualquier cosa que un script de shell pueda hacer (esto es, casi todo lo que quiera).

Por ejemplo, puede hacer que sendmail envía cualquier mensaje situado en la cola de mensajes a enviar.

De manera similar, puede insertar en ip-up las órdenes para recoger (utilizando pop) cualquier email disponible para usted en su ISP.

Hay restricciones en /etc/ppp/ip-up:-

  • Se ejecuta en un entorno deliberadamente restringido para mejorar la seguridad. Esto quiere decir que debe proporcionar la ruta completa de los ejecutables, etc...
  • Técnicamente, /etc/ppp/ip-up es un programa, no un script. Esto quiere decir que puede ser ejecutado directamente - y por ello requiere que el fichero mágico estándar (#!/bin/bash) de la primera línea debe ser legible y ejecutable por el root.

23.1 Encaminamiento especial

Si está interconectando dos redes locales, necesitará establecer caminos específicos para las redes externas. Esto se puede hacer fácilmente utilizando el script /etc/ppp/ip-up. La única diferencia estriba en si su máquina maneja varias conexiones PPP.

Esto es debido a que /etc/ppp/ip-up se ejecuta para CADA conexión ppp que se realiza, por lo que necesita ejecutar cuidadosamente las órdenes de encaminamiento correctos para el enlace particular que se realiza - y no cuando se lleva a cabo cualquier otra conexión.

23.2 Manejando colas de correo electrónico

Cuando se establece la conexión entre dos redes locales, puede que desee asegurarse de que el correo electrónico que está esperando en cada lado de la conexión sea enviado a su destino. Esto se hace añadiendo la invocación adecuada de sendmail.

Utilizar la función 'case' de bash con un parámetro apropiado que pppd pase al script puede servir para esto. Por ejemplo, este es el script /etc/ppp/ip-up que utilizo para manejar nuestras conexiones WAN y la conexión a mi Ethernet doméstico (también manejado con el mismo servidor ppp).

23.3 Un script /etc/ppp/ip-up de ejemplo

Este ejemplo da información acerca de una variedad amplia de usos.


#!/bin/bash
#
# Script que maneja las tablas de encaminamiento de la manera necesaria para
# pppd
# Sólo requiere este manejamiento el enlace a Newman.
#
# Cuando la conexión ppp se establece, se llama a este script con los
# siguientes parámetros
#       $1      el nombre de interfaz utilizado por pppd (como ppp3)
#       $2      el nombre de dispositivo tty
#       $3      la velocidad del dispositivo tty
#       $4      la dirección IP local para la interfaz
#       $5      la dirección IP remota
#       $6      el parámetro especificado para pppd en la opción 'ipparam'
#
case "$5" in
# Manejar el encaminamiento al servidor del Campus de Newman
        202.12.126.1)
                /sbin/route add -net 202.12.126.0 gw 202.12.126.1
# y enviar la cola de mensajes para que su correo se distribuya.
     /usr/sbin/sendmail -q &
                ;;
 139.130.177.2)
# Nuestro enlace Internet
# Cuando éste se ejecuta, arrancar el servidor de tiempo y sincronizarlo con
# mundo en el caso de que no esté ya ejecutándose
                if [ ! -f /var/lock/subsys/xntpd ]; then
                        /etc/rc.d/init.d/xntpd.init start &
                fi
# Arrancar el servidor de noticias (si no estaba ejecutándose)
                if [ ! -f /var/lock/subsys/news ]; then
                        /etc/rc.d/init.d/news start &
                fi
                ;;
 203.18.8.104)
# Descargar el correo a mi máquina doméstica tan pronto como se efectue el
# enlace. No se requiere encaminamiento ya que mi Ethernet doméstico está
# manejado por enmascaramiento IP y encaminamiento proxyarp.
     /usr/sbin/sendmail -q &
     ;;
        *)
esac
exit 0

Como resultado de llevar a cabo el enlace a nuestro campus de Newman y este script, hemos obtenido la siguiente tabla de encaminamiento (esta máquina también es nuestro servidor general PPP y TAMBIEN maneja nuestra conexión a Internet. He intercalado comentarios en la salida para ayudar a explicar qué es cada entrada) :-


[root@kepler /root]# route -n
Kernel routing table
Destination     Gateway         Genmask         Flags MSS    Window Use Iface
# el camino de MAQUINA a nuestra pasarela remota a Internet
139.130.177.2   *               255.255.255.255 UH    1500   0      134 ppp4
# el camino de MAQUINA a nuestro servidor en el campus de Newman
202.12.126.1    *               255.255.255.255 UH    1500   0       82 ppp5
# el camino de MAQUINA a mi ethernet doméstica
203.18.8.104    *               255.255.255.255 UH    1500   0       74 ppp3
# dos de nuestras líneas generales de marcado PPP
203.18.8.64     *               255.255.255.255 UH    552    0        0 ppp2
203.18.8.62     *               255.255.255.255 UH    552    0        1 ppp1
# el camino específico de red a la red local del campus de Newman
202.12.126.0    202.12.126.1    255.255.255.0   UG    1500   0        0 ppp5
# el camino a nuestra Ethernet local (metaconectar dos clases C adyacentes)
203.18.8.0      *               255.255.254.0   U     1500   0     1683 eth0
# el camino al dispositivo de bucle
127.0.0.0       *               255.0.0.0       U     3584   0      483 lo
# el camino por defecto a Internet
default         139.130.177.2   *               UG    1500   0     3633 ppp4

23.4 Manejando correo

La sección anterior le muestra el modo de manejar el correo saliente - simplemete enviando la cola de correo una vez que la conexión esté establecida.

Si se encuentra ejecutando una conexión WAN, puede hacer que el administrador de la red remota haga exactamente lo mismo. Por ejemplo, en el extremo del Campus de Newman de nuestra conexión WAN, el script /etc/ppp/ip-up sería como :-


#!/bin/bash
#
# Script que maneja las tablas de encaminamiento de la manera necesaria para
# pppd
# Sólo requiere esto la conexión con Hedland
#
# Cuando la conexión ppp se establece, se llama a este script con los
# siguientes parámetros
#       $1      el nombre de interfaz utilizado por pppd (como ppp3)
#       $2      el nombre de dispositivo tty
#       $3      la velocidad del dispositivo tty
#       $4      la dirección IP local para la interfaz
#       $5      la dirección IP remota
#       $6      el parámetro especificado para pppd en la opción 'ipparam'
#
case "$5" in
        203.18.8.4)
                /usr/sbin/sendmail -q
                ;;
        *)
esac
exit 0

Si, sin embargo usted sólo tiene un enlace PPP de IP dinámica, necesitará recoger el correo de su cuenta en la máquina de su proovedor. Esto suele realizarse utilizando POP (Protocolo de Oficina de Correos). Este proceso puede manejarse utilizando el programa 'popclient' - y el script ip-up puede también automatizar este proceso por usted.

Simplemente, cree un script /etc/ppp/ip-up que contenga la llamada correcta a popclient. Para mi portátil, que ejecuta Red Hat Linux, el script es


popclient -3 -c -u hartr -p <password> kepler.hedland.edu.au |formail -s procmail

Usted podría utilizar usar slurp u otro programa para hacer lo mismo con las noticias, y así. Recuerde, el script ip-up es sólo un script estándar bash y por lo tanto puede ser usado para automatizar CUALQUIER función que necesite ser realizada cada vez que se lleve a cabo la conexión PPP.


Página siguiente Página anterior Índice general