[config,bind] On pousse une partie de la configuration dans config.py pour l'utiliser depuis bcfg2
Ignore-this: 52f33e0a3a665905915eb30c54bfbffa darcs-hash:20130126175548-3a55a-38c50d5b7cf7b47b13d78eda81cf5ce063a4d463.gz
This commit is contained in:
parent
bfd4e48d99
commit
41c084facc
2 changed files with 73 additions and 33 deletions
|
@ -131,6 +131,7 @@ sshkey_size = {
|
||||||
'dsa':1024,
|
'dsa':1024,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
## Impression
|
## Impression
|
||||||
class impression:
|
class impression:
|
||||||
"""Cette classe contient toutes les variables
|
"""Cette classe contient toutes les variables
|
||||||
|
@ -652,6 +653,38 @@ accueil_route = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## gestion du dns
|
||||||
|
class dns:
|
||||||
|
parent='138.231.176.4' # ariane pour la zone parente
|
||||||
|
master='10.231.136.9'
|
||||||
|
slaves=[
|
||||||
|
'10.231.136.8', # ovh
|
||||||
|
'10.231.136.14', # titanic aka freebox
|
||||||
|
]
|
||||||
|
|
||||||
|
master_tv='10.231.136.243'
|
||||||
|
slaves_tv=slaves + [master]
|
||||||
|
|
||||||
|
secours_relay='10.231.136.14';
|
||||||
|
|
||||||
|
# résolution directe
|
||||||
|
zones_direct = [ 'crans.org', 'crans.ens-cachan.fr', 'wifi.crans.org', 'ferme.crans.org' , 'clubs.ens-cachan.fr', 'adm.crans.org','crans.eu','wifi.crans.eu' ]
|
||||||
|
# Zones signée par opendnssec sur le serveur master
|
||||||
|
zones_dnssec = ['crans.eu','wifi.crans.eu','v6.crans.eu','wifi.v6.crans.eu']
|
||||||
|
# Zones alias pour les enregistrements A AAAA CNAME TXT et SSHFP
|
||||||
|
zone_alias = {
|
||||||
|
'crans.org' : ['crans.eu'],
|
||||||
|
'wifi.crans.org' : ['wifi.crans.eu'],
|
||||||
|
}
|
||||||
|
|
||||||
|
# Résolution inverse
|
||||||
|
zones_reverse = NETs["all"] + NETs["adm"] + NETs["personnel-ens"]
|
||||||
|
zones_reverse_v6 = prefix['fil'] + prefix['wifi'] + prefix ['adm'] + prefix['personnel-ens'] # à modifier aussi dans bind.py
|
||||||
|
|
||||||
|
recursiv = ['138.231.136.98', '138.231.136.247'] # charybde et gordon
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
## Mail de bienvenue ##
|
## Mail de bienvenue ##
|
||||||
#######################
|
#######################
|
||||||
|
|
|
@ -21,6 +21,36 @@ import ldap_crans
|
||||||
def short_name(fullhostname):
|
def short_name(fullhostname):
|
||||||
return fullhostname.split(".")[0]
|
return fullhostname.split(".")[0]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def netv4_to_arpa(net):
|
||||||
|
addr, prefixlen = net.split('/')
|
||||||
|
if prefixlen == '16':
|
||||||
|
return ["%s.in-addr.arpa" % '.'.join(reversed(addr.split('.')[0:2]))]
|
||||||
|
zones=[]
|
||||||
|
n = map(int,net.split('/')[0].split('.')[:3])
|
||||||
|
while 1 :
|
||||||
|
try:
|
||||||
|
innet = AddrInNet("%d.%d.%d.1" % tuple(n),net)
|
||||||
|
except ValueError:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
if not innet:
|
||||||
|
break
|
||||||
|
else :
|
||||||
|
n.reverse()
|
||||||
|
zones.append("%d.%d.%d.in-addr.arpa" % tuple(n))
|
||||||
|
n.reverse()
|
||||||
|
n[2] += 1
|
||||||
|
return zones
|
||||||
|
|
||||||
|
def netv6_to_arpa(net):
|
||||||
|
n = netaddr.IPNetwork(net)
|
||||||
|
network_reverse = netaddr.IPAddress(n.first).reverse_dns
|
||||||
|
zone = network_reverse.split('.')[(128-n.prefixlen)/4:-1]
|
||||||
|
return '.'.join(zone)
|
||||||
|
|
||||||
|
|
||||||
class dns(gen_config) :
|
class dns(gen_config) :
|
||||||
"""
|
"""
|
||||||
Génération des fichiers de configuration de bind9 :
|
Génération des fichiers de configuration de bind9 :
|
||||||
|
@ -51,14 +81,11 @@ la base LDAP
|
||||||
## En cas de modification de ces zones penser à regéner le fichier de
|
## En cas de modification de ces zones penser à regéner le fichier de
|
||||||
## zone des esclaves (sur le serveur principal de bcfg2 : python /usr/scripts/gestion/gen_confs/bind.py puis lancer bcfg2 sur les miroirs)
|
## zone des esclaves (sur le serveur principal de bcfg2 : python /usr/scripts/gestion/gen_confs/bind.py puis lancer bcfg2 sur les miroirs)
|
||||||
# Résolution directe
|
# Résolution directe
|
||||||
zones_direct = [ 'crans.org', 'crans.ens-cachan.fr', 'wifi.crans.org', 'ferme.crans.org' , 'clubs.ens-cachan.fr', 'adm.crans.org','crans.eu','wifi.crans.eu' ]
|
zones_direct = config.dns.zones_direct
|
||||||
# Zones signée par opendnssec sur le serveur maitre
|
# Zones signée par opendnssec sur le serveur maitre
|
||||||
zones_dnssec = ['crans.eu','wifi.crans.eu','v6.crans.eu','wifi.v6.crans.eu']
|
zones_dnssec = config.dns.zones_dnssec
|
||||||
# Zones alias pour les enregistrement A AAAA CNAME TXT et SSHFP
|
# Zones alias pour les enregistrement A AAAA CNAME TXT et SSHFP
|
||||||
zone_alias = {
|
zone_alias = config.dns.zone_alias
|
||||||
'crans.org' : ['crans.eu'],
|
|
||||||
'wifi.crans.org' : ['wifi.crans.eu'],
|
|
||||||
}
|
|
||||||
zones_v4_to_v6 = {
|
zones_v4_to_v6 = {
|
||||||
'wifi.crans.eu': 'wifi.v6.crans.eu',
|
'wifi.crans.eu': 'wifi.v6.crans.eu',
|
||||||
'crans.eu': 'v6.crans.eu',
|
'crans.eu': 'v6.crans.eu',
|
||||||
|
@ -68,7 +95,7 @@ la base LDAP
|
||||||
'ferme.crans.org': 'ferme.v6.crans.org',
|
'ferme.crans.org': 'ferme.v6.crans.org',
|
||||||
}
|
}
|
||||||
# Résolution inverse
|
# Résolution inverse
|
||||||
zones_reverse = config.NETs["all"] + config.NETs["adm"] + config.NETs["personnel-ens"]
|
zones_reverse = config.dns.zones_reverse
|
||||||
zones_v6_to_net = {
|
zones_v6_to_net = {
|
||||||
'crans.eu': config.prefix["fil"][0],
|
'crans.eu': config.prefix["fil"][0],
|
||||||
'crans.org': config.prefix["fil"][0],
|
'crans.org': config.prefix["fil"][0],
|
||||||
|
@ -81,8 +108,8 @@ la base LDAP
|
||||||
### Liste DNS
|
### Liste DNS
|
||||||
# Le premier doit être le maitre
|
# Le premier doit être le maitre
|
||||||
DNSs = ['sable.crans.org', 'freebox.crans.org', 'ovh.crans.org']
|
DNSs = ['sable.crans.org', 'freebox.crans.org', 'ovh.crans.org']
|
||||||
DNSs_private = ['vert.adm.crans.org']
|
DNSs_private = []
|
||||||
ip_master_DNS = "10.231.136.9"
|
ip_master_DNS = config.dns.master
|
||||||
|
|
||||||
### Liste des délégations de zone
|
### Liste des délégations de zone
|
||||||
# Pour les demandes de ces zones, le DNS dira d'aller voir les serveurs listés ici
|
# Pour les demandes de ces zones, le DNS dira d'aller voir les serveurs listés ici
|
||||||
|
@ -185,31 +212,11 @@ zone "%(NOM_zone)s" {
|
||||||
# Ajout des zones reverse
|
# Ajout des zones reverse
|
||||||
for net in self.zones_reverse:
|
for net in self.zones_reverse:
|
||||||
# IPv4 reverse
|
# IPv4 reverse
|
||||||
addr, prefixlen = net.split('/')
|
zones.extend(netv4_to_arpa(net))
|
||||||
if prefixlen == '16':
|
|
||||||
zones.append("%s.in-addr.arpa" % '.'.join(reversed(addr.split('.')[0:2])))
|
|
||||||
continue
|
|
||||||
n = map(int,net.split('/')[0].split('.')[:3])
|
|
||||||
while 1 :
|
|
||||||
try:
|
|
||||||
innet = AddrInNet("%d.%d.%d.1" % tuple(n),net)
|
|
||||||
except ValueError:
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
if not innet:
|
|
||||||
break
|
|
||||||
else :
|
|
||||||
n.reverse()
|
|
||||||
zones.append("%d.%d.%d.in-addr.arpa" % tuple(n))
|
|
||||||
n.reverse()
|
|
||||||
n[2] += 1
|
|
||||||
|
|
||||||
for net in set(self.zones_v6_to_net.values()):
|
for net in set(self.zones_v6_to_net.values()):
|
||||||
# IPv6 reverse
|
# IPv6 reverse
|
||||||
n = netaddr.IPNetwork(net)
|
zones.append(netv6_to_arpa(net))
|
||||||
network_reverse = netaddr.IPAddress(n.first).reverse_dns
|
|
||||||
zone = network_reverse.split('.')[(128-n.prefixlen)/4:-1]
|
|
||||||
zones.append('.'.join(zone))
|
|
||||||
|
|
||||||
# Ecriture
|
# Ecriture
|
||||||
fd = self._open_conf(self.DNS_CONF_BCFG2,'//')
|
fd = self._open_conf(self.DNS_CONF_BCFG2,'//')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue