@anav
Ok apologies if I was impatient. I will try to explain again ... First, please disregard all example scenarios above (src-address etc etc), and let us construct a new, simpler example:
Consider IRC, which uses TCP port 6667:
If I create a dst-nat rule on my router (router IP 192.168.10.1) with dst-port=6667, to-port=6667, and to-address=45.76.131.163 (some IRC server on the internet, listening on TCP port 6667), then my IRC client on my PC (192.168.10.50) can reach the internet IRC server by connecting to the router IP on TCP port 6667 (192.168.10.1:6667). With me so far? Great
Similarly, if I create a dst-nat rule with dst-port=5667 and to-port=6667, then my IRC client will reach the IRC server by connecting to 192.168.10.1:5667.
Now let us assume I dst-nat dst-ports=6000-7000 to the destination IP, to-ports=6000-7000. If I connect to 192.168.10.1:6667, it works.
But if I dst-nat dst-ports=5000-6000 to the destination IP, to-ports=6000-7000, and I connect to 192.168.10.1:5667, it doesn't work?
So, If:
I can dst-nat a single dst-port to a single to-ports where to-ports is the same as dst-port, and
I can dst-nat a single dst-port to a single to-ports where to-ports is NOT the same as the dst-port, and
I can dst-nat a dst-port RANGE to a to-ports RANGE where to-ports is the same as the dst-port RANGE, Then:
Why can I not dst-nat a dst-port RANGE to a to-ports RANGE that is different to dst-nat RANGE but contains the same number of ports as the dst-port RANGE?
As a footnote, I do find it quite remarkable that this hasn't been discovered (or at least reported) yet. Even if this functionality is rarely needed, I would still imagine that surely someone would have needed it by now. Irrespective of whether such a forwarding configuration seems likely or not, I do think it is reasonable to suggest that it should still be supported, since the only other alternative seems to require that you create a distinct rule for each and every desired port pair otherwise. Why else would the field be called "To ports" and not "To port" anyway? After all, if you want to forward the same port range as the dst-ports, you can just leave it blank anyway, right?