okay. let's give this a shot.
This commit is contained in:
@@ -5,12 +5,19 @@
|
||||
{%- set mtu = 1480 -%}
|
||||
{#- Minimum seconds allowed between sending unsolicited multicast RAs. 3 < x < (0.75 * max_inter) -#}
|
||||
{#- If using Mobile Extensions, 0.33 < x (0.75 * max_inter) -#}
|
||||
{%- set min_inter = 60 -%}
|
||||
{%- set min_inter = 10 -%}
|
||||
{#- Maximum seconds allowed between sending unsolicited multicast RAs. 4 < x < 1800 -#}
|
||||
{#- If using Mobile Extensions, 0.07 < x 1800 -#}
|
||||
{%- set max_inter = 600 -%}
|
||||
{%- set max_inter = 60 -%}
|
||||
{#- Minimum seconds between sending multicast RAs (solicited and unsolicited). -#}
|
||||
{#- If using Mobile Extensions, 0.03 < x -#}
|
||||
{%- set min_delay = 3 -%}
|
||||
{#- The lifetime associated with the default router in units of seconds. 0 OR max_inter < x < 9000 -#}
|
||||
{%- set lifetime = 9000 -%}
|
||||
{#- ## DHCPv6 OPTIONS ## -#}
|
||||
{#- Obviously, these only works for DNSMasq. -#}
|
||||
{#- Obviously, these only work for DNSMasq. -#}
|
||||
{#- How long the lease should last until a new one is requested. -#}
|
||||
{#- This is also used for *SLAAC addresses* in radvd. -#}
|
||||
{%- set lease_life = 21600 -%}{#- 6 hours -#}
|
||||
{#- How long should the options be valid for. -#}
|
||||
{%- set opts_life = lease_life -%}
|
||||
|
||||
@@ -1,2 +1,49 @@
|
||||
{%- import '_common.j2' as common_opts with context -%}
|
||||
# This file should be *included* in your dnsmasq configuration.
|
||||
# Generated by he_ipv6.
|
||||
# See "dnsmasq --help dhcp6" for matching option identifers ("dhcp-option = ..., option6: <option>").
|
||||
enable-ra
|
||||
{% for assignment in assignments %}
|
||||
{%- set assign_loop = loop -%}
|
||||
{%- set ra_opts = [] -%}
|
||||
{%- if assignment.ra_tag -%}
|
||||
{%- set id_set = 'tag:' + assignment.ra_tag -%}
|
||||
{%- set identifier = id_set -%}
|
||||
{%- set do_listen = false -%}
|
||||
{%- else -%}
|
||||
{%- set id_set = 'set:' + assignment.iface -%}
|
||||
{%- set identifier = 'tag:' + assignment.iface -%}
|
||||
{%- set do_listen = true -%}
|
||||
{%- endif -%}
|
||||
{%- if assignment.ra_dns -%}
|
||||
{%- do ra_opts.append('sa-names') -%}
|
||||
{%- endif -%}
|
||||
{%- if assignment.ra_dhcp is false -%}
|
||||
{%- do ra_opts.append('ra-only') -%}
|
||||
{%- if assignment.ra_other is true -%}
|
||||
{%- do ra_opts.append('ra-stateless') -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- do ra_opts.append('slaac') -%}
|
||||
{%- do ra_opts.append('ra-names') -%}
|
||||
# {{ assignment.iface }} assignment
|
||||
{%- if do_listen %}
|
||||
listen = {{ assignment.iface_ll }}
|
||||
{%- endif %}
|
||||
ra-param = {{ assignment.iface }}, mtu:{{ common_opts.mtu }}, high, {{ common_opts.min_delay }}, {{ common_opts.lifetime }}
|
||||
{%- if assignment.ra_dhcp %}
|
||||
{%- for block in assignment.iface_blocks %}
|
||||
dhcp-range = {{ id_set }}, {{ assignment.dhcp6_ranges[assign_loop.index0]|join(', ') }}, {{ ra_opts|join(', ') }}, {{ common_opts.lease_life }}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
dhcp-range = {{ id_set }}, ::, constructor={{ assignment.iface }}, {{ ra_opts|join(', ') }}, {{ common_opts.lease_life }}{#- TODO: check this. #}
|
||||
{%- endif %}
|
||||
dhcp-option = {{ identifier }}, option6:information-refresh-time, {{ common_opts.opts_life }}
|
||||
{%- if assignment.ra_dns %}
|
||||
dhcp-option = {{ identifier }}, option6:dns-server, [{{ assignment.iface_ll }}]
|
||||
{%- endif %}
|
||||
{%- if assignment.ra_domains %}
|
||||
dhcp-option = {{ identifier }}, option6:domain-search, {{ assignment.ra_domains|join(',') }}
|
||||
{%- endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
@@ -1,30 +1,44 @@
|
||||
# Generated by he_ipv6
|
||||
{% for assign in assignments %}
|
||||
{% for assignment in assign.iface_blocks %}
|
||||
{%- import '_common.j2' as common_opts with context -%}
|
||||
# Generated by he_ipv6.
|
||||
# This may go wonky with multiple assignments on the same iface.
|
||||
{% for assignment in assignments %}
|
||||
interface {{ assignment.iface }} {
|
||||
AdvSendAdvert on;
|
||||
# Is it 1480 or 1280? Arch wiki says 1480, but everything else (older) says 1280.
|
||||
# AdvLinkMTU 1280;
|
||||
AdvLinkMTU 1480;
|
||||
MinRtrAdvInterval 60;
|
||||
MaxRtrAdvInterval 600;
|
||||
AdvDefaultLifetime 9000;
|
||||
AdvLinkMTU {{ common_opts.mtu }};
|
||||
MinRtrAdvInterval {{ common_opts.min_inter }};
|
||||
MaxRtrAdvInterval {{ common_opts.max_inter }};
|
||||
MinDelayBetweenRAs {{ common_opts.min_delay }};
|
||||
AdvDefaultLifetime {{ common_opts.lifetime }};
|
||||
{%- if assignment.ra_dhcp is true -%}
|
||||
AdvManagedFlag on;
|
||||
{%- endif %}
|
||||
{%- if assignment.ra_other is true -%}
|
||||
AdvOtherConfigFlag on;
|
||||
{%- endif %}
|
||||
|
||||
{%- for block in assignment.iface_blocks %}
|
||||
prefix {{ block|string }} {
|
||||
AdvOnLink on;
|
||||
{%- if block.prefixlen == 64 %}
|
||||
{%- if block.prefixlen <= 64 %}
|
||||
AdvAutonomous on;
|
||||
{%- endif %}
|
||||
AdvValidLifetime {{ common_opts.lease_life }};
|
||||
AdvPreferredLifetime {{ common_opts.lease_life }};
|
||||
AdvRouterAddr off;
|
||||
};
|
||||
{%- endfor %}
|
||||
|
||||
{%- if ra.dns is true %}
|
||||
RDNSS {{ nameservers[assignment.iface]|join(' ') }} {
|
||||
{%- if assign.ra_dns is true %}
|
||||
RDNSS {{ assignment.iface_ll }} {
|
||||
AdvRDNSSLifetime {{ common_opts.opts_life }};
|
||||
};
|
||||
{%- endif %}
|
||||
|
||||
{%- if assign.ra_domains %}
|
||||
DNSSL {{ assignment.ra_domains|join(' ') }} {
|
||||
AdvDNSSLLifetime {{ common_opts.opts_life }};
|
||||
};
|
||||
{%- endif %}
|
||||
};
|
||||
|
||||
{%- endfor %}
|
||||
{%- endfor %}
|
||||
|
||||
Reference in New Issue
Block a user