Como atribuir um IP público no nível da instância (ILPIP) à VM do Azure no ARM (Gerenciador de recursos)

1

Temos o WSO2CEP em execução na VM do Azure, que é um mecanismo de eventos complexo e enviará a notificação por seu pulisher usando HTTP POST simples. No entanto, funcionará bem no AWS EC2, mas não no VM do Azure. Ele jogará abaixo exceção em algum momento.

ID: [-1] [] [2016-10-07 16:05:00,043] ERROR {org.wso2.carbon.event.output.adapter.core.OutputEventAdapter} -  Event dropped at Output Adapter '57f629ee23a74a1688b9e7c1_PUBLISHER' for tenant id '-1234', Read timed out 
java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:170)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
    at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
    at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
    at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
    at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
    at org.wso2.carbon.event.output.adapter.http.HTTPEventAdapter$HTTPSender.run(HTTPEventAdapter.java:317)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Acredito que isso possa ter sido causado pelo problema discutido aqui e aqui . A solução alternativa é atribuir o IP público de nível de instância (ILPIP) à VM. No entanto, agora estamos usando o modelo do Azure Resource Manager e todos os artigos do ILPIP relacionados parecem falar sobre o modo clássico (Azure Service Manager).

Atualmente, temos um endereço IP público atribuído à Interface de rede da Máquina virtual .

O ARM ainda tem o ILPIP? e como podemos configurá-lo?

    
por Bruce 09.10.2016 / 09:10

1 resposta

1

Em suma, que eu saiba, não há como atribuir um ILPIP a uma VM ARM.

Porque não há conceito de ILPIP em ARM. O ARM altera a arquitetura de rede.

Quando você atribui um IP público à VM no ARM (na verdade, ele é atribuído ao vNIC conectado à VM), esse IP não será compartilhado por outra VM, que é diferente com o ASM. No ASM, o endereço IP público é de propriedade do serviço em nuvem. Todas as VMs pertencentes ao mesmo serviço de nuvem compartilharão o endereço IP público. Essa é a razão pela qual precisamos do ILPIP. Mas no ARM, a VM tem seu próprio endereço IP público.

Então, duvido que o seu problema seja o mesmo com o link mencionado acima. Por favor, tente executar uma captura de rede na VM para verificar exatamente o comportamento da rede, o que é muito útil para a solução de problemas de rede.

    
por 10.10.2016 / 12:10