Todos los hosts deberían tener configurado el TCP/IP. Por tanto, vamos a explicar qué pasos serían los que daríamos en el caso de que esto no fuera así.
En primer lugar, saber que sólo el súper-usuario (root) puede modificar los parámetros del TCP/IP. Sin embargo, como en realidad no necesitamos modificar ningún fichero, todo el proceso que a continuación se expone debería poderse realizar como usuario sin privilegios de administración.
Para conocer si el núcleo (kernel) del sistema operativo reconoce el adaptador de red que estamos utilizando podemos realizar diferentes pruebas. La primera consiste en ver si el TCP/IP ya está configurado, con lo que sabremos que el kernel necesariamente lo reconoce. Esto se puede hacer escribiendo en un shell:
La salida es una lista de interfaces, junto con algunos parámetros de configuración. Lo importante es que veamos que aparece el interface eth0, esto es, el primer interface de red Ethernet.
Si esto no fuera así, hay dos opciones:
Como se ha indicado en la sección anterior, puede ocurrir que el kernel sí que reconozca el hardware de red, pero éste no ha sido activado. La forma estándar de configurar temporalmente un interfaz de red consiste en usar las utilidades /sbin/ifconfig y /sbin/route desde la línea de comandos. Ejemplo:
__________________________________________________________________
Taller 4.3: Determine el rango de direcciones IP de la subred en la que está el PC virtual (utilice ifconfig sin argumentos) y cambie la dirección IP del PC virtual. Compruebe que la conexión con Internet sigue funcionando.
Taller 4.4: Cambie el servidor de nombres del PC virtual por el de la Universidad de Almería (150.214.156.2).
La configuración permanente se consigue haciendo que los scripts de arranque de la computadora ejecuten en algún instante los comandos especificados durante la configuración temporal. El problema al que nos enfrentamos ahora es localizar los ficheros de configuración que estos scripts utilizan para realizar dicha tarea. Por desgracia, estos scrips suelen tener diferentes localizaciones y contenidos, dependiendo de la distribución de Linux utilizada. A continuación se explicará cómo localizar dichos ficheros.§
Bien. Antes de comenzar, un poco de nomenclatura; en adelante hablaremos de los programas ejecutables como procesos. En Unix (y por tanto en Linux) los procesos son tareas que pueden invocar a otros procesos y que el sistema operativo ejecuta durante un cierto intervalo de tiempo. Cuando los procesos resuelven tareas útiles para el sistema operativo de forma indefinida, se habla de demonios (daemons en inglés).
Para encontrar el o los ficheros que contienen la configuración del TCP/IP en una máquina con Linux los pasos a realizar deberían ser los siguientes:
Observe el tabulado dentro de la columna “COMMAND”.
El primer campo¶ (si) es un identificativo del runlevel (nivel de ejecución) en el que se lanza cada proceso y significa system initialization.∥ El segundo campo es una lista de niveles de ejecución en los que se va a ejecutar el proceso especificado por el cuarto campo (/etc/init.d/rcS) y debe estar vacío si el tercer campo, que especifica la acción a llevar a cabo en ese runlevel vale sysinit. El script /etc/init.d/rcS se encarga de levantar el sistema y sería el equivalente al fichero AUTOEXEC.BAT en MS-DOS.
Tras la inicialización especificada en /etc/init.d/rcS, /sbin/init lleva la computadora al estado normal de funcionamiento. Para ello debe lanzar un montón de demonios que hacen cosas como leer el teclado y el ratón, mandar los trabajos de impresión a las impresoras, recibir los correos electrónicos, etc. Todos estos procesos son especificados en las entradas:
Escribir
para conocer la sintaxis exacta de /etc/inittab.
Como podemos apreciar, estas entradas tienen un elemento extra que es un parámetro al script /etc/init.d/rc. Cuando ejecutamos:
Todos los procesos que en el directorio /etc/rc0.d comiencen por una S van a ser lanzados en el runlevel 0, en orden alfabético. Los procesos que comienzan por K son killed (matados) cuando abandonamos ese runlevel. Como podemos ver, todos estos procesos son enlaces simbólicos a otros procesos localizados en el directorio:
que es el encargado de configurar el TCP/IP. Este proceso debe invocarse escribiendo:
para configurar por primera vez la red** . Si lo editamos y buscamos en la sección start veremos que el proceso que configura el interface de red se llama /sbin/ifup†† .
Revisando dicha documentación descubriremos que ifup y ifdown (el programa que se utiliza para deshabilitar los interfaces de red) leen los datos para configurar el TCP/IP del fichero:
Bien. Si hemos realizado correctamente el proceso de rastreo anterior llegaremos a que los ficheros de configuración del TCP/IP son, dependiendo de la distribución de Linux:
Como acabamos de ver, el fichero que contiene los parámetros son:
Su sintaxis es:
En él podemos leer que este fichero ha sido creado de forma automática por la utilidad debconf cuando instaló el paquete etherconf. Por tanto, si quisiéramos modificar este fichero deberíamos escribir:
Para aprender más acerca de la utilidad dpkg acceder a la Guía de Referencia Debian ( http://www.debian.org/doc/user-manuals\#quick-reference).
El fichero que configura el interfaz eth0 es /etc/sysconfig/network-scripts/ifcfg-eth0 cuya sintaxis es:
Este fichero sólo debería modificarse utilizando un programa que lo edite. Por ejemplo, en X-window podemos utilizar system-config-network.
El fichero que configura a todos los interfaces de red es:
Su sintaxis es:
En Gentoo este fichero se modifica usando un editor de ficheros ASCII.
La modificación de los ficheros de configuración del TCP/IP no basta para que probemos los cambios. Hay que inicializar los scripts que utilizan dichos ficheros. Esto se hace así:
El nombre y dominio del host se encuentran en el fichero /etc/hostname:
El nombre y dominio del host se encuentran en el fichero /etc/sysconfig/network:
El nombre del host aparece en el fichero /etc/conf.d/hostname:
El dominio del host aparece en el fichero /etc/conf.d/domainname:
Aunque parezca mentira, la configuración del servidor de nombres es independiente de la distribución de Linux. El fichero que contiene la dirección IP del servidor DNS es siempre /etc/resolv.conf que, para todos los hosts de la Universidad de Almería, debería tener al menos la entrada‡‡ :
Si existen servidores alternativos, aparecen más entradas pero con otra dirección IP claro.
Otro aspecto importante a considerar es el papel del fichero /etc/hosts. Este fichero se utiliza siempre (aunque el servidor DNS haya sido especificado,) y contiene una lista de resoluciones estáticas de nombres. En este fichero se incluyen las resoluciones más frecuentes (por ejemplo, para hosts a los que nos conectamos todos los días) y descargamos así al DNS. Por otra parte, si este servicio cae, la resolución para estos hosts sigue funcionando. El contenido típico de este fichero es:
__________________________________________________________________
Taller 4.5: Usando el fichero /etc/hosts, defina un alias para filabres.ual.es. Pruebe a hacer un ping a filabres usando su alias.