/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
:-
/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.
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.
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).
/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
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.