22.5. Configuración manual de la red

La configuración manual de la red debería ser siempre la opción secundaria; nosotros le recomendamos utilizar siempre YaST para este propósito. No obstante, una explicación de los conceptos subyacentes a la configuración manual de la red facilitará la tarea de configuración con YaST.

Todas las tarjetas de red — ya sean integradas o dispositivos hotplug (PCMCIA, USB y parcialmente también PCI) — se detectan y configuran por medio de hotplug. Para comprender mejor este proceso, tenga presente los siguientes puntos: El sistema percibe a las tarjetas de red de dos formas. Por una parte se trata de un dispositivo (device) físico; por otra, actúa como interfaz (interface). Cuando un dispositivo es insertado o detectado, se genera un evento hotplug. Este evento hotplug hace que el dispositivo sea activado a través del script /sbin/hwup. Al activarse la tarjeta de red como nueva interfaz de red, el kernel produce otro evento hotplug que a su vez desencadena la configuración de la interfaz por medio de /sbin/ifup.

El kernel numera los nombres de interfaz en función del orden cronológico en que se han registrado. El orden de inicio es decisivo para la denominación. Si la primera de varias tarjetas de red falla, se modifica la numeración/denominación de todas las tarjetas iniciadas con posterioridad. En el caso de tarjetas con “auténtico” soporte hotplug, lo importante es el orden en que los dispositivos han sido conectados.

Con el fin de posibilitar una configuración flexible, por una parte se ha separado la configuración de dispositivos (hardware) e interfaces y, por otra, la asignación de configuraciones a dispositivos o interfaces ya no se realiza en base a los nombres de interfaz. La configuración de los dispositivos se encuentra en /etc/sysconfig/hardware/hwcfg-* y la de las interfaces en /etc/sysconfig/network/ifcfg-*. Los nombres de las distintas configuraciones describen los dispositivos o interfaces a los que pertenecen. Puesto que la asignación de controladores a nombres de interfaces presupone que los nombres de interfaces permanezcan invariables, esta asignación ya no puede tener lugar en /etc/modprobe.conf. Las entradas alias en este archivo podrían tener incluso efectos secundarios negativos en el nuevo concepto.

Los nombres de configuración, es decir, todo lo que sigue a hwcfg- o ifcfg-, pueden describir a los dispositivos mediante el lugar donde están instalados, su ID específico o el nombre de interfaz. El nombre de configuració para una tarjeta PCI puede ser, por ejemplo, bus-pci-0000:02:01.0 (ranura PCI) o bien vpid-0x8086-0x1014-0x0549 (ID de fabricante y producto). Para la interfaz correspondiente puede utilizarse bus-pci-0000:02:01.0 o wlan-id-00:05:4e:42:31:7a (dirección MAC).

Si prefiere no asignar una configuración de red determinada a una tarjeta especificada sino a cualquier tarjeta de un tipo concreto (del que sólo puede haber una tarjeta insertada en cada momento), se elige un nombre de configuración menos específico. Por ejemplo, es posible emplear bus-pcmcia para todas las tarjetas PCMCIA. Por otra parte, los nombres pueden restringirse un poco más anteponiéndoles un tipo de interfaz. Por ejemplo, wlan-bus-usb puede asignarse a todas las tarjetas WLAN con conexión USB.

Siempre se utiliza la configuración que mejor describe una interfaz o el dispositivo correspondiente a la interfaz. /sbin/getcfg se encarga de buscar la configuración más adecuada. La salida de getcfg proporciona todos los datos que pueden emplearse para describir un dispositivo. Consulte la página del manual de getcfg para obtener la especificación exacta de los nombres de configuración.

El método descrito permite configurar correctamente una interfaz de red de forma fiable incluso aunque los dispositivos de red no se inicien siempre en el mismo orden. No obstante, aún queda por resolver el problema de que el nombre de interfaz todavía depende del orden de activación. Existen dos formas de garantizar el acceso fiable a la interfaz de una tarjeta de red determinada:

