IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

En aquesta wiki s'expliquen els passos per tal de muntar un sistema de recuperació d'imatges per xarxa.

Objectiu

L'objectiu és muntar un sistema que permeti disposar d'un menú de restauració d'imatges. Aquest menú ha està disponible a totes les màquines de la xarxa sense la necessitat de tenir cap aplicació ni sistema operatiu instal·lat.

El menú es proporciona a les màquines a través de la xarxa, i les imatges són restaurades/guardades desde/en un servidor de la xarxa.

Per tant, l'únic requeriment és disposar de targetes de xarxa que suportin l'arrancada des de xarxa amb PXE. La majoria de targetes modernes ho suporten. Si no és així, també hi ha la possibilitat d'utilitzar disquets/CD/USB d'arrancada.

Aquest sistema pot ser una alternativa a sistemes comercials com Rembo.

Requeriments

Servidors

Al servidor s'instal·la una aplicació anomenada DRBL (Diskless Remote Boot in Linux DRBL). Aquesta aplicació configura tots els serveis necessaris per al sistema:

  • Servidor de DHCP:
  • Servidor de TFTP:
  • Servidor de NFS:

Dispositius de xarxa

La majoria de dispositius de xarxa us han de permetre muntar aquest tipus de sistemes. Cal però tenir en compte a on col.loquem el servidor.

Clients:

  • Disposar de targetes de xarxa que suportin l'arrancada des de xarxa amb PXE.
  • Si no és disposa d'aquest tipus de targetes, es poden crear disquets/USB/CD d'arrancada.

Exemple de muntatge

A l'IES Nicolau Copèrnic, s'està muntant per a 8 Aules un PXE per Aula? Sembla que es possible indicar-ho al DHCP.

Per cada Aula les següents opcions:

  • Boot d'Ubuntu? Hi ha el problema de que no és un servidor dedicat
  • Restaura imatge de l'aula (sense preguntes). Opció sense paraula de pas
  • Escull la imatge a restaurar. (Paraula de pas)
  • Guarda el disc com a imatge de l'aula 1

Procés d'instal·lació

Vegeu l'script:

https://svn.projectes.lafarga.cat/svn/iescopernic/SistemaRecuperacioImatgesXarxa/InstallDRBL.sh

Descàrrega i execució de l'script:

$ wget -N --http-user=anonymous --http-password= http://svn.projectes.lafarga.cat/svn/iescopernic/SistemaRecuperacioImatgesXarxa/InstallDRBL.sh
$ sudo chmod +x InstallDRBL.sh

Executeu l'script i seguiu les instruccions:

$ ./InstallDRBL.sh

Que cal modificar?

Commutadors Cisco

Cal activar el mode PortFast en tots els ports que van a parar a màquines. Cal tenir accés via Telnet i l'usuari i paraula d'accés al commutador.

Per exemple:

$ telnet 192.168.1.20
Trying 192.168.1.20...
Connected to 192.168.1.20.
Escape character is '^]'.

User Access Verification

Password: 
SwitchAula1>enable
SwitchAula1# configure terminal

En el nostre cas no activem el port 24 per que està connectat a un router:

SwitchAula1# interface range FastEthernet 0/1 -23
SwitchAula1(config-if-range)#switchport mode access
SwitchAula1(config-if-range)#spanning-tree portfast 
SwitchAula1(config-if-range)#no shutdown

Premeu Ctrl+z:

SwitchAula1(config-if-range)#^Z
SwitchAula1#copy run start

Premeu Enter

Destination filename [startup-config]? 
Building configuration...
[OK]

PXELinux

El menú que surt durant l'arrancada de xarxa de DRBL està fet utilitzant una eina anomenada PXE Linux. És similar a Grub o altres gestors d'arrancada però té les seves pròpies particularitats.

Us mostrem un exemple de menú configurat a mida:

MenuPXELinux.png

