But its not working. I suppose the reason is that when 20.200 is trying to reply to “initiaiton” port its being dropped. What is the best practise to keep this working?
And it’s placed very high in the forward chain. This rule takes care of all packets which belong to already established connections (including return packets) so subsequent rules only deal with packets which are establishing new connections.
You need it for chain=forward … and connection-state at least “established,related” … untracked most often doesn’t hurt (but doesn’t help in your particular case either). But most definitely not “new”, you’re trying to block new connections by using your rules. And push this new rule high on the list of rules for chain=forward, definitely above the rules which will selectively block traffic between both subnets.