ifup no inicia el hardware, sino que presupone la existencia de una interfaz. Para iniciar el hardware se emplea hwup, que es ejecutado por hotplug (o coldplug). En cuanto se inicia un dispositivo, ifup se inicia automáticamente para la nueva interfaz a través de hotplug y, si el modo de inicio es onboot, hotplug o auto y el servicio network ha sido activado, ifup es ejecutado. Antiguamente lo normal era que ifup <nombre_interfaz> desencadenase el inicio del hardware. Hoy en día el proceso es exactamente el inverso. Primero se inicia un componente de hardware y todas las acciones posteriores resultan de esta. Esto permite utilizar un juego de configuración existente para configurar de forma óptima una cantidad variable de dispositivos.

Para una mayor claridad, en la siguiente tabla se recogen los scripts más importantes que intervienen en la configuración de red. Donde sea posible se distingue entre el punto de vista del hardware y de la interfaz:

Tabla 22.5. Scripts para la configuración manual de la red

Etapa de la configuración

Comando

Función

Hardware

hw{up,down,status}

Los scripts hw* son activados por el subsistema hotplug para iniciar un dispositivo, cancelar el inicio o preguntar el estado de un dispositivo. Puede obtener información adicional con man hwup.

Interfaz

getcfg

getcfg pregunta el nombre de interfaz correspondiente a un nombre de configuración o una descripción de hardware. Puede obtener información adicional con man getcfg.

Interfaz

if{up,down,status}

Los scripts if* activan o desactivan interfaces de red existentes o devuelven el estado de la interfaz en cuestión. Puede obtener información adicional con man ifup

Consulte el Capítulo 18, El sistema hotplug y Capítulo 19, Nodos de dispositivos dinámicos con udev para obtener más información sobre hotplug y los nombres permanentes de dispositivo.

22.5.1. Archivos de configuración

Este apartado describe de forma resumida los archivos de configuración de red disponibles así como sus funciones y formatos.

22.5.1.1. /etc/syconfig/hardware/hwcfg-*

Estos archivos contienen la configuración de hardware de las tarjetas de red y otros dispositivos. Incluyen los parámetros necesarios como por ejemplo módulo del kernel, modo de inicio y correspondencias de scripts. Puede encontrar información adicional en la página del manual de hwup. Los archivos de configuración hwcfg-static-* se aplican al iniciarse coldplug independientemente del hardware disponible en el sistema.

22.5.1.2. /etc/sysconfig/network/ifcfg-*

Estos archivos contienen la configuración de las interfaces de red e incluyen, entre otros parámetros, el modo de inicio y la dirección IP. Los parámetros posibles se describen en la página del manual de ifup. Asimismo, todas las variables de los archivos dhcp, wireless y config pueden utilizarse en los archivos ifcfg-* en caso de que una opción de configuración normalmente global deba utilizarse sólo para una interfaz.

22.5.1.3. /etc/sysconfig/network/config,dhcp,wireless

El archivo config incluye opciones de configuración generales para ifup, ifdown e ifstatus. Este archivo está completamente comentado. También hay comentarios en dhcp y wireless, donde se almacenan las opciones generales de configuración para DHCP y las tarjetas de red inalámbricas. También se pueden utilizar todas las variables de estos archivos en ifcfg-*, donde se les da preferencia.

22.5.1.4. /etc/sysconfig/network/routes,ifroute-*

Aquí se define el enrutamiento estático de los paquetes TCP/IP. En el archivo /etc/sysconfig/network/routes pueden introducirse todas las rutas estáticas necesarias para las diversas tareas del sistema: la ruta a un ordenador, a un ordenador a través de una pasarela o a una red. Las rutas individuales requeridas por algunas interfaces pueden introducirse en el archivo /etc/sysconfig/network/ifroute-*, en un archivo individual para cada interfaz. El signo * ha de sustituirse por el nombre de la interfaz. Las entradas podrían presentar el siguiente aspecto:

