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

74 lines
1.7 KiB
Text

# -*- coding: utf-8 -*-
info["owner"] = "root"
info["group"] = "root"
info["mode"] = 0644
include("ip")
comment_start = "#"
header("Annonce des routes IPv6")
rec = [
'2a01:240:fe3d:4:ea39:35ff:fef0:48c8', # Charybde
'2a01:240:fe3d:4:f46f:f1ff:fe78:57ab', # nem
]
# Pour plus tard:
# rec = ips_of_metadata(metadata.query.by_groups(['dns-recursif'] ), vlan='adh')
# Prob actuel: charybde n'apparaît pas dans cette requête car il ne présente
# pas son ipv6 dans son ndd.
rec_tpl = ""
for ip in rec:
if ':' not in ip:
continue
rec_tpl += """
RDNSS %s {
AdvRDNSSOpen on;
AdvRDNSSPreference 2;
};
""" % ip
#rec_tpl += '# %r' % metadata.query.by_groups('dns-recursif')
def router_adv(**kw):
kw['rec'] = rec_tpl
kw.setdefault('other_prefixes', [])
def prefix_section(pref):
"""Renvoie la section de conf d'un prefixe additionnel"""
return """
prefix %s {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};""" % pref
kw['other_prefixes'] = '\n'.join(map(prefix_section, kw['other_prefixes']))
out("""
interface %(iface)s
{
AdvSendAdvert on;
AdvLinkMTU 1280;
AdvDefaultPreference high;
prefix %(prefix)s {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
# Les routes supplémentaires:\n %(other_prefixes)s
# Les récursifs:\n %(rec)s
};
""" % kw)
# NOTE: Je met \n parce qu'un "%" en début de ligne est remplacé par bcfg2 …
router_adv(iface='crans', prefix='2a01:240:fe3d:4::/64')
router_adv(iface='crans.3', prefix='2a01:240:fe3d:c04::/64',
other_prefixes=[
# ULA de management des bornes: fda8:5d34:a228:/48
'fda8:5d34:a228:c04::/64',
])