Hairpin NAT woes

Change the rule to:

add action=masquerade chain=srcnat comment="hairpin nat" \
   dst-address=192.168.88.0/24 src-address=192.168.88.0/24

Note: You don’t need dst-address=!192.168.88.1 or dst-address-type=!local. If you look at the flowchart from here:

The ultimate Mikrotik iptables flowchart - RouterOS / Useful user articles - MikroTik community forum

If the destination address is 192.168.88.1 (the router’s address) then SRCNAT is skipped (step #24).