Projet

Général

Profil

dhcpd.conf

Philippe Carre, 28/12/2016 16:25

Télécharger (8,97 ko)

 
1
########################################################
2
#
3
## dhcpd.conf pour ScribeNg
4
#
5
## Equipe Eole eole@ac-dijon.fr
6
#
7
## septembre 2007
8
#
9
########################################################
10
#
11
%if not %%is_empty(%%global_dhcp_lease_default)
12
default-lease-time %%global_dhcp_lease_default;
13
%end if
14
%if not %%is_empty(%%global_dhcp_lease_max)
15
max-lease-time %%global_dhcp_lease_max;
16
%end if
17
%if not %%is_empty(%%global_nom_domaine_dhcp)
18
option domain-name "%%global_nom_domaine_dhcp";
19
%end if
20
%if not %%is_empty(%%global_adresse_ip_dns_dhcp)
21
%set %%dns_ip = %%global_adresse_ip_dns_dhcp
22
%if not %%is_empty(%%global_adresse_ip_dns_secondaire_dhcp)
23
%set %%dns_ip = %%dns_ip + ', ' + %%global_adresse_ip_dns_secondaire_dhcp
24
%end if
25
option domain-name-servers %%dns_ip;
26
%end if
27
%if not %%is_empty(%%global_adresse_ip_wins_primaire_dhcp)
28
%set %%netbios_ip = %%global_adresse_ip_wins_primaire_dhcp
29
%if not %%is_empty(%%global_adresse_ip_wins_secondaire_dhcp)
30
%set %%netbios_ip = %%netbios_ip + ', ' + %%global_adresse_ip_wins_secondaire_dhcp
31
%end if
32
option netbios-name-servers %%netbios_ip;
33
option netbios-dd-server %%netbios_ip;
34
option netbios-node-type 8;
35
%end if
36
%if not %%is_empty(%%global_adresse_ip_ntp_dhcp)
37
option ntp-servers %%global_adresse_ip_ntp_dhcp;
38
%end if
39
%if not %%is_empty(%%global_domain_wpad_dhcp)
40
option wpad-url code 252 = text;
41
option wpad-url "http://wpad.%%global_domain_wpad_dhcp/wpad.dat\n";
42
%end if
43

    
44
#ToIP
45
%if %%global_verif_modele_telip_dhcp == "oui"
46
## Vérification des id vendor dans le fichier des baux
47
set vendor-string = option vendor-class-identifier;
48
%end if
49
%if not %%is_empty(%%global_modele_telip_dhcp)
50
## définition des espaces d'option Tel.IP
51
 %for %%i_modele in %%global_modele_telip_dhcp
52
option space %%i_modele code width 1 length width 1 hash size 3;
53
%set %%optprio = %%i_modele +'.vendor-priority'
54
%set %%optvlan = %%i_modele +'.vendor-vlan-id'
55
option %%optprio code %%i_modele.global_option_vendor_priority_dhcp = unsigned integer 8;
56
option %%optvlan code %%i_modele.global_option_vendor_vlanid_dhcp = unsigned integer 16;
57
#
58
 %end for
59
%end if
60

    
61
#ddns-update-style none;
62
authoritative;
63

    
64
%if %%adresse_network_eth0 not in %%adresse_network_dhcp
65
# pas de dhcp sur la zone scribe
66
subnet %%adresse_network_eth0 netmask %%adresse_netmask_eth0 {
67
}
68
%end if
69

    
70
%set %%subnets = {}
71
%for %%subnet in %%adresse_network_dhcp
72
%silent %%subnets.setdefault((%%str(%%subnet), %%subnet.adresse_netmask_dhcp),{})
73
 %set %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('ranges', {})[(%%subnet.ip_basse_dhcp, %%subnet.ip_haute_dhcp)] = {'restriction': %%subnet.interdire_hotes_inconnus, 'lease_default': %%subnet.dhcp_lease_default, 'lease_max': %%subnet.dhcp_lease_max}