DESTINATION           GATEWAY NETMASK   INTERFACE [ TYPE ] [ OPTIONS ]
DESTINATION           GATEWAY PREFIXLEN INTERFACE [ TYPE ] [ OPTIONS ]
DESTINATION/PREFIXLEN GATEWAY -         INTERFACE [ TYPE ] [ OPTIONS ]

En caso de que no se especifiquen GATEWAY, NETMASK, PREFIXLEN o INTERFACE, debe introducirse en su lugar el signo -. Las entradas TYPE y OPTIONS pueden omitirse sin más.

La primera columna contiene el destino de la ruta. Dicho destino puede tratarse de la dirección IP de una red u ordenador o del nombre completo cualificado de una red u ordenador en el caso de servidores de nombres accesibles.

En la segunda columna aparece la pasarela predeterminada o una pasarela a través de la cual puede accederse a un ordenador o a una red. La tercera columna contiene la máscara de red de una red u ordenador detrás de una pasarela. La máscara de red para ordenadores que se encuentran detrás de una pasarela es, por ejemplo, 255.255.255.255.

La última columna sólo tiene importancia en el caso de redes conectadas al ordenador local (loopback, Ethernet, RDSI, PPP, …). Aquí debe aparecer el nombre del dispositivo.

22.5.1.5. /etc/resolv.conf

En este archivo se indica el dominio al que pertenece el ordenador (palabra clave search) y la dirección del servidor de nombres (palabra clave nameserver) al que se debe dirigir. Es posible introducir más nombres de dominio. Al resolver nombres que no estén totalmente cualificados, se intentará generar un nombre válido y cualificado añadiendo entradas únicas en search. Se pueden dar a conocer otros servidores de nombres añadiendo más líneas que comiencen con nameserver. Los comentarios se introducen con #. YaST escribe aquí el servidor de nombres especificado. En el Ejemplo 22.5, “/etc/resolv.conf, se muestra un ejemplo para /etc/resolv.conf.

Ejemplo 22.5. /etc/resolv.conf

# Our domain
search example.com
#
# We use sol (192.168.0.20) as nameserver
nameserver 192.168.0.20

Algunos servicios, como pppd (wvdial), ipppd (isdn), dhcp (dhcpcd y dhclient), pcmcia y hotplug pueden modificar los archivos /etc/resolv.conf mediante el script modify_resolvconf. Al modificar el archivo /etc/resolv.conf con este script, se incluirá en el archivo un comentario con información sobre los servicios que se han modificado, el lugar donde se encuentra el archivo original y cómo es posible suprimir las modificaciones automáticas. Si /etc/resolv.conf es modificado más veces, se volverá a limpiar este cúmulo de modificaciones cuando se recojan en otro orden; lo cual puede ocurrir con isdn, pcmcia y hotplug.

Si un servicio no ha finalizado “limpiamente”, se puede restaurar el estado original con ayuda del script modify_resolvconf. Al arrancar se probará si resolv.conf se ha quedado modificado (por ejemplo debido a un cuelgue del sistema); en ese caso se volverá a restaurar el resolv.conf original (sin modificar).

Por medio de modify_resolvconf check, YaST averigua si resolv.conf ha sido modificado, tras lo cual avisa al usuario de que se han perdido sus cambios tras la recuperación del archivo original. En caso contrario, YaST no utiliza modify_resolvconf, lo que quiere decir que una modificación en el archivo resolv.conf mediante YaST equivale a una modificación manual. Ambas modificaciones tienen carácter permanente mientras que las realizadas por los servicios mencionados son sólo pasajeras.

22.5.1.6. /etc/hosts

Este archivo (ver Ejemplo 22.6, “/etc/hosts) tiene una tabla de correspondencia entre nombres de ordenadores y direcciones IP. En esta tabla deben aparecer todos los ordenadores con los que se quiere establecer una conexión IP cuando no se usa un servidor de nombres. Cada ordenador ocupa una línea en la tabla que contiene el número IP, el nombre completo de la máquina y el nombre (abreviado), por ejemplo tierra. La línea debe comenzar con la dirección IP y las demás indicaciones se separan con espacios o tabuladores. Los comentarios comienzan con #.

