That has a perfect good reason: DST-NAT is a prerouting feature, which is located on the ingress path of the router (because the redirected packets need to be properly routed to the correct destinations). It is impossible to apply it on an an output, postrouting or forward chain, which have their routing destinations already defined.
A mangle rewrite rule would be needed, but rewriting a destination is not an available option in ROS. And even if that would be possible, no routing would be performed on those IP packets since they are already on their outgoing interface, and there is no turning back.
I see.. so whole magic is, that iptables allow DST-NAT/REDIRECT action in OUTPUT chain which is apparently missing in RouterOS.
I must admit that it sounds useful. Unfortunately, according to RouterOS’ packet-flow diagram, OUTPUT chain happens straight before POSTROUTING, therefore after routing decision, while IpTables’ packet-flow shows that routing decision occurs within OUTPUT chain, after NAT and before FILTER.
So who is gonna start the +1 spam which will lead nowhere?
RouterOS is (or at least started as) Linux with standard netfilter. So my guess is that it’s probably still in there, just not exposed to us. Because usually it’s not needed, so to leave it out didn’t seem as a big deal.
The “routing adjustment” is there, which is used for policy routing, where you can route output packets somewhere else than they were supposed to go. So only the NAT part missing.
I checked it (hey, I practically memorized the whole thing) but dismissed it because it says “This is a workaround that allows to set-up policy routing in mangle chain output”.
If it is just a workaround, I guess it won’t do proper routing decision. I mean - why would they run the same code twice, right? That would be waste of CPU cycles.
Maybe they will fix this in ROS 7? that would be pretty sweet