Interfaz de red se cambia de 'posicion'
Alvaro Herrera
alvherre en alvh.no-ip.org
Dom Oct 29 15:03:44 CLST 2006
Luis Vivero escribió:
> Me refiero a que en un comienzo una interfaz fisica era la eth0, y otra
> eth1. Despues de un rebooteo, la que antes era eth0 fue detectada como eth1,
> y la que eth1 fue eth0.
>
> Es bastante malo esto, porque afecta a los servicios configurados.
Ciertamente. Lo que viene a continuacion no aplica directamente a tu
caso, pero supongo que puedes sacar ideas: en Debian, esto se documenta
en interfaces(5) de la siguiente forma:
KNOWN BUGS/LIMITATIONS
The ifup and ifdown programs work with so-called "physical" interface
names. These names are assigned to hardware by the kernel. Unfortu-
nately it can happen that the kernel assigns different physical inter-
face names to the same hardware at different times; for example, what
was called "eth0" last time you booted is now called "eth1" and vice
versa. This creates a problem if you want to configure the interfaces
appropriately. A way to deal with this problem is to use mapping
scripts that choose logical interface names according to the properties
of the interface hardware. See the get-mac-address.sh script in the
examples directory for an example of such a mapping script. See also
Debian bug #101728.
El programa get-mac-address.sh al que hace alusion es este:
#!/bin/sh
set -e
export LANG=C
iface="$1"
mac=$(/sbin/ifconfig "$iface" | sed -n -e '/^.*HWaddr \([:[:xdigit:]]*\).*/{s//\1/;y/ABCDEF/abcdef/;p;q;}')
which=""
while read testmac scheme; do
if [ "$which" ]; then continue; fi
if [ "$mac" = "$(echo "$testmac" | sed -e 'y/ABCDEF/abcdef/')" ]; then which="$scheme"; fi
done
if [ "$which" ]; then echo $which; exit 0; fi
exit 1
Esto funciona asi:
$ (echo "00:C0:9F:BA:4C:8D mi-eth0" ; echo "00:14:A5:12:0F:9E mi-eth1" ) | sh /usr/share/doc/ifupdown/examples/get-mac-address.sh eth1
Es decir, creas un archivo que tenga la hwaddr de tus interfaces y el
alias que quieres para cada una, y le pasas al programa el nombre de la
interfaz del kernel y te entrega el nombre de la interfaz "virtual" que
quieres usar dependiendo de ese archivo.
--
Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4
"XML!" Exclaimed C++. "What are you doing here? You're not a programming
language."
"Tell that to the people who use me," said XML.
Más información sobre la lista de distribución Linux