This you want to do, can not do with DNS only . DNS resolves only addresses, not ports. To redirect HTTP to another port, you need an HTTP server. We have two alternatives.
If the subdomain address (123.45.678.90) has port 80 free (which I do not believe is the case, otherwise you would not want to use port 8180), you should put a Web server serving port 80 and redirecting any request to link .
If the subdomain address (123.45.678.90) is already using port 80 for the primary domain (I believe this is the case), you must enable the use of Virtual Host on the port 80 server because there a single server Web can serve multiple domains at the same address. In a virtual host you put the domain, in the other virtual host the subdomain that redirects everything to: 8180.
The virtual host configuration differs depending on the web server you are using, so I will not go into details.