Ejemplo 22.6. /etc/hosts

127.0.0.1 localhost
192.168.0.20 sol.example.com sol
192.168.0.1 tierra.example.com tierra

22.5.1.7. /etc/networks

En este archivo se convierten los nombres de redes en direcciones de red. El formato se parece al del archivo hosts sólo que aquí los nombres de las redes aparecen por delante de sus direcciones IP (ver Ejemplo 22.7, “/etc/networks).

Ejemplo 22.7. /etc/networks

loopback     127.0.0.0
localnet     192.168.0.0

22.5.1.8. /etc/host.conf

La resolución de nombres, o sea, la traducción del nombre del ordenador o de la red mediante la librería resolver, se gestiona a través de este archivo. Este sólo se utiliza para programas con enlaces a libc4 o libc5 (para programas glibc actuales, ver las opciones de configuración en etc/nsswitch.conf). Un parámetro debe ocupar una sola línea y los comentarios comienzan con #. Los parámetros posibles se muestran en la Tabla 22.6, “Parámetros de /etc/host.conf”. Puede encontrar un archivo ejemplo /etc/host.conf en el Ejemplo 22.8, “ /etc/host.conf

Tabla 22.6. Parámetros de /etc/host.conf

order hosts, bind

Determina el orden de llamada a los servicios de resolución de nombres. Los parámetros posibles, separados por espacios o comas, son:

hosts: búsqueda en el archivo /etc/hosts

bind: llamada a un servidor de nombres

nis: mediante NIS

multi on/off

Determina si un ordenador dado de alta en /etc/hosts puede tener varias direcciones IP.

nospoof on spoofalert on/off

Estos parámetros influyen sobre el spoofing del servidor de nombres, pero no tienen ninguna influencia adicional sobre la configuración de red.

trim domainname

El nombre de dominio que se indica aquí, se resta del nombre totalmente cualificado del ordenador que lo contiene (antes de asignar la dirección IP al nombre de ordenador). Se trata de una opción muy útil cuando el archivo /etc/hosts sólo contiene nombres de ordenadores locales (alias) y éstos deben ser reconocidos también cuando se añade el nombre del dominio.

Ejemplo 22.8. /etc/host.conf

# We have named running
order hosts bind
# Allow multiple addrs
multi on

22.5.1.9. /etc/nsswitch.conf