74
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('dns', [])
75
%if %%subnet.adresse_ip_dns_dhcp not in %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)]['dns']
76
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('dns', []).append(%%subnet.adresse_ip_dns_dhcp)
77
%end if
78
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('dns', [])
79
%if %%subnet.adresse_ip_dns_secondaire_dhcp not in %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)]['dns']
80
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('dns', []).append(%%subnet.adresse_ip_dns_secondaire_dhcp)
81
%end if
82
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('domain', [])
83
%if %%subnet.nom_domaine_dhcp not in %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)]['domain']
84
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('domain', []).append(%%subnet.nom_domaine_dhcp)
85
%end if
86
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('gateway', [])
87
%if %%subnet.adresse_ip_gw_dhcp not in %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)]['gateway']
88
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('gateway', []).append(%%subnet.adresse_ip_gw_dhcp)
89
%end if
90
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('ntp', [])
91
%if %%subnet.adresse_ip_ntp_dhcp not in %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)]['ntp']
92
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('ntp', []).append(%%subnet.adresse_ip_ntp_dhcp)
93
%end if
94
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('wins', [])
95
%if %%subnet.adresse_ip_wins_primaire_dhcp not in %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)]['wins']
96
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('wins', []).append(%%subnet.adresse_ip_wins_primaire_dhcp)
97
%end if
98
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('wins', [])
99
%if %%subnet.adresse_ip_wins_secondaire_dhcp not in %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)]['wins']
100
%silent  %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('wins', []).append(%%subnet.adresse_ip_wins_secondaire_dhcp)
101
%end if
102

    
103
%silent %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('priority', []).append(%%subnet.vendor_priority_dhcp)
104
%silent %%subnets[(%%str(%%subnet), %%subnet.adresse_netmask_dhcp)].setdefault('vlanid', []).append(%%subnet.vendor_vlanid_dhcp)
105

    
106
%end for
107
%for %%subnet in %%subnets
108
subnet %%subnet[0] netmask %%subnet[1] {
109
 %set %%gateway = [g for g in %%subnets[%%subnet]['gateway'] if g != None]
110
 %if not %%len(%%gateway) == 0
111
    option routers %%custom_join(%%gateway, ' ');
112
 %end if
113
    option subnet-mask %%subnet[1];
114
 %set %%domain = [g for g in %%subnets[%%subnet]['domain'] if g != None]
115
 %if not %%len(%%domain) == 0
116
    option domain-name "%%domain[0]";
117
 %end if
118
 %set %%dns = [d for d in %%subnets[%%subnet]['dns'] if d != None]
119
 %if not %%len(%%dns) == 0
120
    option domain-name-servers %%custom_join(%%dns, ', ');
121
 %end if
122
 %set %%wins = [d for d in %%subnets[%%subnet]['wins'] if d != None]
123
 %if %%len(%%wins) == 0 and %%is_defined('container_ip_fichier')
124
  %if %%container_ip_fichier == "127.0.0.1"
125
    option netbios-name-servers %%adresse_ip_eth0;
126
    option netbios-dd-server %%adresse_ip_eth0;
127
    option netbios-node-type 8;
128
  %else
129
    option netbios-name-servers %%adresse_ip_fichier_link;
130
    option netbios-dd-server %%adresse_ip_fichier_link;
131
    option netbios-node-type 8;
132
  %end if
133
 %elif not %%len(%%wins) == 0
134
    option netbios-name-servers %%custom_join(%%wins, ', ');
135
    option netbios-dd-server %%custom_join(%%wins, ', ');
136
    option netbios-node-type 8;
137
 %end if
138

    
139
    # dhcp statique
140
    include "/etc/dhcp/fixed-address/%%{subnet[0]}_%%{subnet[1]}.txt";
141

    
142
    #serveur de temps
143
 %set %%ntp = [d for d in %%subnets[%%subnet]['ntp'] if d != None]
144
 %if not %%len(%%ntp) == 0
145
    option ntp-servers %%custom_join(%%ntp, ', ');
146
 %else
147
    option ntp-servers %%adresse_ip_eth0;
148
 %end if
149

    
150
 %if %%activer_tftp == 'oui'
151
   next-server %%adresse_ip_tftp;
152
   filename "%%chemin_fichier_pxe";
153
 %end if
154

    
155

    
156
## définition des espaces d'option Tel.IP
157
 %set %%vlanid = [v for v in %%subnets[%%subnet]['vlanid'] if v != None]
158
  %if not %%len(%%vlanid) == 0
159
   %if not %%is_empty(%%global_modele_telip_dhcp)
160
    %for %%i_modele in %%global_modele_telip_dhcp
161
     %set %%optprio = %%i_modele +'.vendor-priority'
162
     %set %%optvlan = %%i_modele +'.vendor-vlan-id'
163
     class "vendor-class-%%i_modele" {
164
       match if option vendor-class-identifier="%%i_modele.global_vendor_identifier_dhcp";
165
        vendor-option-space %%i_modele;
166
       %set %%priority = [p for p in %%subnets[%%subnet]['priority'] if p != None]
167
        %if not %%len(%%priority) == 0
168
        option %%optprio %%custom_join(%%priority, ' ');
169
        %end if
170
       %set %%vlanid = [l for l in %%subnets[%%subnet]['vlanid'] if l != None]
171
        %if not %%len(%%vlanid) == 0
172
        option %%optvlan %%custom_join(%%vlanid, ' ');
173
        %end if
174
    }
175
    %end for
176
   %end if
177
  %end if
178

    
179
 %set %%nb_ranges = %%len(%%subnets[%%subnet]['ranges'])
180
  %for %%range_ip in %%subnets[%%subnet]['ranges']
181
%if %%nb_ranges > 1
182
    # plages d'ip
183
    pool {
184
          range %%range_ip[0] %%range_ip[1];
185
 %if %%subnets[%%subnet]['ranges'][%%range_ip]['restriction'] == 'oui'
186
          deny unknown-clients;
187
 %end if
188
 %set %%lease_default = %%subnets[%%subnet]['ranges'][%%range_ip]['lease_default']
189
 %if not %%lease_default == None
190
          default-lease-time	%%lease_default;
191
 %end if
192
 %set %%lease_max = %%subnets[%%subnet]['ranges'][%%range_ip]['lease_max']
193
 %if not %%lease_max == None
194
          max-lease-time 	%%lease_max;
195
 %end if
196
    }
197
%else
198
    # plages d'ip
199
 %set %%lease_default = %%subnets[%%subnet]['ranges'][%%range_ip]['lease_default']
200
 %if not %%lease_default == None
201
    default-lease-time	%%lease_default;
202
 %end if
203
 %set %%lease_max = %%subnets[%%subnet]['ranges'][%%range_ip]['lease_max']
204
 %if not %%lease_max == None
205
    max-lease-time 	%%lease_max;
206
 %end if
207
    range %%range_ip[0] %%range_ip[1];
208
 %if %%subnets[%%subnet]['ranges'][%%range_ip]['restriction'] == 'oui'
209
    deny unknown-clients;
210
 %end if
211
%end if
212

    
213

    
214
%end for
215
}
216

    
217
%end for