2022-09-03 03:44:31 +02:00
|
|
|
{{ 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 {
|
2022-09-03 03:44:31 +02:00
|
|
|
ipv4 {
|
|
|
|
import all;
|
2022-09-04 07:40:51 +02:00
|
|
|
export where source != RTS_DEVICE;
|
2022-09-03 03:44:31 +02:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-09-04 07:40:51 +02:00
|
|
|
protocol kernel kernel6 {
|
2022-09-03 03:44:31 +02:00
|
|
|
ipv6 {
|
|
|
|
import all;
|
2022-09-04 07:40:51 +02:00
|
|
|
export where source != RTS_DEVICE;
|
2022-09-03 03:44:31 +02:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-09-04 07:40:51 +02:00
|
|
|
protocol ospf v2 ospf4 {
|
2022-09-03 03:44:31 +02:00
|
|
|
|
|
|
|
ipv4 {
|
|
|
|
import all;
|
2022-09-04 07:40:51 +02:00
|
|
|
export where source ~ [ RTS_STATIC, RTS_DEVICE ];
|
2022-09-03 03:44:31 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
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 {
|
2022-09-03 03:44:31 +02:00
|
|
|
|
|
|
|
ipv6 {
|
|
|
|
import all;
|
2022-09-04 07:40:51 +02:00
|
|
|
export where source ~ [ RTS_STATIC, RTS_DEVICE ];
|
2022-09-03 03:44:31 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
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 %}
|