Gentoo Logo

1.  Configuración Avanzada

La variable config_eth0 es el corazón de la configuración de una interfaz. Es una lista de instrucciones de alto nivel para configurar la interfaz (eth0 en este caso). Cada comando en la lista de instrucciones se ejecuta de manera secuencial. La interfaz será evaluada como OK si, al menos, un comando funciona.

Aquí tiene una lista de instrucciones integradas:

Comando Descripción
null No hace nada
noop Si la interfaz está funcionando y existe una dirección entonces aborta la configuración con éxito.
una dirección IPv4 o IPv6 Añade la dirección a la interfaz
dhcp,adsl o apipa (o un comando propio perteneciente a un módulo de terceras partes) Ejecuta el módulo que proporciona el comando. Por ejemplo dhcp ejecutará un módulo que proporcione dhcp, que pudiera ser uno cualquiera de los siguientes: dhcpcd, dhclient o pump.

Si un comando falla, puede especificar un comando de retorno (fallback). El retorno tiene que coincidir exactamente con la estructura de la configuración.

Puede encadenar estos comandos. Aquí se muestran algunos ejemplo reales:

Listado de Código 1.1: Ejemplos de configuración

# Añadir tres direcciones IPv4
config_eth0="192.168.0.2/24
192.168.0.3/24
192.168.0.4/24"

# Añadir una dirección IPv4 y dos IPv6
config_eth0="192.168.0.2/24
4321:0:1:2:3:4:567:89ab
4321:0:1:2:3:4:567:89ac"

# Mantener la dirección asignada por el kernel, a menos que la
interfaz se caiga, entonces asignar otra vía DHCP. Si DHCP falla entonces
añadir una dirección estática determinada mediante APIPA

config_eth0="noop
dhcp"
fallback_eth0="null
apipa"

Nota: Cuando se utiliza el módulo ifconfig y se añade más de una dirección, se crean alias de interfaz para cada dirección extra. De esta manera los dos ejemplos anteriores tendrán interfaces eth0, eth0:1 y eth0:2. No se puede hacer nada especial con estas interfaces ya que el kernel y otros programas simplemente tratan eth0:1 y eth0:2 como eth0.

Importante: ¡La orden de retorno es importante! Si no especificamos la opción null, el comando apipa solamente se ejecutaría si el comando noop falla.

Nota: (APIPA) y (DHCP) serán tratados más adelante.

1.  Dependencias de red

Los guiones en /etc/init.d pueden depender de una interfaz de red específica o, simplemente, de net (red). Todos los interfaces de red en el sistema de inicio de Gentoo proporcionan algo llamado net.

Si está configurado rc_depend_strict="YES" en /etc/rc.conf, entonces todos los interfaces de red que proporcionen net deben estar activos antes que pueda considerarse cumplida la dependencia en "net". En otras palabras, si tienen los interfaces net.eth0 y net.eth1 y un guión de inicio depende de "net", ambos deben estar activados.

Por otro lado, si está configurado rc_depend_strict="NO", entonces la dependencia de "net" se considera cumplida al momento de estar activo al menos uno de los interfaces de red.

Pero, ¿y qué pasa si net.br0 depende de net.eth0 y net.eth1? net.eth1 podría ser un dispositivo wireless o ppp que necesita configurarse antes de añadirse al puente. Esto no puede hacerse en /etc/init.d/net.br0 ya que es un enlaces simbólico a net.lo.

La respuesta es definir nuestra propia requerimiento rc_need_ en /etc/conf.d/net

Listado de Código 1.1: Dependencia de net.br0 en /etc/conf.d/net


rc_need_br0="net.eth0 net.eth1"

Lo anterior no es suficiente. Los guiones de inicio de Gentoo utilizan una dependencia virtual llamada net para informar al sistema cuando está disponible la conexión a red. Claramente, en el caso de arriba la conexión a red debería marcarse como disponible cuando net.br0 está funcionando, no cuando lo están las otras. Por lo que tenemos que indicar también esto en /etc/conf.d/net:

Listado de Código 1.1: Actualizar las dependencias y provisiones para los servicios de red

rc_net_lo_provide="!net"
rc_net_eth0_provide="!net"
rc_net_eth1_provide="!net"

Para una lectura más detallada sobre dependencias, consulte la sección (Guiones de Inicio) en el manual de Gentoo. Se puede encontrar más información acerca de /etc/rc.conf en los comentarios dentro del propio archivo.

1.  Nombre de variables y valores

Los nombre de variables son dinámicos. Normalmente sigue la estructura variable_${interface|mac|essid|apmac}. Por ejemplo, la variable dhcpcd_eth0 guarda los valores para las opciones de dhcpcd para eth0 y dhcpcd_essid los valores para dhcpcd cuando cualquier interfaz se conecta al ESSID "essid".

Sin embargo, no hay ninguna regla que indique que los nombre de las interfaces sean ethx. De hecho, muchas interfaces wireless tienen nombres como wlanx, rax o ethx. También, algunas interfaces definidas por el usuario como pueden ser puentes puede tener cualquier nombre, como foo. Para hacer la vida un poco más interesante, los puntos de acceso wireless pueden tener nombres con caracteres no alfanuméricos - esto es importante porque puede configurar los parámetros de red por ESSID.

La desventaja de todo esto es que Gentoo usa variables bash para la red - y bash no puede utilizar nada fuera de caracteres alfanuméricos ingleses. Para solucionar esta limitación cambiamos cada carácter que no sea alfanumérico inglés por un carácter _.

Otra desventaja de bash es el contenido de las variables - algunos caracteres necesitan especificarse de manera especial. Esto se hace utilizando \ delante del carácter. A continuación tenemos una lista de caracteres especiales que necesitamos indicar de esta manera. ",' y \.

En este ejemplo utilizamos ESSID wireless ya que puede contener un amplio abanico de caracteres. Deberemos utilizar ESSID My "\ NET:

Listado de Código 1.1: Ejemplo de nombre para la variable

(Esto funciona, pero el dominio no es válido)
dns_domain_My____NET="My \"\\ NET"

(Lo que hay arriba configura el dominio dns a My "\ NET cuando una
tarjeta wireless se conecta a un AP cuyo ESSID es My "\ NET)

Página actualizada 19 de agosto, 2011

Sumario: Aquí aprenderemos como funciona la configuración - debe estar enterado de esto antes de aprender sobre redes modulares.

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.