Академический Документы
Профессиональный Документы
Культура Документы
-t
-t
-t
-t
-t
-t
filter -F
nat -F
filter -P INPUT ACCEPT
filter -P FORWARD ACCEPT
filter -P OUTPUT ACCEPT
nat -A POSTROUTING -o eth0 -j MASQUERADE
IPTABLES nos sirve para configurar el cortafuegos, y dicha configuracin se debe agregar en la
mquina maestro, en el archivo /etc/rc.local antes de la instruccin exit 0. El archivo rc.local van
comandos para que se ejecuten al momento de iniciar el sistema operativo, en este caso, estos
comandos se ejecutarn cada vez que prendamos la mquina maestro.
Luego editamos el archivo /etc/sysctl.conf y descomentamos la linea donde dice
net.ipv4.ip_forward=1.
Configuracin del DHCP
Siendo ya la interfaz eth1 nuestra red interna, solo nos queda modificar el archivo
/etc/network/interfaces de la siguiente manera:
auto lo eht0 eth1
Para comprobar que est funcionando, ejecutamos en la terminal el comando rpcinfo -p, y nos
fijamos si est corriendo el servicio buscando el nombre en la columna derecha, en este caso,
NFS. Luego modificamos el archivo /etc/exports y lo dejamos de la siguiente manera:
/home 192.168.1.0/255.255.255.0(rw)
Asumiendo que las red y la mscara de subred pueden cambiar dependiendo de la
configuracin de cada uno, con esto le decimos al servidor que queremos compartir el
directorio /home y que le estamos dando permisos de lectura y escritura (con (rw)). Despus de
esto reiniciamos el servicio con el siguiente comando:
/etc/init.d/nfs-kernel-server restart
Ahora en cada esclavo, debemos configurar el nfs, de tal manera que debemos instalar lo
siguiente:
apt-get install nfs-common
Posterior a esto, modificamos el archivo /etc/fstab y le agregamos la siguiente lnea al final:
192.168.1.1:/home /home nfs
La primera parte de esta lnea corresponde a la IP del servidor maestro seguido del directorio
que es compartido por el NFS. La segunda parte corresponde al punto donde se montar el
directorio compartido por red y finalmente el tipo de sistema de archivos. Entonces esto se
podra leer de la siguiente manera:
De la IP 192.168.1.1, el directorio /home se montar en el directorio /home y es de tipo NFS
Al modificar este archivo, ahora cada vez que se encienda un esclavo, se montar
automticamente la particin /home en /home, siempre y cuando est disponible.
Primeramente hay que instalar NIS en el maestro y en los esclavos con el siguiente comando:
apt-get install nis
Luego de instalado, debemos definir un dominio (anteriormente designado en la configuracin
del DHCP). Para hacerlo debemos poner lo siguiente:
domainname example.com //donde en example.com va nuestro dominio
Para verificar el cambio, escribimos:
more /etc/defaultdomain
Donde nos debera retornar nuestro dominio designado. Posterior a esto, modificamos el
archivo /etc/default/nis y le cambiamos los valores a las siguientes lneas para dejarlas igual a
esto:
NISSERVER=master // donde master es el nombre del equipo maestro
NISCLIENT=false
NISMASTER=master // donde master es el nombre del equipo maestro
Evidentemente indicando que este mquina (la maestro), ser servidor NIS, no ser un cliente
y que adems ser el NIS maestro.
Posteriormente, agregamos un usuario de ejemplo, en este caso, llamado prueba, con el
siguiente comando:
useradd -m prueba
Luego de esto, levantamos los servicios colocando estos comandos en la consola:
/usr/sbin/ypserv start
/usr/sbin/rpc.yppasswdd
/usr/sbin/rpc.ypxfrd
/usr/lib/yp/ypinit m
Despus del ltimo comando, a lo que aparece apretamos ctrl+D y luego escribimos Y.
Ahora las tablas de usuarios de NIS se han actualizado. Ahora, podemos agregar un nuevo
usuario, llamado otro, de la misma manera como agregamos a prueba. Para actualizar las
tablas de usuarios de NIS con este nuevo usuario llamado otro debemos ir al directorio
/var/yp y ejecutar el comando make. Con esto, ya se actualiza nuestra tabla de usuarios de
NIS. Esta operacin se debe realizar cada vez que se modifica un usuario de NIS, de la misma
manera al momento que se elimina un usuario, que se realiza con el comando userdel -f r
nombre.
Para comprobar que el servicio se est ejecutando, ponemos el comando rpcinfo -p y
buscamos en la columna derecha el proceso ypserv.
Ahora, para configurar los esclavos, debemos definir el dominio de estos, de la misma manera
como se hizo en el maestro (domainname example.com) y luego modificamos el archivo
/etc/yp.conf y lo dejamos de la siguiente manera:
ypserver master // donde master es el nombre de la mquina maestro
Finalmente, debemos modificar el archivo /etc/nsswitch.conf y le agregamos a cada lnea la
palabra nis, dejndolo de la siguiente manera:
passwd: compat nis
group: compat nis
shadow: compat nis
hosts: files dns nis
networks: files nis
protocols: db files nis
services: db files nis
ethers: db files nis
rpc: db files nis
netgroup: nis
Luego, modificamos el archivo /etc/passwd y le agregamos lo siguiente al final del archivo:
+::::::
Y posterior a esto, ejecutamos el comando ypbind.
Recordar que al momento de crear un usuario en NIS, posterior a actualizadas las tablas de
usuarios de NIS, se le debe asignar una contrasea con el comando passwd nombreusuario.
Esto es fundamental para el paso siguiente, que es la configuracin del SSH.
El objetivo es establecer una comunicacin entre el maestro y los esclavos mediante SSH sin la
necesidad de requerir una contrasea. Para probarlo, vamos a ocupar el usuario llamado otro
que creamos anteriormente.
Iniciamos sesin en el maestro con el usuario otro y ejecutamos el comando:
ssh-keygen t rsa
El cual nos mostrar una serie de preguntas donde debemos presionar enter. Finalizado esto,
se nos crear una carpeta llamada .ssh en la cul se encontrar nuestra clave pblica en forma
de archivo, llamado id_rsa.pub.
Debemos poner el contenido de este archivo en el archivo authorized_keys. Pero como slo
necesitamos est clave, simplemente entramos a la carpeta .ssh y copiamos el archivo con el
comando:
cp id_rsa.pub authorized_keys
Para comprobar que funciona, ya iniciado sesin con el usuario otro, escribimos:
ssh slave1
Donde slave1 es el nombre de la mquina esclavo (el cul se defini en el archivo /etc/hosts. Al
ejecutar este comando, deberamos poder conectarnos al slave1 mediante SSH y sin la
necesidad de ingresar una contrasea.
Ahora, debemos iniciar sesin con el usuario otro y crear el archivo .mpi_hostfile el cul
tendr el siguiente contenido:
master slots=1
slave1
slave2
Dnde master, slave1, slave2 son los nombres del maestro, esclavo 1 y esclavo 2 definidos
respectivamente en el archivo /etc/hosts y slots=1 indica el nmero de procesadores de la
mquina.
Ahora, en el maestro debemos crear un archivo en C, que nos servir de ejemplo para probar
la ejecucin del MPI.
Archivo de ejemplo llamado anillo.c
#include <stdio.h>
#include <mpi.h>
int main(int argc, char *argv[]){
MPI_Status status;
int num, rank, size, tag, next, from;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
tag = 201;
next = (rank + 1) % size;
from = (rank + size - 1) % size;
if(rank==0){
printf("Introduce el nmero de vueltas al anillo: ");
scanf("%d", &num);
do{
MPI_Recv(&num,1,MPI_INT,from,tag,MPI_COMM_WORLD,&status);
printf( , rank, num); "Proceso %d ha recibido %d\n"
if(rank == 0) {
--num;
printf( );} "Proceso 0 descuenta una vuelta\n"
printf("Proceso %d envia %d al proceso
,rank,num,next); %d\n"
MPI_Send(&num, 1, MPI_INT, next, tag, MPI_COMM_WORLD);
}while(num>0);
printf("Proceso %d termina\n", rank);
if(rank == 0)
MPI_Recv(&num,1,MPI_INT,from,tag,MPI_COMM_WORLD,&status);
MPI_Finalize();
return 0;