There are two ways to achieve what you want:
- to use a rule in /ip firewall mangle to assign a routing-mark (which is in fact a name of a routing table)
- to use rules in /ip route rule for the same purpose.
Using a mangle rule, you can assign the routing mark based on
in-interface or
src-address or
src-address-list and even some other properties of the packets; ip route rules match only on source and destination addresses or subnets but don't interfere with fasttracking which may be a significant advantage if the Mikrotik's CPU is weak.
The common part is
/ip route add dst-address=0.0.0.0/0 gateway=pptp-out1 routing-mark=via-pptp-client
The individual part is
/ip route rule
add action=lookup-only-in-table table=via-pptp-client src-address=the.ip.assigned.to.the.pc
or
/ip firewall mangle
add action=mark-routing new-routing-mark=via-pptp-client chain=prerouting src-address=the.ip.assigned.to.the.pc
/ip route add dst-address=0.0.0.0/0 type=blackhole routing-mark=via-pptp-client distance=2
The additional route is necessary to prevent packets from the PC to use the default routing table (called
main) if
pptp-out1 is down. With
/ip route rule, it is not necessary because
action=lookup-only-in-table prevents packets from being routed using the table
main (i.e. the one consisting of routes without any
routing-mark).
If you need the address of the laptop assigned by the VPN to be accessible as a server to other hosts in the UAE's network as clients, the solution will be a bit more complex.
And one remark regarding terminology, a "local address" is one of device's own ones. The address of your laptop assigned by Mikrotik acting as PPTP server is "an address from a connected subnet" from the perspective of the Mikrotik, not a "local" one. It seems unimportant till the moment you start using a match
address-type=local in firewall rules and it does something else than what you expected.