I have a server with OVH running VMWare ESXi and four additional IPs. My intention was to create four VMs, one of them being a RouterOS machine. The other three VMs would sit behind RouterOS and it would do all the routing and firewalling via NAT.
I set up RouterOS with 5 ethernet interfaces: 1-4 each bound to the public IPs, and the fifth interface was internal (10.0.0.1) with a DHCP server handing out IPs for the other three VMs.
In short, this setup has worked for me, but my throughput is not very good. The physical server has a gigabit NIC. If I pull down a test file from OVH's servers on the host itself, I get around 105MB/sec. If I do the same from one of my VMs behind the RouterOS, I get 22MB/sec.
This may be a CPU limitation, but I would be surprised as the RouterOS VM has 8 x 2.666ghz Xeon cores and 512MB RAM which should be sufficient. However, I understand that there are a lot of issues surrounding multi-core functionality in RouterOS so I'm not really sure myself.
Any advice would be greatly appreciated, even if someone could tell me that I've gone about this whole thing completely wrong. Perhaps I need to set the whole virtual network up differently to get the best performance? Ultimately, I want to have three VMs that are behind the fourth RouterOS VM which I can use as a firewall primarily.