El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

dhcp por grupos

| Comments

La fiebre LTSP sigue subiendo en el Calixto. La solución definitiva para toda máquina que butee por la red, sin importar su cantidad de RAM o micro…

Pero cuando hay más de un servidor con DHCP en la misma red, se forma el rollo.

isc-dhcp no se puede bloquear con iptables

Si tienes alguna duda de la afirmación anterior, has la tarea y busca en google. De nada vale ponerle un cortafuegos a cada servidor porque isc usa “raw packets” y se caga en lo que diga iptables. Por suerte de afuera pa dentro eso no se aplica. No obstante, ojo si pones un isc con múltiples interfaces, no sea que acabes dándole DHCP al ruter.

En un ambiente como este, no queda otra que hacer un DHCP central con múltiples parámetros, de forma que los clientes ligeros se agrupen por MAC address y se seleccione el servidor adecuado a la hora de butear.

El fichero de configuración es /etc/dhcp/dhcpd.conf y bajo la declaración de la subnet puedes poner una cláusula group para dar parámetros diferentes.

La sintaxis es sencilla:

“ejemplo”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
subnet {

   parametros de la red

}

group {

   parametros del grupo

   host nombre {
      parametros del host
   }
}

Tomemos el caso de dos servidores LTSP en la red, el 10.1.1.6 y el 10.1.1.3, a mi me quedó así:

“/etc/dhcp/dhcpd.conf”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# vim:filetype=config
authoritative;

# la red
subnet 10.1.1.0 netmask 255.255.255.0 {
    range 10.1.1.100 10.1.1.254;
    option domain-name "hcg.sld.cu";
    option domain-name-servers 10.1.1.1;
    option broadcast-address 10.1.1.255;
    option subnet-mask 255.255.255.0;
} # subnet


# ganker y su pandilla, la gente de archivos médicos
group {

    # clientes ligeros con linux y ltsp
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }

   # buteen por ganker
   next-server 10.1.1.3;

   # los clientes
   host clganker1 { hardware ethernet 00:1E:90:E1:B4:0A; }
   host clganker2 { hardware ethernet 00:1E:90:E2:6E:1A; }
   host clganker3 { hardware ethernet 00:1E:90:E2:75:B6; }
   host clganker4 { hardware ethernet 00:1E:90:F5:E8:A5; }
   host clganker5 { hardware ethernet 00:1E:90:F5:E9:88; }

} # ganker


# atenea y su flotilla, el servidor de la biblioteca
group {

    # clientes ligeros con linux y ltsp
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }

   # buteen por el servidor de la bibliteoca
   next-server 10.1.1.6;

   # los clientes
   host biblioteca1 { hardware ethernet 00:1E:90:E1:B4:0A; }
   host biblioteca2 { hardware ethernet 00:1E:90:E2:6E:1A; }
   host biblioteca3 { hardware ethernet 00:1E:90:E2:75:B6; }
   host biblioteca4 { hardware ethernet 00:1E:90:F5:E8:A5; }
   host biblioteca5 { hardware ethernet 00:1E:90:F5:E9:88; }

} # ganker

¿Qué hicimos? Sencillo, declaramos un grupo con distintos parámetros, aunque en este caso solo next-server es verdaderamente distinto. En ambos casos se engatilla el mismo file-name y root-path ya que ambos servidores hay lo mismo. Pero quizás en su red usted tiene otro servidor bootp o PXE y no querrá que las opciones de LTSP sean la misma.

Finalmente el parámetro next-server difiere y es que es este el que le da porque servidor bootear.

Si este artículo te resultó interesante, considere donar 0.04 BTC: 14iNmkfULf5jggumVh963kUg4UPScEZHgz

Comments