NAT works differently with 2 LANs

I have few NAT rules and observed it on both game server and web server.
When someone visits the website or joins the server - logged IP is LAN gateway’s IP and not client public IP (in server logs).
If I enable logging of NAT rule then it logs proper public IP of client in router log.
It seems like some issue with RouterOS or hardware/software limitation.

I have 2 routers, one from ISP and second is mikrotik’s.
Direct connection to ISP’s router keeps public IP of client unlike through mikrotik.
The issue is probably not PC as it works as expected when connected directly to ISP router.
RouterOS version 6.48.6 or 7.9 does not make change to logged IP.

Connecting through public IP assigned by ISP.

Configuration (simple, 3 bridges, one wan active):
https://pastebin.com/C9fa4W6e

  1. instead of posting the configuration on an external site with its own cookies and advertising, you can put it into the body of your post between [code] and [/code] tags.
  2. your action=masquerade rule doesn’t match on out-interface-list=WAN (or out-interface=bridge-wan), so it src-nats also incoming connections initiated from the internet, setting their reply-dst-address to the LAN address of the Mikrotik. Just restrict that rule the suggested way and you’ll be fine.

This…
/ip firewall nat
add action=masquerade chain=srcnat

It masquerades all traffic, as sindy says ensure you add the qualifier from… in-interface=WAN interface or in-interface-list=WAN