El menú es configura al fitxer pxelinux.cfg/default, fitxer que en el cas de DRBL es troba a /tftpboot/nbi_img/pxelinux.cfg/default:

$ cat /tftpboot/nbi_img/pxelinux.cfg/default
# Created by generate-pxe-menu! Do NOT edit unless you know what you are doing! 
# Keep those comment "MENU DEFAULT" and "MENU HIDE"! Do NOT remove them.
# Note!!! If "serial" directive exists, it must be the first directive 

default vesamenu.c32
timeout 70
prompt 0
noescape 1
MENU MARGIN 5
MENU BACKGROUND drbl.png
# Set the color for unselected menu item and timout message
MENU COLOR UNSEL 7;32;41 #c0fed700 #00000000
MENU COLOR TIMEOUT_MSG 7;32;41 #c0fed700 #00000000
MENU COLOR TIMEOUT 7;32;41 #c0fed700 #00000000
MENU COLOR HELP 7;32;41 #ffffffff #00000000

Per modificar el fons d'imatge us heu de fixar en:

MENU BACKGROUND drbl.png

El fitxer drbl és una imatge que es troba a:

/tftpboot/nbi_img/drbl.png

La imatge és com la següent:

La imatge de fons de pantalla ha de ser una imatge 640x480px.

Drbl.png
NOTA: No cal que apagueu l'ordinador per a fer proves amb el menú d'arrancada de xarxa. Podeu utilitzar una màquina virtual amb eines com Virtual Box. Consulteu Virtual_Box#Arrancada_de_xarxa.

Els colors de les lletres sobreimpresses i les seccions és controlen am:

MENU COLOR UNSEL 7;32;41 #c0fed700 #00000000
MENU COLOR TIMEOUT_MSG 7;32;41 #c0fed700 #00000000
MENU COLOR TIMEOUT 7;32;41 #c0fed700 #00000000
MENU COLOR HELP 7;32;41 #ffffffff #00000000

Servidor DHCP

L'únic que cal és indicar quin és el servidor on hi ha els fitxers d'arrancada de xarxa de pxelinux. Normalment és tracta d'un servidor de FTP tipus tftp (trivial tftp) i s'indica amb el paràmetre next-server:

ddns-update-style none;

option domain-name-servers 192.168.0.7,192.168.9.2;
option domain-name "iescopernic.com";
default-lease-time 86400;
max-lease-time 604800;
next-server 192.168.0.8;
filename = "pxelinux.0";
server-name drbl;
authoritative;
...

També cal destacar el nom del fitxer d'arrancada de xarxa (pxelinux.0) especificat am be l paràmetre filename. Aquest fitxer és relatiu a l'arrel del servidor FTP (en el cas de DRBL la carpeta és /tftpboot/nbi_img/).

Finalment però no menys important, els clients de DRBL, quan intenten obtenir una adreça IP per DHCP només atenen peticions del servidor de DHCP que tingui el nom drbl. Això ho ha especificat la opció:

server-name drbl;


Commutadors Cisco i Spanning Tree Protocol (STP)

El protocol STP i altres configuracions que porten per defecte els commutadors Cisco, poden impedir que funcioni correctament DHCP i per tant l'arrancada per xarxa.

Consulteu DRBL#Switchs_Cisco_.28Spanning_Tree_protocol.29_i_problemes_amb_Etherboot

Menús a mida

Comanda dcs de clonezilla

Si s'utilitza l'assistent de clonezilla per tal de afegir una entrada al menú de PXELinux;

$  sudo /opt/drbl/sbin/dcs 

Cal tenir en compte una sèrie de temes.


Selecció dels clients:

TODO

Do you want to ALWAYS provide clonezilla service for client ?

Durant la pregunta:

DCSDRBL.png

Tingueu en compte que si marqueu l'opció per defecte, la opció de menú que esteu afegint només s'executarà un cop en el client! Si l'objectiu és oferir sempre aquesta opció de restauració haureu d'escollir un altra opció.

