I have faced a nasty problem: I have several public IP addresses and several internal subnets; each subnet uses a separate IP to access the Internet. I use “src-nat”, but this effectively kills all UDP(53) traffic through NAT. If I set NAT to “masquerade” (which picks the first IP from the pool) – everything is fine.
What might be the issue here? Any solutions available or is it a RouterOS bug?
It won’t contain system user accounts at all, and will filter stuff like wireless or ppp passwords. And you can always censor other stuff like IP addresses manually if you want to. But try not to go overboard there. If you do, it will be hard to help you, we need to see what’s public address, tell one from other, etc..
If I set NAT action to “masquerade” it picks the wrong address, but passes DNS packets through. Cannot understand what’s wrong here. Unless there is some undocumented difference between “masquerade” and “src-nat” except predefined address setting.
The “out” addresses are different subnets from the default gateway. Weird, but this is our provider configuration.
Look for outgoing DNS connections at IP > Firewall > Connections tab when using masquerade and when using src-nat, (click on the funnel icon to filter outgoing DNS and paste screenshots)
Suggestion: ask your provider about the possibility to set a private IP /30 for transit so that you can “float” the public IPs on loopbacks and avoid the need of binding them to external interfaces.