Azure PIP (Instance Level Public IP)

衡子發表於2015-09-02

微軟的Azure平臺已經支援Instance Level Public IP功能。當有複雜協議的情況下,需要開啟多個埠的情況下,可以考慮開啟PIP功能。

先介紹幾個概念:

  • VIP – virtual IP address 虛擬機器的公網IP
  • DIP – dynamic IP address 虛擬機器的內網IP
  • PIP – instance-level public IP address 虛擬機器及的公網IP

對於建立的VM,都會被分配一個內網的DIP地址,同時多個VM會共享一個Cloud Service。每個Cloud Service會有一個VIP公網IP地址。

 

如果需要埠全開的地址,可以給虛擬機器新增PIP地址。這個地址與原有的VIP地址不同,並且通過VIP和PIP都可以訪問到這臺VM。只是VIP需要做Endpoint的設定,而PIP不需要。

 

具體配置方法:

配置PIP非常簡單,只需要一條Powershell命令:

get-azurevm -ServiceName hwpip -Name hwpip | set-AzurePublicIP -PublicIPName hwpipip1 | Update-AzureVM

檢查命令:

get-azurevm -ServiceName hwpip -Name hwpip | Get-AzurePublicIP -PublicIPName hwpipip1

這條命令基本看不到任何想看的資訊。可以用下面的命令進行觀察:

Get-AzureRole -ServiceName hwpip -Slot Production -InstanceDetails

InstanceEndpoints         : {SSH}

InstanceErrorCode         :

InstanceFaultDomain     : 0

InstanceName         : hwpip

InstanceSize         : Standard_D1

InstanceStateDetails         :

InstanceStatus         : ReadyRole

InstanceUpgradeDomain     : 0

RoleName         : hwpip

DeploymentID         : 29da144bef1f432384a15635ada2ce61

IPAddress         : 10.1.1.4

PublicIPAddress         : 42.159.29.19

PublicIPName         : hwpipip1

PublicIPIdleTimeoutInMinutes     :

PublicIPDomainNameLabel     :

PublicIPFqdns         : {}

ServiceName         : hwpip

OperationDescription     : Get-AzureRole

OperationId         : 701a4bf1-1e38-4630-9565-ffd803c2c73a

OperationStatus          : Succeeded

這裡可以看到比較詳細的資訊,其中PublicIPAddress: 42.159.29.19就是公網IP。

 

另外通過命令可以看到虛擬機器VIP資訊:

$vip = Get-AzureDeployment -ServiceName hwpip

$vip.VirtualIPs

Address         : 42.159.26.212

IsDnsProgrammed     : True

Name         : hwpipContractContract

ReservedIPName     :

ExtensionData     :

這裡可以看到VIP地址:42.159.26.212,通過配置endpoint,可以通過這個地址訪問到我們開放的Service。

比如當你啟用了FTP或HTTP的服務,以及預設啟用的SSH服務,可以通過PIP的公網IP訪問到,也可以通過VIP訪問,但必須要新增endpoint。

 

但如果設定了PIP,必須要新增相應的iptables的規則,否則非常容易被黑掉!

相關文章