From f82403aec14c4ab2c764db32f3484f66d09ba4e5 Mon Sep 17 00:00:00 2001 From: Marek Isalski Date: Sat, 24 Apr 2021 15:03:15 +0100 Subject: [PATCH] create exec environment if binding to loopback address --- bcp38.ipset.j2 | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/bcp38.ipset.j2 b/bcp38.ipset.j2 index df7dc0e..dab217a 100644 --- a/bcp38.ipset.j2 +++ b/bcp38.ipset.j2 @@ -1,5 +1,16 @@ +{% set env_exec = {} %} +{% if pillar.get('loopback',{}).get('IPv4',None) %} +{% do env_exec.update({'BIND_ADDR':pillar['loopback']['IPv4']}) %} +{% endif %} +{% if pillar.get('loopback',{}).get('IPv6',None) %} +{% do env_exec.update({'BIND_ADDR6':pillar['loopback']['IPv6']}) %} +{% endif %} +{% if env_exec %} +{% do env_exec.update({'LD_PRELOAD':'/tmp/bind.so'}) %} +{% endif %} + create tmp-bcp38-cone-oface-v4 hash:net,iface family inet hashsize 1024 maxelem 65536 -{% for iface, iface_data in salt["pillar.get"]("interfaces").items() %}{% if iface_data.get("bcp38",None) %}{% set jsonblob = salt["cmd.run"]("/tmp/bgpq3 -A -4 -j " + iface_data["bcp38"]["source"]["bgpq3"]["IPv4"], env={"BIND_ADDR":pillar["loopback"]["IPv4"], "BIND_ADDR6":pillar["loopback"]["IPv6"], "LD_PRELOAD":"/tmp/bind.so"})|load_json %}{% for prefix in jsonblob.NN|groupby("prefix") %} +{% for iface, iface_data in salt["pillar.get"]("interfaces").items() %}{% if iface_data.get("bcp38",None) %}{% set jsonblob = salt["cmd.run"]("/tmp/bgpq3 -A -4 -j " + iface_data["bcp38"]["source"]["bgpq3"]["IPv4"], env=env_exec)|load_json %}{% for prefix in jsonblob.NN|groupby("prefix") %} add tmp-bcp38-cone-oface-v4 {{ prefix.grouper }},{{ iface }} {% endfor %}{% endif %}{% endfor %} swap tmp-bcp38-cone-oface-v4 bcp38-cone-oface-v4 @@ -13,7 +24,7 @@ swap tmp-bcp38-else-oface-v4 bcp38-else-oface-v4 destroy tmp-bcp38-else-oface-v4 create tmp-bcp38-cone-oface-v6 hash:net,iface family inet6 hashsize 1024 maxelem 65536 -{% for iface, iface_data in salt["pillar.get"]("interfaces").items() %}{% if iface_data.get("bcp38",None) %}{% set jsonblob = salt["cmd.run"]("/tmp/bgpq3 -A -6 -j " + iface_data["bcp38"]["source"]["bgpq3"]["IPv6"], env={"BIND_ADDR":pillar["loopback"]["IPv4"], "BIND_ADDR6":pillar["loopback"]["IPv6"], "LD_PRELOAD":"/tmp/bind.so"})|load_json %}{% for prefix in jsonblob.NN|groupby("prefix") %} +{% for iface, iface_data in salt["pillar.get"]("interfaces").items() %}{% if iface_data.get("bcp38",None) %}{% set jsonblob = salt["cmd.run"]("/tmp/bgpq3 -A -6 -j " + iface_data["bcp38"]["source"]["bgpq3"]["IPv6"], env=env_exec)|load_json %}{% for prefix in jsonblob.NN|groupby("prefix") %} add tmp-bcp38-cone-oface-v6 {{ prefix.grouper }},{{ iface }} {% endfor %}{% endif %}{% endfor %} swap tmp-bcp38-cone-oface-v6 bcp38-cone-oface-v6