From 94f9dc383f6acd7fcaeb7c499855d2efdc8688e5 Mon Sep 17 00:00:00 2001 From: lare Date: Sat, 21 Jan 2023 11:29:30 +0100 Subject: [PATCH] [hotfix][nodes] only use ASn in interface name - it is only 15 chars by default (change requires kernel recompile) - thanks to @famfo for have a long mntner name --- nodes/main.py | 24 ++++++++++++------------ nodes/start.sh | 0 nodes/templates/bgp-peer.template.conf | 2 +- nodes/wg-services.sh | 0 web/start.sh | 0 5 files changed, 13 insertions(+), 13 deletions(-) mode change 100644 => 100755 nodes/start.sh mode change 100644 => 100755 nodes/wg-services.sh mode change 100644 => 100755 web/start.sh diff --git a/nodes/main.py b/nodes/main.py index 17baa7b..56d7e86 100644 --- a/nodes/main.py +++ b/nodes/main.py @@ -137,17 +137,17 @@ class PeeringManager: if mode == "add": wg_conf = self.__generate_wg_conf(peering) bgp_conf = self.__generate_bird_conf(peering) - with open(f"{self.__config['wg-configs']}/dn42_{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}.conf", "w") as wg_file: + with open(f"{self.__config['wg-configs']}/dn42_{peering['ASN'][-6:] if len(peering['ASN']) >=6 else peering['ASN']}.conf", "w") as wg_file: wg_file.write(wg_conf) - wg_enable = subprocess.run(self.__config["wg-commands"]["enable"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + wg_enable = subprocess.run(self.__config["wg-commands"]["enable"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(wg_enable) - wg_up = subprocess.run(self.__config["wg-commands"]["up"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + wg_up = subprocess.run(self.__config["wg-commands"]["up"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(wg_up) time.sleep(5) with open(f"{self.__config['bird-peers']}/dn42_{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}.conf", "w") as bgp_file: bgp_file.write(bgp_conf) - bgp_reload = subprocess.run(self.__config["bird-reload"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + bgp_reload = subprocess.run(self.__config["bird-reload"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(bgp_reload) return 200 @@ -157,25 +157,25 @@ class PeeringManager: with open(f"{self.__config['wg-configs']}/dn42_{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}.conf", "w") as wg_file: wg_file.write(wg_conf) - wg_down = subprocess.run(self.__config["wg-commands"]["down"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + wg_down = subprocess.run(self.__config["wg-commands"]["down"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(wg_down) - wg_up = subprocess.run(self.__config["wg-commands"]["up"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + wg_up = subprocess.run(self.__config["wg-commands"]["up"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(wg_up) time.sleep(5) with open(f"{self.__config['bird-peers']}/dn42_{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}.conf", "w") as bgp_file: bgp_file.write(bgp_conf) - bgp_reload = subprocess.run(self.__config["bird-reload"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + bgp_reload = subprocess.run(self.__config["bird-reload"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(bgp_reload) return 200 elif mode == "delete": os.remove(f"{self.__config['bird-peers']}/dn42_{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}.conf") - bgp_reload = subprocess.run(self.__config["bird-reload"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + bgp_reload = subprocess.run(self.__config["bird-reload"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(bgp_reload) time.sleep(5) - wg_down = subprocess.run(self.__config["wg-commands"]["down"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + wg_down = subprocess.run(self.__config["wg-commands"]["down"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(wg_down) - wg_disable = subprocess.run(self.__config["wg-commands"]["disable"].replace("{PEERING}",f"{peering['MNT'][:-4].lower()}_{peering['ASN'][-4:]}").split(" ")) + wg_disable = subprocess.run(self.__config["wg-commands"]["disable"].replace("{PEERING}",peering['ASN'][-6:] if len(peering["ASN"]) >=6 else peering["ASN"]).split(" ")) print(wg_disable) return 200 @@ -301,9 +301,9 @@ class PeeringsRoute(Resource): requested_peerings = peerings.get_peerings_by_asn(args["ASN"]) if requested_peerings: - return {"success": True, "asn": args["ASN"], "peerings": requested_peerings}, 200 + return {"success": True, "ASN": args["ASN"], "peerings": requested_peerings}, 200 else: - return {"success": False, "asn": args["ASN"], "error": "not found", "peerings": []}, 404 + return {"success": False, "ASN": args["ASN"], "error": "not found", "peerings": []}, 404 @check_ACL() def post(self): diff --git a/nodes/start.sh b/nodes/start.sh old mode 100644 new mode 100755 diff --git a/nodes/templates/bgp-peer.template.conf b/nodes/templates/bgp-peer.template.conf index 0a943e4..eb0c77a 100644 --- a/nodes/templates/bgp-peer.template.conf +++ b/nodes/templates/bgp-peer.template.conf @@ -1,7 +1,7 @@ {% if peering["bgp_mp"] %} protocol bgp dn42_{{peering["MNT"][:-4].lower()}}_{{peering["ASN"][-4:]}} from dnpeers { neighbor {{peering["ipv6ll"]}} as {{peering["ASN"]}}; - interface "dn42_{{peering['MNT'][:-4].lower()}}_{{peering['ASN'][-4:]}}"; + interface {% if peering['ASN'].__len__() >=6 %}"dn42_{{peering['ASN'][-6:]}}"{% else %}"dn42_{{peering['asn']}}"{% endif %}; passive off; ipv4 { diff --git a/nodes/wg-services.sh b/nodes/wg-services.sh old mode 100644 new mode 100755 diff --git a/web/start.sh b/web/start.sh old mode 100644 new mode 100755