7.13. Configuración del guión network

Esta sección solamente es aplicable en el caso de que vayas a configurar una tarjeta de red.

Si no tienes tarjeta de red es muy probable que no vayas a crear ninguna configuración relacionada con ellas. En ese caso, elimina los enlaces simbólicos network de todos los directorios de los niveles de ejecución (/etc/rc.d/rc*.d)

7.13.1. Crear nombres estables para las tarjetas de red

Si solo tienes una tarjeta de red, las instrucciones de esta sección son opcionales.

Con Udev y controladores de red modulares, la numeración de las interfaces de red no es persintente entre reinicios debido a que los controladores se cargan en paralelo, y por tanto en orden aleatorio. Por ejemplo, en un ordenador que tenga dos tarjetas de red fabricadas por Intel y Realtek la tarjeta de red fabricada por Intel podría ser eth0 y la tarjeta Realtek ser eth1. En algunos casos, tras un reinicio las tarjetas podrían ser numeradas al contrario. Para evitar esto, crea reglas Udev que asignen nombres estables a las tarjetas de red basados en sus direcciones MAC o posición en el bus.

Si vas a usar direcciones MAC para identificar tus tarjetas de red, encuentra las direcciones con el siguiente comando:

grep -H . /sys/class/net/*/address

Para cada tarjeta de red (pero no para la interfaz loopback) inventa un nombre descriptivo, como “realtek”, y crea reglas Udev similares a las siguientes:

cat > /etc/udev/rules.d/26-network.rules << EOF
ACTION=="add", SUBSYSTEM=="net", SYSFS{address}=="00:e0:4c:12:34:56", \
    NAME="realtek"
ACTION=="add", SUBSYSTEM=="net", SYSFS{address}=="00:a0:c9:78:9a:bc", \
    NAME="intel"
EOF
[Nota]

Nota

Aunque los ejemplo de este libro funcionan correctamente, ten en cuenta que Udev no reconoce la barra inversa como continuación de línea. Si modificas las reglas Udev con un editor, asegurate de poner cada regla en una sola línea.

Si vas a usar como clave la posición en el bus, crea reglas Udev similares a las siguientes:

cat > /etc/udev/rules.d/26-network.rules << EOF
ACTION=="add", SUBSYSTEM=="net", BUS=="pci", ID=="0000:00:0c.0", \
    NAME="realtek"
ACTION=="add", SUBSYSTEM=="net", BUS=="pci", ID=="0000:00:0d.0", \
    NAME="intel"
EOF

Estas reglas siempre renombrarán las tarjetas de red a “realtek” e “intel”, independientemente de la numeración original proporcionada por el núcleo (es decir, las interfaces “eth0” y “eth1” originales ya no existirán, a no ser que tu pongas dichos nombres “descriptivos” en las llaves NAME). Utiliza los nombres descriptivos enpleados en las reglas Udev en vez de “eth0” en los siguientes ficheros de configuración de las interfaces de red.

Ten en cuenta que las reglas anteriores no funcionan con todas las configuraciones. Por ejemplo, las reglas basadas en MAC fallan cuando se usan puentes o VLAN, debido a que los puentes y VLAN tienen la mísma dirección MAC que la tarjeta de red. Uno quiere renombrar sólo la interfaz de la tarjeta de red, no la interfaz del puente o de la VLAN, pero la regla de ejemplo coincide para ambos. Si utilizas dichas interfaces virtuales, tienes dos posibles soluciones. Una es añadir la clave DRIVER=="?*" tras SUBSYSTEM=="net" en las reglas basadas en MAC para que no detecte las interfaces virtuales. Se sabe que esto falla con algunas tarjetas Ethernet antiguas debido a que no tienen la variable DRIVER en el uevent, y por tanto la regla no detecta dichas tarjetas. Otra solución es cambiar a reglas que utilicen la posición en el bus como llave.

El segundo caso que se sabe que no funciona es con tarjetas wireless que utilizan los controladores MadWifi o HostAP, debido a que estos crean al menos dos interfaces con la misma dirección MAC y posición en el bus. Por ejemplo, el controlador MadWifi crea las interfaces athX y wifiX, donde X es un dígito. Para diferenciar estas interfaces, añade el parámetro KERNEL apropiado, como KERNEL=="ath*", tras SUBSYSTEM=="net".

Puede haver otros casos en los que las reglas anteriores no funcionen. Actualñmente aún se están suministrando informes sobre este asunto a las distribuciones Linux, y no hay disponible una solución que cubra todos los casos.

7.13.2. Creación de los ficheros de configuración de la interfaz de red

Qué interfaces de red activa o desactiva el guión network depende de los ficheros y directorios situados en el directorio /etc/sysconfig/network-devices. Este directorio debe contener un subdirectorio para cada interfaz a configurar, del tipo ifconfig.xyz, donde “xyz” es el nombre de una interfaz de red. Dentro de este directorio debería haber ficheros definiendo los atributos para dicha interfaz, como su direción(es) IP, mascaras de subred, etc..,

El siguiente comando crea un fichero ipv4 de ejemplo para el dispositivo eth0:

cd /etc/sysconfig/network-devices &&
mkdir -v ifconfig.eth0 &&
cat > ifconfig.eth0/ipv4 << "EOF"
ONBOOT=yes
SERVICE=ipv4-static
IP=192.168.1.1
GATEWAY=192.168.1.2
PREFIX=24
BROADCAST=192.168.1.255
EOF

Los valores de estas variables se deben cambiar en todos los ficheros por los valores apropiados. Si la variable ONBOOT tiene el valor “yes”, el guión network activará la NIC (Interfaz de Tarjeta de Red) correspondiente durante el arranque del sistema. Si contiene cualquier otro valor, el guión network ignorará la NIC correspondiente y no la activará.

La entrada SERVICE define el método usado para obtener la dirección IP. Los guiones de arranque de LFS tienen un formato de asignación de IP modular, y mediante la creación de ficheros adicionales en /etc/sysconfig/network-devices/services se permiten otros métodos de asignación IP. Esto se utiliza comúnmente para DHCP (Protocolo de Configuración Dinámica del Anfitrión), que se explica en el libro BLFS.

La variable GATEWAY debería contener la dirección IP de la puerta de enlace por efecto, si hay alguna. Si no, comenta la variable.

La variable PREFIX debe contener el número de bits usados en la subred. Cada octeto de una dirección IP tiene 8 bits. Si la máscara de subred es 255.255.255.0, estonces está usando los primeros tres octetos (24 bits) para especificar el número de red. Si la máscara de red es 255.255.255.240, podría estar usando los primeros 28 bits. Los prefijos mayores de 24 bits son usados normalmente por ISPs (Suministradores de Servicios de Internet) para DSL o cable. En este ejemplo (PREFIX=24), la máscara de red es 255.255.255.0. Ajústa la variable PREFIX de acuerdo a tu propia subred.

7.13.3. Creación del fichero /etc/resolv.conf

Si el sistema va a estar conectado a Internet, necesitará algún tipo de resolución de nombres DNS para resolver los nombres de dominio de Internet a direcciones IP y viceversa. Esto se consigue mejor colocando la dirección IP del servidor DNS, facilitado por el ISP o administrador de red, en /etc/resolv.conf. Crea este fichero ejecutando lo siguiente:

cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf

domain {<Your Domain Name>}
nameserver <IP address of your primary nameserver>
nameserver <IP address of your secondary nameserver>

# End /etc/resolv.conf
EOF

Sustituye <dirección IP del servidor de nombres> con la dirección IP del servidor DNS más apropiado para tu configuración. Con frecuencia hay más de una entrada (los requisitos establecen servidores secundarios como respaldo). Si sólo necesitas o deseas un servidor DNS, elimina la segunda línea nameserver del fichero. La dirección IP pueder ser incluso un enrutador de la red local.