74 lines
1.7 KiB
Text
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',
|
|
])
|
|
|