feat(nft): add source IP filtering for DNAT rules and expose table existence checks

This commit is contained in:
2026-03-30 14:19:44 +00:00
parent e4bb314b5f
commit 46a492443e
5 changed files with 28 additions and 2 deletions

View File

@@ -26,8 +26,9 @@ export function buildDnatRules(
for (const proto of protocols) {
// DNAT rule
const saddrFilter = rule.sourceIP ? `ip saddr ${rule.sourceIP} ` : '';
commands.push(
`nft add rule ${family} ${tableName} prerouting ${proto} dport ${rule.sourcePort} dnat to ${rule.targetHost}:${rule.targetPort}`
`nft add rule ${family} ${tableName} prerouting ${saddrFilter}${proto} dport ${rule.sourcePort} dnat to ${rule.targetHost}:${rule.targetPort}`
);
// Masquerade (SNAT) unless preserveSourceIP is set