crans_bcfg2/Python/etc/dhcp3/dhcpd.conf
2015-05-14 07:19:56 +02:00

217 lines
5.8 KiB
Python

# -*- mode: python; encoding: utf-8 -*-
info["owner"] = "root"
info["group"] = "root"
info["mode"] = 0600
comment_start = "#"
header("Configuration dhcp de %s" % admhostname)
include("ip")
import config.dns
instpar = has('ytrap-llatsni')
@#
@# Sample configuration file for ISC dhcpd for Debian
@#
@# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
@#
@
@# The ddns-updates-style parameter controls whether or not the server will
@# attempt to do a DNS update when a lease is confirmed. We default to the
@# behavior of the version 2 packages ('none', since DHCP v2 didn't
@# have support for DDNS.)
@ddns-update-style none;
@
if not instpar:
@include "/etc/dhcp3/omapi.conf";
@
@# option definitions common to all supported networks...
@option option-252 code 252 = text ;
@option domain-search code 119 = text ;
@option option-119 code 119 = text ;
@# La pluspart de nos réseaux sont taggués, on utilise donc une mtu de 1500-4 octets
@option interface-mtu 1496;
@
@# If this DHCP server is the official DHCP server for the local
@# network, the authoritative directive should be uncommented.
if instpar:
@authoritative;
else:
@#authoritative;
@# Use this to send dhcp log messages to a different log file (you also
@# have to hack syslog.conf to complete the redirection).
@log-facility local7;
if not instpar:
@include "/etc/dhcp3/dhcp-failover.conf";
if has("vlan-radin"):
out("""
# VLan gratuit
subnet 10.42.0.0 netmask 255.255.0.0 {
interface eth3;
option domain-name-servers %s;
authoritative;
default-lease-time 86400;
pool {
range 10.42.1.1 10.42.255.200;
failover peer "dhcp-failover";
}
}""" % (', '.join(config.dns.recursiv['gratuit']),))
if has("vlan-accueil"):
out("""
# VLan accueil
subnet 10.51.0.0 netmask 255.255.0.0 {
interface eth4;
default-lease-time 600;
max-lease-time 7200;
# On met sable en router pour pouvoir accéder à l'intranet et au wiki
option routers 10.51.0.10;
# On n'a besoin que du dns ici (pour le portail captif)
option domain-name-servers %s;
authoritative;
option root-path "/";
next-server 138.231.136.98;
filename "pxelinux.0";
option time-servers 10.51.0.10;
option ntp-servers 10.51.0.10;
pool {
failover peer "dhcp-failover";
range 10.51.1.1 10.51.255.200;
}
}""" % (', '.join(config.dns.recursiv['accueil']),))
if has("vlan-isolement"):
out("""
# VLan isolement
subnet 10.52.0.0 netmask 255.255.0.0 {
interface eth5;
default-lease-time 600;
max-lease-time 7200;
option domain-name-servers %s;
option routers 10.52.0.10;
authoritative;
option root-path "/";
next-server 138.231.136.98;
filename "pxelinux.0";
pool {
failover peer "dhcp-failover";
range 10.52.1.1 10.52.255.200;
}
}
""" % (', '.join(config.dns.recursiv['isolement']),))
if not has("non-vlan-adherent") and not instpar:
out("""
# Vlan des adhérents
subnet 138.231.136.0 netmask 255.255.248.0 {
interface eth0;
default-lease-time 86400;
option subnet-mask 255.255.248.0;
option broadcast-address 138.231.143.255;
authoritative;
option routers 138.231.136.4;
option domain-name-servers %s;
option domain-name "crans.org";
option domain-search "crans.org";
option root-path "/";
next-server 138.231.136.98;
filename "pxelinux.0";
option time-servers 138.231.136.9;
option ntp-servers 138.231.136.9;
option smtp-server 138.231.136.39;
option ip-forwarding off;
deny unknown-clients;
include "/etc/dhcp3/generated/adherents.liste";
}
""" % (', '.join(config.dns.recursiv['fil']),))
if has("vlan-wifi"):
out("""
# Vlan des wifi
subnet 138.231.144.0 netmask 255.255.248.0 {
interface eth2;
default-lease-time 86400;
option subnet-mask 255.255.248.0;
option broadcast-address 138.231.148.255;
authoritative;
option routers 138.231.148.4;
option domain-name-servers %s;
option domain-name "crans.org";
option option-119 "crans.org";
option domain-search "crans.org";
option time-servers 138.231.136.9;
option ntp-servers 138.231.136.9;
option smtp-server 138.231.136.3;
option ip-forwarding off;
deny unknown-clients;
include "/etc/dhcp3/generated/wifi.liste";
}""" % (', '.join(config.dns.recursiv['wifi']),))
if has("vlan-ens"):
out("""
#Vlan appartement
subnet 10.2.9.0 netmask 255.255.255.0 {
interface eth6;
default-lease-time 86400;
option subnet-mask 255.255.255.0;
option broadcast-address 10.2.9.255;
authoritative;
option routers 10.2.9.4;
option domain-name-servers %s;
option ip-forwarding off;
option root-path "/";
next-server 138.231.136.98;
filename "pxelinux.0";
deny unknown-clients;
include "/etc/dhcp3/generated/appartements.liste";
}
""" % (', '.join(config.dns.recursiv['personnel-ens']),))
if has("vlan-evenementiel"):
out("""
subnet 10.231.137.0 netmask 255.255.255.0 {
range 10.231.137.20 10.231.137.254;
next-server 10.231.137.1;
# Options pour le PXE
option root-path "/";
option routers 10.231.137.1;
option domain-name-servers %s;
option domain-name "crans.org";
option domain-search "crans.org";
# Fichier a charger pour le boot par le reseau
filename "pxelinux.0";
}
""" % (', '.join(config.dns.recursiv['evenementiel']),))
if has("vlan-federez"):
out("""
# Vlan wifi federez
subnet 10.53.0.0 netmask 255.255.0.0 {
interface eth7;
range 10.53.1.0 10.53.255.254;
default-lease-time 86400;
option subnet-mask 255.255.0.0;
option broadcast-address 10.53.255.255;
next-server 138.231.136.98;
option ip-forwarding off;
authoritative;
option root-path "/";
option routers 10.53.0.4;
option domain-name-servers %s;
option domain-name "crans.org";
option domain-search "crans.org";
# Fichier a charger pour le boot par le reseau
filename "pxelinux.0";
}
""" % (', '.join(config.dns.recursiv['fil']),))