Using a Ubuntu AWS instance as tunnel for RDP to simulate bandwidth

Posted on

Problem :

I have a bunch of windows instances on EC2 which I can connect to using RDP.
I want to test the performance of RDP under various bandwidth and latency conditions.
I know about thetc qdisc tool which allows us to control traffic on particular interfaces on a machine. However I would like to keep this independent of my developer machine. I wanted a setup in which I have another box – most probably a ubuntu AWS instance which I could configure so that my RDP connections are routed through that machine’s interfaces and I can set bandwidth controls on different ports of that machine. This will act as a gateway to my RDP connections, so that I can see how RDP performs under certain bandwidth condtions by connecting to the appropriate port on this gateway.

I explored some tools like the rinetd server and tried to work with iptable rules. The closest thing to what I required was SSH port forwarding, using the gateway. However I see some strange performance hence I want to do away with SSH and see if I can get a transparent (SSH free) solution. I want a setup in which I could just rdp into a port on the gateway and the gateway automatically “forwards” this connection to the (preconfigured) remote machine. And the traffic coming back from the remote machine should also be redirected through the gateway back to my client. That way I can use tc qdisc on the gateway and study RDP under various settings.

Solution :

Not to say you won’t get it running the way you’re envisioning it, but you may have an easier time of it if you use a tool that limits bandwidth on the Windows boxes themselves. A few examples include,

  • NetLimiter
  • Shunra vCat

These tools will constrain the bandwidth or, in Shunra’s case, impair the ping or packet loss of the network. You can then connect directly from your test client and not worry about routing the connection in order to limit bandwidth.

Leave a Reply

Your email address will not be published. Required fields are marked *