ansible/roles/bird/templates/bird.conf.j2

107 lines
2.4 KiB
Text
Raw Normal View History

{{ ansible_managed | comment }}
log syslog all;
router id {{ bird__router_id }};
protocol device {
scan time 10;
}
2022-09-04 07:40:51 +02:00
protocol direct {
ipv4;
ipv6;
}
protocol kernel kernel4 {
ipv4 {
import all;
2022-09-04 07:40:51 +02:00
export where source != RTS_DEVICE;
};
}
2022-09-04 07:40:51 +02:00
protocol kernel kernel6 {
ipv6 {
import all;
2022-09-04 07:40:51 +02:00
export where source != RTS_DEVICE;
};
}
2022-09-04 07:40:51 +02:00
protocol ospf v2 ospf4 {
ipv4 {
import all;
2022-09-04 07:40:51 +02:00
export where source ~ [ RTS_STATIC, RTS_DEVICE ];
};
area 0 {
{% for name, iface in bird__ospf_broadcast_interfaces.items() %}
interface {{ name | enquote }} {
type broadcast;
hello {{ iface.hello | default(bird__ospf_hello) | int }};
retransmit {{ iface.retransmit
| default(bird__ospf_retransmit)
| int }};
wait {{ iface.wait | default(bird__ospf_wait) | int }};
dead {{ iface.dead | default(bird__ospf_dead) | int }};
};
{% endfor %}
{% for name in bird__ospf_stub_interfaces %}
interface {{ name | enquote }} {
stub;
};
{% endfor %}
};
}
2022-09-04 07:40:51 +02:00
protocol ospf v3 ospf6 {
ipv6 {
import all;
2022-09-04 07:40:51 +02:00
export where source ~ [ RTS_STATIC, RTS_DEVICE ];
};
area 0 {
{% for name, iface in bird__ospf_broadcast_interfaces.items() %}
interface {{ name | enquote }} {
type broadcast;
hello {{ iface.hello | default(bird__ospf_hello) | int }};
retransmit {{ iface.retransmit
| default(bird__ospf_retransmit)
| int }};
wait {{ iface.wait | default(bird__ospf_wait) | int }};
dead {{ iface.dead | default(bird__ospf_dead) | int }};
};
{% endfor %}
{% for name in bird__ospf_stub_interfaces %}
interface {{ name | enquote }} {
stub;
};
{% endfor %}
};
}
{% if bird__radv_interfaces %}
protocol radv {
{% for name, iface in bird__radv_interfaces.items() %}
interface {{ name | enquote }} {
max ra interval {{ bird__radv_max_interval | int }};
{% for prefix in iface.prefix | default([]) %}
prefix {{ prefix | ipaddr }};
{% endfor %}
{% for domain in iface.domain_search | default([]) %}
dnssl {{ domain | enquote }};
{% endfor %}
};
{% endfor %}
{% for address in bird__radv_dns_servers %}
rdnss {{ address | ipaddr }};
{% endfor %}
}
{% endif %}