117 lines
5.3 KiB
Plaintext
117 lines
5.3 KiB
Plaintext
{% macro cline(directive, modelname) -%}{% if modelname %}
|
|
ip ospf {{ directive }} {{ modelname }}
|
|
{% endif %}{%- endmacro %}
|
|
{% from 'OPNsense/Macros/interface.macro' import physical_interface %}
|
|
{% if helpers.exists('OPNsense.quagga.ospf.enabled') and OPNsense.quagga.ospf.enabled == '1' %}
|
|
!
|
|
! Zebra configuration saved from vty
|
|
! 2017/03/03 20:21:04
|
|
!
|
|
{% if helpers.exists('OPNsense.quagga.general') %}
|
|
{% if helpers.exists('OPNsense.quagga.general.enablelogfile') and OPNsense.quagga.general.enablelogfile == '1' %}
|
|
log file /var/log/frr.log {{ OPNsense.quagga.general.logfilelevel }}
|
|
{% endif %}
|
|
{% if helpers.exists('OPNsense.quagga.general.enablesyslog') and OPNsense.quagga.general.enablesyslog == '1' %}
|
|
log syslog {{ OPNsense.quagga.general.sysloglevel }}
|
|
{% endif %}
|
|
{% endif %}
|
|
!
|
|
!
|
|
!
|
|
{% if helpers.exists('OPNsense.quagga.ospf.interfaces.interface') %}
|
|
{% for interface in helpers.toList('OPNsense.quagga.ospf.interfaces.interface') %}
|
|
{% if interface.enabled == '1' %}
|
|
interface {{ physical_interface(interface.interfacename) }}
|
|
{% if interface.networktype %}
|
|
{{ cline("network",interface.networktype)
|
|
}}{% endif %}
|
|
{{ cline("authentication",interface.authtype)
|
|
}}{% if interface.authtype and interface.authtype == 'message-digest'
|
|
%}{{ cline("message-digest-key " + interface.authkey_id + " md5",interface.authkey)
|
|
}}{% 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 %}
|
|
{% endif %}
|
|
!
|
|
router ospf
|
|
{% if helpers.exists('OPNsense.quagga.ospf.routerid') and OPNsense.quagga.ospf.routerid != '' %}
|
|
ospf router-id {{ OPNsense.quagga.ospf.routerid }}
|
|
{% endif %}
|
|
{% if helpers.exists('OPNsense.quagga.ospf.redistribute') and OPNsense.quagga.ospf.redistribute != '' %}
|
|
{% for line in OPNsense.quagga.ospf.redistribute.split(',') %}
|
|
{% set rmap = helpers.getUUID(OPNsense.quagga.ospf.redistributemap) %}
|
|
redistribute {{ line }} {% if helpers.exists('OPNsense.quagga.ospf.redistributemap') and OPNsense.quagga.ospf.redistributemap != '' %}route-map {{ rmap.name }}
|
|
{% endif %}
|
|
{% endfor %}{% endif %}
|
|
{% if helpers.exists('OPNsense.quagga.ospf.passiveinterfaces') and OPNsense.quagga.ospf.passiveinterfaces != '' %}
|
|
{% for line in OPNsense.quagga.ospf.passiveinterfaces.split(',') %}
|
|
passive-interface {{ physical_interface(line) }}
|
|
{% endfor %}{% endif %}
|
|
{% if helpers.exists('OPNsense.quagga.ospf.networks.network') %}
|
|
{% for network in helpers.toList('OPNsense.quagga.ospf.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.ospf.originate') and OPNsense.quagga.ospf.originate == '1' %}
|
|
default-information originate{% if helpers.exists('OPNsense.quagga.ospf.originatealways') and OPNsense.quagga.ospf.originatealways == '1' %} always {% endif %}{% if helpers.exists('OPNsense.quagga.ospf.originatemetric') and OPNsense.quagga.ospf.originatemetric != '' %} metric {{ OPNsense.quagga.ospf.originatemetric }}{% endif %}
|
|
|
|
{% endif %}
|
|
!
|
|
{% if helpers.exists('OPNsense.quagga.ospf.prefixlists.prefixlist') %}
|
|
{% for prefixlist in helpers.sortDictList(OPNsense.quagga.ospf.prefixlists.prefixlist, 'name', 'seqnumber' ) %}
|
|
{% if prefixlist.enabled == '1' %}
|
|
ip prefix-list {{ prefixlist.name }} seq {{ prefixlist.seqnumber }} {{ prefixlist.action }} {{ prefixlist.network }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
!
|
|
{% if helpers.exists('OPNsense.quagga.ospf.routemaps.routemap') %}
|
|
{% for routemap in helpers.sortDictList(OPNsense.quagga.ospf.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 ip address prefix-list {{ prefixlist_data.name }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if routemap.set|default("") != "" %}
|
|
set {{ routemap.set }}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
!
|
|
line vty
|
|
!
|
|
{% endif %}
|