La opció més segura és oferir l'arrancada des del disc dur local com a opció per defecte (-y0). Altres opcions poden provocar que algú sense donar-se compte es restauri una imatge de sistema.

Tallafocs (firewall). Iptables

Els serveis que tenen que ser accessibles són:

  • DHCP
  • NFS
  • TFTPD

Per tant si teniu una màquina/encaminador entre el client de clonezilla i el servidor DRBL cal assegurar-se que no hi hagi cap norma del tallafocs que impedeixi l'accés a aquests serveis.

Per exemple, amb iptables i en el següent cas:

client (192.168.1.4) --> router/encaminador (192.168.1.1) interfície d'entrada --> router/encaminador (192.168.0.2) interfície d'entrada --> Servidor DRBL (192.168.0.8)

On podeu observar com entre el client clonezilla i el servidor DRBL hi ha un encaminador.

Per permetre l'accés al servidor TFTPD:

#Permetre l'accés a TFTP de l'arrancada de xarxa
#Necessari per al sistema d'arrancada en xarxa i restauració d'imatges
-A FORWARD -o eth0 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT
-A FORWARD -i eth0 -s 192.168.0.8 -p udp -j ACCEPT
-A FORWARD -o eth1 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT 
-A FORWARD -i eth1 -s 192.168.0.8 -p udp -j ACCEPT 
-A FORWARD -o eth2 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT 
-A FORWARD -i eth2 -s 192.168.0.8 -p udp -j ACCEPT 
-A FORWARD -o eth3 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT 
-A FORWARD -i eth3 -s 192.168.0.8 -p udp -j ACCEPT
-A FORWARD -o eth4 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT
-A FORWARD -i eth4 -s 192.168.0.8 -p udp -j ACCEPT
-A FORWARD -o eth5 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT
-A FORWARD -i eth5 -s 192.168.0.8 -p udp -j ACCEPT
-A FORWARD -o eth6 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT
-A FORWARD -i eth6 -s 192.168.0.8 -p udp -j ACCEPT
-A FORWARD -o eth7 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT
-A FORWARD -i eth7 -s 192.168.0.8 -p udp -j ACCEPT
-A FORWARD -o eth8 -d 192.168.0.8 -p udp --dport 69 -j ACCEPT
-A FORWARD -i eth8 -s 192.168.0.8 -p udp -j ACCEPT

Per permetre NFS:

-A FORWARD -o eth0 -i eth8 -d 192.168.0.8 -p tcp --dport 2049 -j ACCEPT

Multicast

Primer de tot, cal assegurar-se que DRBL utilitza la interfície de xarxa adequada per a multicast. Consulteu DRBL#Multicast.

Si les dues màquines estan a la mateixa xarxa local o vlan, el multicast funciona automàticament sense fer res (només cal tenir en compte que l'encaminador no tingui limitacions. Consulteu Multicast#Commutadors_i_multicast).

Si el servidor DRBL i el client estan en rangs de xarxa diferents aleshores ens cal configurar l'encaminador o encaminadors que uneixen les dues xarxes per tal de ser encaminadors multicast.

Per exemple podeu utilitzar smcroute. Consulteu Multicast#smcroute_i_DRBL_.28clonezilla_multicast.29

Al servidor DRBL podem saber que s'està executant el multicast amb:

$ ps aux | grep udp
root      9011  0.0  0.0   1084   320 pts/0    S    17:52   0:00 udp-sender --full-duplex --min-wait 120 --interface eth0 --nokbd --mcast-all-addr  
224.0.0.1 --portbase 2232 --ttl 1

Com veieu, s'utilitza udpcast.

El primer que cal fer és canviar la opció TTL (Time To Live). Amb un TTL=1, els paquets no passaran de l'encaminador (el TTL disminueix en 1 cada cop que arriba a un encaminador i només reenvia el paquet si el TTLdesprés del decrement és >0).


TODO