2017-01-19 23:27:29 +01:00
|
|
|
router id {{ pillar['hosts-inet']['core'][salt['grains.get']('id')] }};
|
|
|
|
|
|
|
|
protocol kernel {
|
|
|
|
scan time 10;
|
|
|
|
import none;
|
|
|
|
export all;
|
|
|
|
}
|
|
|
|
|
|
|
|
protocol device {
|
|
|
|
scan time 10;
|
|
|
|
}
|
|
|
|
|
2017-01-20 02:27:04 +01:00
|
|
|
{%- set radv_ifaces = pillar.get('radv') and pillar['radv'].get(salt['grains.get']('id')) %}
|
|
|
|
{%- if radv_ifaces %}
|
|
|
|
protocol radv {
|
|
|
|
{%- for iface, conf in radv_ifaces.items() %}
|
|
|
|
interface "{{ iface }}" {
|
2017-01-20 03:15:15 +01:00
|
|
|
min ra interval 3;
|
|
|
|
max ra interval 10;
|
2018-06-23 00:22:05 +02:00
|
|
|
{%- for ctx, subnets in pillar['subnets-inet6'].items() %}
|
2019-06-04 20:11:51 +02:00
|
|
|
{%- set subnet6 = subnets.get(iface) %}
|
2019-06-04 20:13:17 +02:00
|
|
|
{%- if subnet6 %}
|
2017-01-20 03:15:15 +01:00
|
|
|
prefix {{ subnet6 }} {
|
|
|
|
preferred lifetime 20;
|
|
|
|
valid lifetime 60;
|
|
|
|
};
|
2019-06-04 20:11:51 +02:00
|
|
|
{%- endif %}
|
2018-06-23 00:22:05 +02:00
|
|
|
{%- endfor %}
|
2017-01-20 02:27:04 +01:00
|
|
|
{%- if conf.get('rdnss') %}
|
|
|
|
{%- for value in conf['rdnss'] %}
|
|
|
|
{%- set host = value.split('.')[0] %}
|
|
|
|
{%- set net = value.split('.')[1] %}
|
2018-06-23 00:23:33 +02:00
|
|
|
rdnss {{ pillar['hosts-inet6']['dn42'][net][host] }};
|
2017-01-20 02:27:04 +01:00
|
|
|
{%- endfor %}
|
|
|
|
{%- endif %}
|
|
|
|
{%- if conf.get('dnssl') %}
|
|
|
|
dnssl {
|
|
|
|
{%- for value in conf['dnssl'] %}
|
|
|
|
domain "{{ value }}";
|
|
|
|
{%- endfor %}
|
|
|
|
};
|
|
|
|
{%- endif %}
|
|
|
|
};
|
|
|
|
{%- endfor %}
|
|
|
|
|
|
|
|
}
|
|
|
|
{%- endif %}
|
|
|
|
|
2017-01-19 23:27:29 +01:00
|
|
|
protocol ospf ZW6 {
|
2017-10-03 16:44:27 +02:00
|
|
|
{%- if pillar.get('bgp') %}
|
|
|
|
export filter {
|
|
|
|
reject;
|
|
|
|
};
|
|
|
|
{%- endif %}
|
2017-01-19 23:27:29 +01:00
|
|
|
area 0 {
|
|
|
|
networks {
|
2019-06-04 20:03:10 +02:00
|
|
|
fd23:42:c3d2:500::/56;
|
2018-06-22 23:33:10 +02:00
|
|
|
2a02:8106:208:5200::/56;
|
2019-06-04 19:57:26 +02:00
|
|
|
2a02:8106:211:e900::/56;
|
2017-01-19 23:27:29 +01:00
|
|
|
};
|
|
|
|
{%- for iface, ips in salt['grains.get']('ip_interfaces').items() %}
|
|
|
|
{%- if iface == 'core' or iface == 'br-core' %}
|
|
|
|
interface "{{ iface }}" {
|
|
|
|
};
|
2018-06-23 00:12:35 +02:00
|
|
|
{%- else %}
|
|
|
|
{%- for ctx, subnets in pillar['subnets-inet6'].items() %}
|
|
|
|
{%- set subnet = subnets.get(iface) %}
|
|
|
|
{%- if subnet %}
|
2017-01-19 23:27:29 +01:00
|
|
|
stubnet {{ subnet }} {};
|
2018-06-23 00:12:35 +02:00
|
|
|
{%- endif %}
|
|
|
|
{%- endfor %}
|
2017-01-19 23:27:29 +01:00
|
|
|
{%- endif %}
|
|
|
|
{%- endfor %}
|
|
|
|
{%- if pillar['ospf'].get('stubnets-inet6') %}
|
|
|
|
{%- for stubnet in pillar['ospf']['stubnets-inet6'] %}
|
|
|
|
stubnet {{ stubnet }} {};
|
|
|
|
{%- endfor %}
|
|
|
|
{%- endif %}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2017-01-20 00:30:22 +01:00
|
|
|
protocol static {
|
2018-05-17 17:54:23 +02:00
|
|
|
# Zentralwerk DN42
|
2019-06-04 20:03:10 +02:00
|
|
|
route fd23:42:c3d2:580::/57 unreachable;
|
2018-06-22 23:33:10 +02:00
|
|
|
# Static Kabeldeutschland
|
2019-06-04 21:00:02 +02:00
|
|
|
route 2a02:8106:208:5200::/56 unreachable;
|
2019-06-04 19:57:26 +02:00
|
|
|
route 2a02:8106:211:e900::/56 unreachable;
|
2017-01-20 00:30:22 +01:00
|
|
|
}
|
|
|
|
|
2019-06-04 21:00:02 +02:00
|
|
|
{%- if pillar.get('bgp') %}
|
2017-01-19 23:27:29 +01:00
|
|
|
protocol bgp {
|
|
|
|
local as {{ pillar['bgp']['asn'] }};
|
|
|
|
import all;
|
|
|
|
{%- for host, neighbor in pillar['bgp']['peers-inet6'].items() %}
|
|
|
|
neighbor {{ host }} as {{ neighbor.asn }};
|
|
|
|
{%- endfor %}
|
2017-01-20 00:30:22 +01:00
|
|
|
export where source=RTS_STATIC;
|
2017-01-19 23:27:29 +01:00
|
|
|
}
|
2017-10-03 16:44:27 +02:00
|
|
|
{%- endif %}
|