[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

FW: mapping en /etc/network/interfaces



Buenas (si llega dos veces, lo siento, pero el server
de correo me lo ha devuelto).

Tengo un pequeño portatil (Celeron 400 del año de
matusalen) donde uso un par de tarjetas pcmcia para
conectarme a red: una es la tipica realtek 10-100 y la
otra una 3com para wifi (la primera de la lista de
tarjetas soportadas por el prism54).

La cuestión es que me gustaría que el
network/interfaces y hotplug detectasen
automaticamente que tarjeta le meto y convenientemente
me levantase la config de una o la otra (solo tengo
metidas o la una o la otra pero no ambas a la vez).

He visto algunos ejemplo en la guia de referencia
debian (en ingles y en español) y en
usr/shrare/doc/ifupdown/examples/network-interfaces.gz

pero no parece funcionarme. Si levanto a mano (ifup
eth0=casa) si funciona pero el hotplug no mace ni
caso. El hotplug, si en vez de llamar a una stanza
mapping llama a una iface parece que si funciona.

Os pongo los ficheros implicados:

#/etc/network/interfaces
# This entry denotes the loopback (127.0.0.1)
interface.
auto lo
iface lo inet loopback
#===========================================================
#Probamos la autodetección automática de tarjeta y red

#Para que se active por hotplug
mapping hotplug
    script echo

#Detección de tarjeta
mapping eth?
    script /usr/local/sbin/check-mac-address.sh
    map 00:00:00:00:00:0F casa
    map 00:00:00:00:00:00 universidad
    #El parametro que pongo ahí es la dirección MAC de
cada tarjeta, 
que no 
pongo
    #por no ser relevante

# Las diferentes tarjetas/interfaces lógicas
# ifup eth0=[upco|casa|...]
# dado que no parece funcionar la detección automática

#Configurar eth0 con RJ45, red ethernet convencional
en casa
iface casa inet dhcp
    hostname miniyo

#Configurar eth0 teniendo la tarjeta Wifi en la uni
iface universidad inet dhcp
    hostname miniyo
    #a continuación las extensiones wireless


Este es el script al que llamo desde
network/interfaces y que 
aparentemente 
funciona. Es el que en teoria está en 
/usr/shrare/doc/ifupdown/examples/ 
pero con un par de modificaciones porque no tiraba. Si
lo ejecuto desde 
la 
shell (sh -x [nombre script] eth0 DIRMAC casa) el
resultado es el 
esperado.
#/usr/local/sbin/check-mac-address.sh
#!/bin/sh
# Checks if the given interface matches the given
ethernet MAC
# if it does it exits with 0 status, if it doesn't
then it exists
# with 1 (error) status.

set -e

export LANG=C

if ! [ -n "$1" -a -n "$2" ] ; then
#OJO: en el original entra en el if si lso parametros
1 y 2 son no 
nulos
    echo "Usage: $0 IFACE targetMAC"
    exit 1
fi
iface="$1"
targetmac=`echo "$2" | sed -e 'y/ABCDEF/abcdef/'`
mac=$(/sbin/ifconfig "$iface" | sed -n -e '/^.*HWaddr 
\([:[:xdigit:]]*\).*/{s//\1/;y/ABCDEF/abcdef/;p;q;}')

if [ "$targetmac" = "$mac" ]; then
#El script original no escribe nada en la salida
estandar, solo exit0 o 
exit 
1
#y me suena haber visto en la documentación que es
necesario escribir 
la
#stanza antes de acabar el script
    echo "$3"
    exit 0;
else exit 1;
fi

Acepto consejos o sugerencias (si no no escribiria
esto XD)

Muchas gracias
P 


		
______________________________________________
Renovamos el Correo Yahoo!: ¡100 MB GRATIS!
Nuevos servicios, más seguridad
http://correo.yahoo.es



Reply to: