1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #
- # IP{{ proto }} Bird configuration (Salt managed)
- #
- {%- set node_config = salt['pillar.get']('nodes:' ~ grains['id'], {}) %}
- define AS_OWN = 65132;
- define LO_IP = {{ salt['ffho_net.get_primary_ip'](node_config, proto).ip }};
- router id {{ salt['ffho_net.get_router_id'](node_config, grains['id']) }};
- # this pseudo-protocol watches all interface up/down events
- protocol device {
- scan time 10;
- };
- # This pseudo-protocol performs synchronization between BIRD's routing
- # tables and the kernel. If your kernel supports multiple routing tables
- # (as Linux 2.2.x does), you can run multiple instances of the kernel
- # protocol and synchronize different kernel tables with different BIRD tables.
- protocol kernel {
- scan time 20; # Scan kernel routing table every 20 seconds
- import none;
- export filter {
- # Do NOT export local unreachable routes for TE purposes
- if proto = "ffho_te" then
- reject;
- # Export routes with source address set to loopback IP
- krt_prefsrc = LO_IP;
- accept;
- };
- }
- #
- # Load local config knobs and additiional configuration (IGP, FFRL, 'n stuff)
- include "/etc/bird/local.conf";
- {%- if proto == "v4" %}
- include "/etc/bird/ff-policy.conf";
- include "/etc/bird/bird.d/*.conf";
- {%- else %}
- include "/etc/bird/ff-policy6.conf";
- include "/etc/bird/bird6.d/*.conf";
- {%- endif %}
|