0

We have web servers running on older hosted dedicated servers that our SP is deprecating and removing support for.

These are 2008 r2 servers and we don't have the source code to some of the older ASP.NET sites - so we can't just migrate the applications to a new OS on a new server - and the SP won't support an image migration of 2008 r2 running directly on the new servers.

We used disk2vhd and are able to bring up the old 2008 r2 images as Hyper-V VMs on the new 2012 r2 servers.

The problem is when we try to access one of those VMs from the internet...

Our SP provides only one static IP address per hosted server... there is no SP DHCP in place that will hand out IP addresses.

I've been reading for days - and have tried LOTS of variations. From what I understand - everyone says this is "easy to do" - just set up an External vswitch and have your VM NIC connect to that - then set up a port forward, etc. ... ... only none of that works - because the VM doesn't get an IP address.

Right now - my best guess is:

  1. Use an Internal vswitch
  2. Set up the VM NIC with ??? IP address and ??? subnet mask
  3. Use netsh to set static routes for ports 80 and 443 from the host IP address to the ??? VM IP address

But I have become totally lost - and none of the configurations I've tried are successful...

Example of one of our hosted server NICs:

  • IP: 172.24.16.207
  • Sub: 255.255.252.0
  • GW: 172.24.16.1
  • (Note: this is only the server IP - not the Public IP)

Windows firewalls are turned off on the host servers and the VMs.

If this is even possible... can anyone help me fill in:

  1. What the vswitch configuration should be?
  2. What IP addresses and subnet masks for the VM NIC?
  3. What (if any) netsh commands are necessary?
  4. Are there any specific roles/features/services (other than Hyper-V of course) that I should/should-not be running on the host servers in order to make this work?

Or else point me in the proper direction for what I am trying to accomplish?

CBruce
  • 465
  • 4
  • 7

1 Answers1

0

Your host sounds like rubbish. Or you simply don't understand their offerings. That being said, here are my suggestions.

You have two choices. Either set up NAT and DHCP in Hyper-V for the guests, or use a Reverse Proxy or a Load Balancer installed on the Hyper-V host.

NAT and DHCP for guests on Windows 2012 R2 is doable, but not exactly a supported configuration from Microsoft, and there is no friendly way to set it up. The next person that comes along trying to figure out how this works will have quite a puzzle on their hands. For that reason, I do not suggest this option.

The best option, in my option, is to install an Reverse Proxy or a Load Balancer on the Hyper-V host. This goes against the general advice of not installing anything on the host, but would still be my preference over NAT and DHCP in your crappy situation. To accomplish this, you will need to create an "Internal" v-switch on the host, and assign static IP's on the host and the guest. Then you can configure the Reverse Proxy to direct requests for your website to the VM guest. IIS includes a reverse proxy called Application Request Routing (ARR), which is what I would use.

As an alternative to ARR, you can install a Load Balancer on the host. However, the Microsoft load balancing feature they provide called NLB is not appropriate here, so don't even bother. I don't have any other suggestions here.

longneck
  • 22,793
  • 4
  • 50
  • 84