Con la version 2.0 de la librería GNU de C comenzó el uso del Name Service Switch (NSS) (ver la página del manual de man 5 nsswitch.conf o bien la información más extensa de The GNU C Library Reference Manual, capítulo “System Databases and Name Service Switch” – ver libcinfo.

El archivo /etc/nsswitch.conf determina en qué orden se solicitan determinadas informaciones. El Ejemplo 22.9, “/etc/nsswitch.conf muestra un archivo para nsswitch.conf en el que las líneas de comentarios comienzan con #. Respecto a la “base de datoshosts, el ejemplo siguiente indica que se envía una solicitud al servicio DNS (ver el Capítulo 24, DNS (Domain Name System)) después de consultar /etc/hosts (files).

Ejemplo 22.9. /etc/nsswitch.conf

passwd:     compat
group:      compat

hosts:      files dns
networks:   files dns

services:   db files
protocols:  db files

netgroup:   files
automount:  files nis

Las “bases de datos” accesibles vía NSS se recogen en la Tabla 22.7, “Bases de datos accesibles a través de /etc/nsswitch.conf”. Para el futuro se espera también la disponibilidad de automount, bootparams, netmasks y publickey. Las opciones de configuración para bases de datos NSS se muestran en la Tabla 22.8, “Opciones de configuración de las bases de datos NSS”

Tabla 22.7. Bases de datos accesibles a través de /etc/nsswitch.conf

aliases

Alias de correo, usada por sendmail (ver la página del manual man 5 aliases).

ethers

Direcciones de ethernet.

group

Usada por getgrent para grupos de usuarios; ver la página del manual man 5 group.

hosts

Para nombres de host y direcciones IP, utilizada por funciones como gethostbyname o similares.

netgroup

Lista de hosts y de usuarios válida en la red para administrar los derechos de acceso; ver la página del manual man 5 netgroup.

networks

Nombres y direcciones de redes, usada por getnetent.

passwd

Contraseñas de usuarios, utilizada por getpwent. Ver la página del manual man 5 passwd.

protocols

Protocolos de red, información utilizada por getprotoent. Ver la página del manual man 5 protocols.

rpc

Nombres y direcciones del tipo “Remote Procedure Call”; utilizada por getrpcbyname y funciones similares.

services

Servicios de red; datos empleados por getservent.

shadow

Las contraseñas “Shadow” de los usuarios, utilizada por getspnam. Ver la página del manual man 5 shadow.

Tabla 22.8. Opciones de configuración de las bases de datos NSS

files

acceso directo a los archivos, por ejemplo a /etc/aliases.

db

acceso a través de una base de datos.

nis, nisplus

NIS, ver Capítulo 25, Empleo de NIS (Network Information Service).

dns

Parámetro adicional, solo aplicable para hosts y networks.

compat

Parámetro adicional para passwd, shadow y group.

22.5.1.10. /etc/nscd.conf

Este es el archivo para configurar nscd (Name Service Cache Daemon) - ver páginas del manual man 8 nscd y man 5 nscd.conf. La información en cuestión es la que se encuentra en passwd y groups. Es esencial para el buen rendimiento de servicios de directorio como NIS y LDAP, ya que en caso contrario cualquier acceso a nombres o grupos requeriría una conexión de red. hosts no se lee para no tener que reiniciar el daemon, por ejemplo, cuando se cambia la resolución de nombres de dominio (DNS) modificando /etc/resolv.conf.

Cuando está activada la característica “caching” para passwd, suelen pasar unos 15 segundos hasta que un usuario recién creado sea conocido en el sistema. Este tiempo de espera se puede reducir reiniciando nscd con el comando rcnscd restart.

22.5.1.11. /etc/HOSTNAME

Aquí se encuentra el nombre del ordenador, es decir, sólo el nombre del host sin el nombre de dominio. Hay distintos scripts que leen este archivo durante el arranque del ordenador. Sólo debe contener una única línea con el nombre del ordenador.

22.5.2. Scripts de arranque

Además de los archivos de configuración mencionados, existen diferentes scripts (macros) que inician los programas de red cuando el ordenador arranca. Estos scripts se inician cuando el sistema entra en uno de los niveles de ejecución de multiusuario (ver Tabla 22.9, “Algunos scripts de arranque de las aplicaciones de red”).

Tabla 22.9. Algunos scripts de arranque de las aplicaciones de red

/etc/init.d/network

Este script se encarga de la configuración de las interfaces de red. Con este fin, el hardware debe haber sido iniciado a través de /etc/init.d/coldplug (por medio de hotplug). En caso de que el servicio network no se haya iniciado, ninguna interfaz de red será activada mediante hotplug al ser insertada.

/etc/init.d/inetd

Inicia xinetd. xinetd puede utilizarse para proporcionar servicios de servidor en el sistema. Así por ejemplo, puede activar vsftpd cuando se inicia una conexión FTP.

/etc/init.d/portmap

Inicia portmapper, el cual se necesita para utilizar servidores RPC tales como un servidor NFS.

/etc/init.d/nfsserver

Inicia el servidor NFS.

/etc/init.d/sendmail

Controla el proceso sendmail.

/etc/init.d/ypserv

Inicia el servidor NIS.

/etc/init.d/ypbind

Inicia el cliente NIS.


SUSE LINUX Manual de administración 9.3