-
Notifications
You must be signed in to change notification settings - Fork 647
/
ospf6d.conf
121 lines (120 loc) · 4.92 KB
/
ospf6d.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{% macro cline(directive, modelname) -%}{% if modelname %}
ipv6 ospf6 {{ directive }} {{ modelname }}
{% endif %}{%- endmacro %}
{% from 'OPNsense/Macros/interface.macro' import physical_interface %}
{% if not helpers.empty('OPNsense.quagga.ospf6.enabled') %}
!
! Zebra configuration saved from vty
! 2017/03/03 20:21:04
!
{% if helpers.exists('OPNsense.quagga.general') %}
{% if not helpers.empty('OPNsense.quagga.general.enablesyslog') %}
log syslog {{ OPNsense.quagga.general.sysloglevel }}
{% endif %}
{% if helpers.exists('OPNsense.quagga.general.profile') %}
frr defaults {{ OPNsense.quagga.general.profile }}
{% endif %}
{% if OPNsense.quagga.general.enablesnmp == '1' %}
agentx
{% endif %}
{% endif %}
!
!
!
{% for interface in helpers.toList('OPNsense.quagga.ospf6.interfaces.interface') %}
{% if interface.enabled == '1' %}
interface {{ physical_interface(interface.interfacename) }}
{% if interface.bfd|default('') == '1' %}
ipv6 ospf6 bfd
{% endif %}
{% if interface.networktype %}
ipv6 ospf6 network {{ interface.networktype }}
{% endif %}
{% if interface.passive == '1' %}
ipv6 ospf6 passive
{% endif %}
{{ cline("cost",interface.cost)
}}{{ cline("dead-interval",interface.deadinterval)
}}{{ cline("hello-interval",interface.hellointerval)
}}{{ cline("priority",interface.priority)
}}{{ cline("retransmit-interval",interface.retransmitinterval)
}}!
{% endif %}
{% endfor %}
!
router ospf6
{% if not helpers.empty('OPNsense.quagga.ospf6.routerid') %}
ospf6 router-id {{ OPNsense.quagga.ospf6.routerid }}
{% endif %}
{% if not helpers.empty('OPNsense.quagga.ospf6.originate') %}
default-information originate{% if not helpers.empty('OPNsense.quagga.ospf6.originatealways') %} always {% endif %}{% if OPNsense.quagga.ospf6.originatemetric|default('') != '' %} metric {{ OPNsense.quagga.ospf6.originatemetric }}{% endif %}
{% endif %}
{% if not helpers.empty('OPNsense.quagga.ospf6.redistribute')%}
{% for line in OPNsense.quagga.ospf6.redistribute.split(',') %}
{% if not helpers.empty('OPNsense.quagga.ospf6.redistributemap') %}{% set line = line + " route-map " + helpers.getUUID(OPNsense.quagga.ospf6.redistributemap).name %}{% endif %}
redistribute {{ line }}
{% endfor %}{% endif %}
{% if helpers.exists('OPNsense.quagga.ospf6.networks.network') %}
{% for network in helpers.toList('OPNsense.quagga.ospf6.networks.network') %}
{% if network.enabled == '1' %}
network {{ network.ipaddr }}/{{ network.netmask }} area {{ network.area }}
{% endif %}
{% if network.arearange|default("") != "" %}
area {{ network.area }} range {{ network.arearange }}
{% endif %}
{% if network.linkedPrefixlistIn|default("") != "" %}
{% for prefixlist in network.linkedPrefixlistIn.split(",") %}
{% set prefixlist2_data = helpers.getUUID(prefixlist) %}
{% if prefixlist2_data != {} and prefixlist2_data.enabled == '1' %}
area {{ network.area }} filter-list prefix {{ prefixlist2_data.name }} in
{% endif %}
{% endfor %}
{% endif %}
{% if network.linkedPrefixlistOut|default("") != "" %}
{% for prefixlist in network.linkedPrefixlistOut.split(",") %}
{% set prefixlist_data = helpers.getUUID(prefixlist) %}
{% if prefixlist_data != {} and prefixlist_data.enabled == '1' %}
area {{ network.area }} filter-list prefix {{ prefixlist_data.name }} out
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
{% if helpers.exists('OPNsense.quagga.ospf6.interfaces.interface') %}
{% for interface in helpers.toList('OPNsense.quagga.ospf6.interfaces.interface') %}
{% if interface.enabled == '1' %}
interface {{ physical_interface(interface.interfacename) }} area {{ interface.area }}
{% endif %}
{% endfor %}
{% endif %}
!
{% if helpers.exists('OPNsense.quagga.ospf6.prefixlists.prefixlist') %}
{% for prefixlist in helpers.sortDictList(OPNsense.quagga.ospf6.prefixlists.prefixlist, 'name', 'seqnumber' ) %}
{% if prefixlist.enabled == '1' %}
ipv6 prefix-list {{ prefixlist.name }} seq {{ prefixlist.seqnumber }} {{ prefixlist.action }} {{ prefixlist.network }}
{% endif %}
{% endfor %}
{% endif %}
!
{% if helpers.exists('OPNsense.quagga.ospf6.routemaps.routemap') %}
{% for routemap in helpers.sortDictList(OPNsense.quagga.ospf6.routemaps.routemap, 'name', 'id' ) %}
{% if routemap.enabled == '1' %}
route-map {{ routemap.name }} {{ routemap.action }} {{ routemap.id }}
{% if routemap.match2|default("") != "" %}
{% for prefixlist in routemap.match2.split(",") %}
{% set prefixlist_data = helpers.getUUID(prefixlist) %}
{% if 'match2' in routemap and routemap.match2 != '' %}
match ipv6 address prefix-list {{ prefixlist_data.name }}
{% endif %}
{% endfor %}
{% endif %}
{% if routemap.set|default("") != "" %}
set {{ routemap.set }}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
!
line vty
!
{% endif %}