
我們的 Web 伺服器運行在較舊的託管專用伺服器上,我們的 SP 已棄用並刪除了對這些伺服器的支援。
這些是 2008 r2 伺服器,我們沒有一些舊 ASP.NET 網站的原始碼 - 因此我們不能只是將應用程式遷移到新伺服器上的新作業系統 - 並且 SP 不支援2008 r2 的映像遷移直接在新伺服器上運行。
我們使用了 disk2vhd,並且能夠在新的 2012 r2 伺服器上將舊的 2008 r2 映像作為 Hyper-V VM 啟動。
問題是當我們嘗試從互聯網訪問其中一台虛擬機器時...
我們的SP只提供一每個託管伺服器的靜態 IP 位址...沒有可用的 SP DHCP 來分發 IP 位址。
我已經讀了好幾天了——並且嘗試了很多變體。據我了解- 每個人都說這“很容易做到” - 只需設置一個外部vswitch 並將您的虛擬機網卡連接到它- 然後設置端口轉發等............只有這些都不起作用-因為虛擬機器沒有取得IP位址。
現在 - 我最好的猜測是:
- 使用內部 vswitch
- 使用 ??? 設定虛擬機器網卡IP 位址和?子網路遮罩
- 使用netsh設定從主機IP位址到???的連接埠80和443的靜態路由虛擬機器IP位址
但我已經完全迷失了 - 我嘗試過的配置都沒有成功...
我們的託管伺服器 NIC 之一的範例:
- IP位址:172.24.16.207
- 子:255.255.252.0
- GW:172.24.16.1
- (注意:這只是伺服器 IP - 不是公用 IP)
主機伺服器和虛擬機器上的 Windows 防火牆已關閉。
如果這可能的話...任何人都可以幫我填寫:
- vswitch 配置應該是什麼?
- VM NIC 的 IP 位址和子網路遮罩是什麼?
- 需要哪些(如果有)netsh 指令?
- 為了使這項工作正常進行,我是否應該/不應該在主機伺服器上運行任何特定的角色/功能/服務(當然除了 Hyper-V)?
或為我想要實現的目標指明正確的方向?
答案1
你的主人聽起來像垃圾。或者你根本不了解他們的產品。話雖這麼說,這是我的建議。
你有兩個選擇。在 Hyper-V 中為來賓設定 NAT 和 DHCP,或使用安裝在 Hyper-V 主機上的反向代理或負載平衡器。
Windows 2012 R2 上的來賓的 NAT 和 DHCP 是可行的,但並不完全是 Microsoft 支援的配置,並且沒有友好的方法來設定它。下一個試圖弄清楚它是如何運作的人將會遇到一個相當大的難題。因此,我不建議使用此選項。
在我看來,最好的選擇是在 Hyper-V 主機上安裝反向代理或負載平衡器。這違背了不在主機上安裝任何東西的一般建議,但在你糟糕的情況下,我仍然更喜歡 NAT 和 DHCP。為此,您需要在主機上建立一個「內部」v-switch,並在主機和來賓上指派靜態 IP。然後,您可以設定反向代理,將對您網站的請求導向到虛擬機器來賓。 IIS 包括一個反向代理稱為應用程式請求路由 (ARR),這就是我要使用的。
作為 ARR 的替代方案,您可以在主機上安裝負載平衡器。然而,他們提供的稱為 NLB 的 Microsoft 負載平衡功能在這裡並不合適,所以不必費心。我這裡沒有任何其他建議。