You have to do some gymnastics with proxy-arp and properly set up a network and pool for each interface.
I assumed a configuration where there may exist other interfaces that would occupy the remainder of the 192.168.101.X range, and that .254 is the default GW (i.e. the Mikrotik’s IP in that range)
I achieved your desired behavior using a CHR (virtual ROS) in GNS3 with physical interface ether1 and ether2 behaving in your desired manner. I made a bridge “lan” which acts as normal dhcp where clients get whatever IP is available from a pool, and with a normal long-lived lease. I connected ether3 to this bridge as the example, but obviously you could put more ports on the bridge, or if you didn’t want a bridge you could just move the configurations of LAN onto ether3 instead and use an external switch - whatever…
Here’s the configuration to make it happen:
/interface bridge
add arp=proxy-arp name=lan
/interface ethernet
set [ find default-name=ether1 ] arp=proxy-arp
set [ find default-name=ether2 ] arp=proxy-arp
/interface bridge port
add bridge=lan interface=ether3
/ip pool
add name=ether1 ranges=192.168.101.1
add name=ether2 ranges=192.168.101.2
add name=lan ranges=192.168.101.100-192.168.101.253
/ip dhcp-server
add address-pool=ether1 authoritative=yes disabled=no interface=ether1 name=server1
add address-pool=ether2 authoritative=yes disabled=no interface=ether2 name=server2
add address-pool=lan authoritative=yes disabled=no interface=lan name=dhcp-lan
/ip address
add address=192.168.101.254/32 network=192.168.101.1 interface=ether1
add address=192.168.101.254/32 network=192.168.101.2 interface=ether2
add address=192.168.101.254/24 network=192.168.101.0 interface=lan
/ip dhcp-server network
add address=192.168.101.0/24 gateway=192.168.101.254
add address=192.168.101.1/32 gateway=192.168.101.254 netmask=24
add address=192.168.101.2/32 gateway=192.168.101.254 netmask=24
NOTE the IP addresses aren’t done in the usual way for ether1 and ether2 - the router has the SAME IP for ether1, ether2, and LAN - except the mask for ether1 and ether2 is /32. It’s the “Network” field that sets what the remote address is for each interface - in the case of LAN, it’s just the normal, actual network address of 192.168.101.0 (where the ACTUAL /24 is connected)
I recommend a very short lease duration for the per-interface dhcp servers, because if you disconnect one device and connect another, the pool remains unavailable until the lease expires for the previous device. (i.e. the lease doesn’t clear up just because the interface goes down when you unplug something from it)
The way this solution works is that it creates an isolated /32 network for each physical interface, and uses proxy arp to glue them together as a single /24. The netmask=24 is necessary for these special networks so that clients are told they’re on a /24 network and thus they’ll send ARP requests to communicate with other hosts in 192.168.101.X - and proxy-arp will pick this up and cause the hosts to forward everything to the router.
It’s a hack - it’s ugly, but it works. I don’t recommend this for a production environment. If you’re trying to track customers or something, you should use RADIUS or some other form of logging who is assigned which IP addresses.