2014-09-05 2 views
1

У нас есть Azure VM, и нам нужно отправить UDP-сообщения с определенного порта этого аппарата. Мы используем .NET Class UdpClient для связи.Исходный UDP-порт источника, измененный при переходе на публичный VIP на Azure VM

Если мы попытаемся отправить сообщения между машинами в одной и той же виртуальной сети, то на аппарате ресивера отображается правильный исходный хост и порт.

Если мы перейдем через Public VIP (между виртуальными машинами в разных виртуальных сетях или прослушивателем onPremises), порт источника отобразит порт от 1024 и выше, а не выбранный порт источника.

Отправитель: 1.2.3.4:5000

Приемник: 5.6.7.8:5001 -> говорит данные, полученные от 1.2.3.4:1025 -> 1025 порт источника должен быть 5000

VB.NET Пример:

'Sending 
Private Sub Send() 
    Dim data() As Byte = System.Text.Encoding.Unicode.GetBytes("Data") 
    Dim client As UdpClient = New UdpClient(5000) 
    client.Send(data, data.Length, "5.6.7.8", "5001") 
    client.Close() 
End Sub 

'Recieving 
Private Sub Recieve() 
    While True 
     Dim remoteIPEndPoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 5001) 
     Dim content() As Byte = udpClient.Receive(remoteIPEndPoint) 
     If content.Length > 0 Then 
     Dim message As String = Encoding.ASCII.GetString(content) 
     message &= remoteIPEndPoint.Address.ToString & " " & remoteIPEndPoint.Port & " " & message & vbCrLf 
     End If 
    End While 
End Sub 

Я кое-что о SNAT (источник NAT) читать и мне интересно, если Azure Network всегда трансформируются порты UDP источника на исходящие связи за пределами публичного шлюза.

Нам действительно нужно сохранить информацию о порте источника в пункте назначения на нашей платформе, потому что у нас есть тысячи устройств в Интернете, которые прослушивают только указанную комбинацию IP: UDPPort.

Спасибо заранее,

Antonio Sanchez

Атлантида Глобальная система

ответ

1

Мы говорили с Azure поддержки, и они сообщили нам, что источник портов переведенный при пересечении виртуальной сети периметра ,

Решение, которое они нам предоставили, заключается в использовании PIP (общедоступных IP-адресов уровня экземпляра) в одной виртуальной машине. Таким образом, порт источника поддерживается с использованием UDPClient, а SourceNAT не применяется. Такой публичный IP-адрес находится в режиме предварительного просмотра, и для его настройки требуется PowerShell.

PIP информация и конфигурация: PIP MSDN

Спасибо!

Антонио Санчес

Атлантида Глобальная система

Смежные вопросы