Also, I would be happy having to 192.168.1.55 address in the DMZ, rather than the middle 3 rules, if that is an easy task as well!
What do you mean by that? There are two definitions of DMZ. One is with proper firewalls, where a DMZ is a completely separate network next to WAN and LAN. The LAN can access WAN and DMZ, the DMZ can access the WAN but not the LAN, and the WAN can access select policed services in the DMZ. The second is with consumer grade SoHo routers, where it just refers to unconditional port forwarding. The former is far more secure than the latter: the idea is that if a DMZ host - which has resources exposed to the Internet - gets exploited it can’t be used to then attack LAN targets because it itself doesn’t even have access to the LAN.
In your situation you obviously only have one network, so the former would require adding another network (which is easily possible with RouterOS). I’m not sure if you mean the latter and are asking how to unconditionally forward all IP traffic not already port forwarded to other hosts to 192.168.1.55.
port 5900 (VNC) to be forwarded to my internal address of 192.168.1.115
Ports 2074-2093 (IRLP-1) to be forwarded to my internal address of 192.168.1.55
Ports 15425-15427 (IRLP-2) to be forwarded to my internal address of 192.168.1.55
Port 22 (SSH) to be forwarded to my internal address of 192.168.1.55
Port 3389 (RDP) to be forwarded to my internal address of 192.168.1.51
My suggestion for a NAT and filter rule set to accomplish that - not accounting for your DMZ question - would be:
/ip firewall filter
add chain=input connection-state=established action=accept
add chain=input connection-state=related action=accept
add chain=input connection-state=invalid action=drop
add chain=input in-interface=!ether1 action=accept
add chain=input action=drop
add chain=forward connection-state=established action=accept
add chain=forward connection-state=related action=accept
add chain=forward connection-state=invalid action=drop
add chain=forward in-interface=!ether1 action=accept
add chain=forward dst-address=192.168.1.115 protocol=tcp dst-port=5900 action=accept
add chain=forward dst-address=192.168.1.55 protocol=tcp dst-port=2074-2093 action=accept
add chain=forward dst-address=192.168.1.55 protocol=tcp dst-port=15425-15427 action=accept
add chain=forward dst-address=192.168.1.55 protocol=tcp dst-port=22 action=accept
add chain=forward dst-address=192.168.1.51 protocol=tcp dst-port=3389 action=accept
add chain=forward action=drop
/ip firewall nat
add chain=dstnat protocol=tcp dst-port=5900 in-interface=ether1 action=dst-nat to-addresses=192.168.1.115
add chain=dstnat protocol=tcp dst-port=2074-2093 in-interface=ether1 action=dst-nat to-addresses=192.168.1.55
add chain=dstnat protocol=tcp dst-port=15425-15427 in-interface=ether1 action=dst-nat to-addresses=192.168.1.55
add chain=dstnat protocol=tcp dst-port=22 in-interface=ether1 action=dst-nat to-addresses=192.168.1.55
add chain=dstnat protocol=tcp dst-port=3389 in-interface=ether1 action=dst-nat to-addresses=192.168.1.51
add chain=srcnat out-interface=ether1 action=masquerade
That replaces everything you already have. That said, I’m not familiar with IRLP, and you didn’t indicate a layer 3 protocol. If that is also TCP you can simplify that somewhat to this:
/ip firewall filter
add chain=input connection-state=established action=accept
add chain=input connection-state=related action=accept
add chain=input connection-state=invalid action=drop
add chain=input in-interface=!ether1 action=accept
add chain=input action=drop
add chain=forward connection-state=established action=accept
add chain=forward connection-state=related action=accept
add chain=forward connection-state=invalid action=drop
add chain=forward in-interface=!ether1 action=accept
add chain=forward dst-address=192.168.1.115 protocol=tcp dst-port=5900 action=accept
add chain=forward dst-address=192.168.1.55 protocol=tcp dst-port=22,2074-2093,15425-15427 action=accept
add chain=forward dst-address=192.168.1.51 protocol=tcp dst-port=3389 action=accept
add chain=forward action=drop
/ip firewall nat
add chain=dstnat protocol=tcp dst-port=5900 in-interface=ether1 action=dst-nat to-addresses=192.168.1.115
add chain=dstnat protocol=tcp dst-port=22,2074-2093,15425-15427 in-interface=ether1 action=dst-nat to-addresses=192.168.1.55
add chain=dstnat protocol=tcp dst-port=3389 in-interface=ether1 action=dst-nat to-addresses=192.168.1.51
add chain=srcnat out-interface=ether1 action=masquerade
Or, if you’re going for the second DMZ option emulating a D-Link/Linksys/Netgear/whatever SoHo router DMZ:
/ip firewall filter
add chain=input connection-state=established action=accept
add chain=input connection-state=related action=accept
add chain=input connection-state=invalid action=drop
add chain=input in-interface=!ether1 action=accept
add chain=input action=drop
add chain=forward connection-state=established action=accept
add chain=forward connection-state=related action=accept
add chain=forward connection-state=invalid action=drop
add chain=forward in-interface=!ether1 action=accept
add chain=forward dst-address=192.168.1.115 protocol=tcp dst-port=5900 action=accept
add chain=forward dst-address=192.168.1.51 protocol=tcp dst-port=3389 action=accept
add chain=forward dst-address=192.168.1.51 action=accept
add chain=forward action=drop
/ip firewall nat
add chain=dstnat protocol=tcp dst-port=5900 in-interface=ether1 action=dst-nat to-addresses=192.168.1.115
add chain=dstnat protocol=tcp dst-port=3389 in-interface=ether1 action=dst-nat to-addresses=192.168.1.51
add chain=dstnat in-interface=ether1 action=dst-nat to-addresses=192.168.1.55
add chain=srcnat out-interface=ether1 action=masquerade