opnsense-plugins/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf

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 %}