From 36f713dff28d357458b787e2f1e00a71da7bd51f Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 13 Jun 2024 20:05:39 +0200 Subject: tnet --- tnet/templates/bird-tnet.conf.j2 | 47 ++++++++++++++++++++++++++++++++++++++++ tnet/templates/bird.conf.j2 | 39 --------------------------------- 2 files changed, 47 insertions(+), 39 deletions(-) create mode 100644 tnet/templates/bird-tnet.conf.j2 delete mode 100644 tnet/templates/bird.conf.j2 (limited to 'tnet/templates') diff --git a/tnet/templates/bird-tnet.conf.j2 b/tnet/templates/bird-tnet.conf.j2 new file mode 100644 index 0000000..6e1ba0e --- /dev/null +++ b/tnet/templates/bird-tnet.conf.j2 @@ -0,0 +1,47 @@ +define tnet = fdb1:4242:3538::/48; +define tnet_router = fdb1:4242:3538:ffff::/64; + +function is_tnet() -> bool +{ + return net ~ tnet && ! (net ~ tnet_router); +} + +template bgp tnet_tpl { + local as 4242423538; + neighbor internal; + + direct; + + password "trygvis"; + + ipv6 { + next hop self; + import filter { + if is_tnet() then { + print proto, ": import accept, net=", net, ", from=", from, ", gw=", gw; + accept; + } + print proto, ": import reject, reason=not tnet"; reject; + }; + # newer bird's only + # import keep filtered; + export filter { + if is_tnet() then { + print proto, ": export accept, net=", net, ", from=", from, ", gw=", gw; + accept; + } + print proto, ": export reject, reason=not tnet"; reject; + }; + }; +} +{% for p in tnet_bird_peers|default([])|sort %} + +protocol bgp tnet_{{ p }} from tnet_tpl { + neighbor {{ hostvars[p].tnet_wg[inventory_hostname].address }}; + interface "tnet-{{ p }}"; +{% if tnet_bird_peers[p].rr_client|default(False) %} + + rr client; +{% endif %} +} +{% endfor %} diff --git a/tnet/templates/bird.conf.j2 b/tnet/templates/bird.conf.j2 deleted file mode 100644 index 57e557a..0000000 --- a/tnet/templates/bird.conf.j2 +++ /dev/null @@ -1,39 +0,0 @@ -template bgp tnet_tpl { - local as 4242423538; - neighbor internal; - - direct; - - password "trygvis"; - - ipv6 { - next hop self; - import filter { - if is_tnet() then { - print proto, ": import accept, net=", net, ", from=", from, ", gw=", gw; - accept; - } - print proto, ": import reject, reason=not tnet"; reject; - }; - # newer bird's only - # import keep filtered; - export filter { - if is_tnet() then { - print proto, ": export accept, net=", net, ", from=", from, ", gw=", gw; - accept; - } - print proto, ": export reject, reason=not tnet"; reject; - }; - }; -} -{% for p in tnet_bird_peers|default([])|sort %} - -protocol bgp tnet_{{ p }} from tnet_tpl { - neighbor {{ hostvars[p].tnet_wg[inventory_hostname].address }}; - interface "tnet-{{ p }}"; -{% if tnet_bird_peers[p].rr_client|default(False) %} - - rr client; -{% endif %} -} -{% endfor %} -- cgit v1.2.3