vyos-conf-builder/compiler/nat.py
Benjamin Tayehanpour c04a9a752a works enough for now
2026-06-16 22:47:04 +02:00

29 lines
578 B
Python

import hashlib
def rule_id(service_name: str, kind: str) -> int:
h = hashlib.sha1(f"{service_name}:{kind}".encode()).hexdigest()
return(int(h[:4], 16)) # here's hoping
def build_nat_rules(services, cfg):
rules = []
for s in services:
rid_wan = rule_id(s.name, "dnat_wan")
rid_hairpin = rule_id(s.name, "dnat_hairpin")
rules.append({
"id": rid_wan,
"service": s,
"cfg": cfg,
"kind": "dnat_wan",
})
if "nat" in s.exposure:
rules.append({
"id": rid_hairpin,
"service": s,
"cfg": cfg,
"kind": "dnat_hairpin",
})
return(rules)