
У нас есть веб-серверы, работающие на старых выделенных серверах, поддержка которых прекращена нашим поставщиком услуг.
Это серверы 2008 r2, и у нас нет исходного кода некоторых старых сайтов ASP.NET, поэтому мы не можем просто перенести приложения на новую ОС на новом сервере, а SP не будет поддерживать миграцию образа 2008 r2, работающего непосредственно на новых серверах.
Мы использовали disk2vhd и смогли загрузить старые образы 2008 r2 в качестве виртуальных машин Hyper-V на новые серверы 2012 r2.
Проблема в том, что когда мы пытаемся получить доступ к одной из этих виртуальных машин из Интернета...
Наш SP предоставляет толькоодинстатический IP-адрес на размещенный сервер...нет SP DHCP, который бы раздавал IP-адреса.
Я читал в течение нескольких дней - и перепробовал МНОГО вариаций. Насколько я понял - все говорят, что это "легко сделать" - просто настройте внешний vswitch и подключите к нему вашу VM NIC - затем настройте переадресацию портов и т. д. ... ... только ничего из этого не работает -потому что виртуальная машина не получает IP-адрес.
На данный момент мое наиболее вероятное предположение таково:
- Используйте внутренний vswitch
- Настройте сетевую карту виртуальной машины с IP-адресом ??? и маской подсети ???
- Используйте netsh для установки статических маршрутов для портов 80 и 443 с IP-адреса хоста на IP-адрес виртуальной машины ???
Но я совсем растерялся — и ни одна из перепробованных мной конфигураций не оказалась успешной...
Пример одного из наших сетевых адаптеров размещенного сервера:
- IP-адрес: 172.24.16.207
- Подписка: 255.255.252.0
- ГВ: 172.24.16.1
- (Примечание: это только IP-адрес сервера, а не публичный IP-адрес)
Брандмауэры Windows отключены на хост-серверах и виртуальных машинах.
Если это вообще возможно... может ли кто-нибудь помочь мне заполнить:
- Какова должна быть конфигурация vswitch?
- Какие IP-адреса и маски подсети для сетевой карты виртуальной машины?
- Какие команды netsh необходимы (если таковые имеются)?
- Есть ли какие-то конкретные роли/функции/службы (кроме Hyper-V, конечно), которые мне следует/не следует запускать на хост-серверах, чтобы это работало?
Или же укажите мне правильное направление для достижения моей цели?
решение1
Ваш хост звучит как мусор. Или вы просто не понимаете их предложений. С учетом сказанного, вот мои предложения.
У вас есть два варианта. Либо настроить NAT и DHCP в Hyper-V для гостей, либо использовать обратный прокси-сервер или балансировщик нагрузки, установленный на хосте Hyper-V.
NAT и DHCP для гостей в Windows 2012 R2 выполнимы, но не совсем поддерживаемая конфигурация от Microsoft, и нет дружественного способа настроить ее. Следующий человек, который придет и попытается разобраться, как это работает, столкнется с большой проблемой. По этой причине я не предлагаю этот вариант.
Лучшим вариантом, по моему мнению, является установка обратного прокси или балансировщика нагрузки на хосте Hyper-V. Это противоречит общему совету не устанавливать ничего на хосте, но все равно будет моим предпочтением по сравнению с NAT и DHCP в вашей паршивой ситуации. Чтобы добиться этого, вам нужно будет создать "внутренний" v-switch на хосте и назначить статические IP-адреса на хосте и госте. Затем вы можете настроить обратный прокси для направления запросов вашего веб-сайта на гостевую виртуальную машину. IIS включает в себяобратный прокси-сервер, называемый Application Request Routing (ARR), что я бы и использовал.
В качестве альтернативы ARR вы можете установить Load Balancer на хосте. Однако предоставляемая Microsoft функция балансировки нагрузки, называемая NLB, здесь не подходит, так что даже не беспокойтесь. У меня нет других предложений.