Azure Virtual Machine內部IP和外部IP
按照上文的內容,我們分別建立2台不同的Virtual Machine:
第一台機器名為LeiZhangVMOne
第二台機器名為LeiZhangVMTwo
他們共用同一個CloudService Name: http://leizhangvm.cloudapp.net
當我們通過Azure Management Portal查看2台VM屬性的時候,會發現以下內容:
通過上圖紅色地區我們發現,
-第一台VM和第二台VM的Internal IP ADDRESS不同
-Public Virtual IP (VIP) Address卻是一樣的
分析:Internal IP Address其實就是VM在Azure資料中心的內部網路地址,它是從DHCP獲得的,所以每次關閉這台Azure VM一段時間再開機後,Internal IP就改變了。(如果要固定Internal IP Address,則需要使用Azure Virtual Network,我會在後面給大家介紹)。
為了驗證筆者的看法,我們可以通過遠端桌面連線,查看其中一台VM的網路屬性。
LeiZhangVMOne這台機器的IPv4地址是100.80.76.15。與第一張圖的Internal IP Address一致。
另外,如果我們在第一台虛擬機器VMOne裡設定共用資料夾ShareFolder並設定許可權給Everyone。我們可以通過第二台虛擬機器VMTwo的遠端桌面連線,訪問第一台虛擬機器的共用資料夾。
請注意:因為VMOne和VMTwo共用同一個Cloud Service,並且在同一個Avaliability Set,所以這兩台機器可以互相訪問。同一個使用者建立的其他Azure VM,如果沒有設定同一個Avaliability Set,將無法與之前的VMOne和VMTwo進行網路訪問。
第二個問題:什麼是Public Virtual IP (VIP) Address呢?這個地址其實是Azure VM的公網IP地址。
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/cloud-computing/
但實這個IP地址並不屬於某一個Azure VM,而是在Azure Load Balance裡。VIP的主要功能是負載平衡(Load Balance),並且VM在被刪除後,VIP將被系統回收。所以這個IP是Virtual的。
當在Internet上的其他用戶端(比如筆者的膝上型電腦)。通過VIP訪問Azure資源的時候,Load Balance會將該請求通過Endpoint,自動路由到Internal IP Address,可能會將請求發送給VMOne或者VMTwo。當VMOne或者VMTwo中有一台機器發生了異常,則Load Balance會將請求發送至正常的VM,以保證高可用。
為了驗證筆者的說法,我們使用本地電腦開啟CMD,然後運行nslookup命令。以查看http://leizhangvm.cloudapp.net這個DNS對應的IP地址。如下圖:
可以看到http://leizhangvm.cloudapp.net這個DNS地址對應的IP地址(137.116.164.27)就是我們在Azure Portal上的Public Virtual IP (VIP) Address。
看到這裡,有網友肯定會問:Azure VM為什麼要使用Internal IP和Public Virtual IP呢?
當某些情境需要多台VM之間互相通訊的,筆者建議使用Internal IP。因為Internal IP安全可靠,使用者不需要去考慮安全認證、SSL等問題。而且在採用了Virtual Network(我會在隨後幾章進行介紹)之後,可以打通公司內網和Azure網路的串連,這樣公司內網的機器就可以通過Azure Internal IP訪問公用雲端上的VM了。使用者可以充分利用雲端運算帶來的彈性計算,以降低IT投入成本。
Public Virtual IP(VIP)的好處:筆者認為,Public Virtual IP最大的好處是可以做負載平衡(Load Balance)。
關於IP回收:
當使用者同時刪除了VMOne和VMTwo的時候,Internal IP Address和Public Virtual IP (VIP) Address也將會被Windows Azure收回。如果其他使用者建立虛擬機器的時候,可能會使用到被回收的Internal IP和VIP。
那如果使用者使用SHUT DOWN關閉Azure VM呢?我會在下一章進行介紹。