[feature request] support DNAT on the NAT output chain
Nobody has claimed this yet.
- Dominant language
- ucode
- Stars
- 27
- Forks
- 37
- PR merge metrics
- No merged PRs in 30d
Description
I want to redirect all traffic from LAN to WAN IP1 (or an ipset) to WAN IP2. For now, this can be accomplished by the DNAT rule:
config redirect
option target 'DNAT'
option name 'IP1-IP2'
option family 'ipv4'
option src 'lan'
option ipset 'IPSET1'
option dest_ip 'IP2'
list proto 'all'
which will generate the following nftables rule:
chain dstnat_lan {
ip daddr @IPSET1 counter packets 0 bytes 0 dnat ip to IP2 comment "!fw4: IP1-IP2"
}
However, the dstnat_lan chain is part of the nat postrouting chain so it will apply to devices behind the router, not the router itself.
To enable the redirection for the router, I have to resort to a custom nftables rule:
chain user_pre_output_nat {
type nat hook output priority -1; policy accept;
ip daddr @IPSET1 counter dnat ip to IP2
}
Please make fw4 capable of generating DNAT rules on the nat output chain that suppresses my custom rule.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how fw4 generates the dstnat_lan chain and how the user_pre_output_nat chain is attached. Confirm the desired behavior with LAN-to-WAN traffic targeting IP1 or IPSET1, then verify that generated nftables output-chain rules redirect router-originated traffic to IP2 without requiring a custom rule.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100