簡體   English   中英

Azure服務總線中繼連接到未知IP地址:40.112.124.x:9352

[英]Azure service bus relay connecting to unknown ip address: 40.112.124.x:9352

我們提供使用Azure Service總線中繼暴露給雲的本地軟件,我們用來暴露的基本代碼如下(我刪除了所有可識別的內容):

    ServiceHost sh = new ServiceHost(typeof(BasicHttpEntityService));
    BasicHttpRelayBinding basicHttpRelayBinding = new BasicHttpRelayBinding();

    Uri uriEndPointAddress = ServiceBusEnvironment.CreateServiceUri("https", "ourdomain", "test-url-appendage");
    m_shRelayServiceHost.AddServiceEndpoint(
      typeof(IMyService),
      basicHttpRelayBinding,
      uriEndPointAddress
    ).Behaviors.Add(
      new TransportClientEndpointBehavior
      {
        TokenProvider = TokenProvider.CreateSharedSecretTokenProvider(
          "MyUser",
          "MyPassword")
      });
    sh.Open();

這對於大多數客戶來說都可以正常工作,但是其中一位客戶擁有嚴格的防火牆策略。

根據我們發現的SB准則 ,我們要求他們打開通往ourdomain.servicebus.windows.net的端口9351-9354。 現在我們發現,當有傳入請求時,該服務將連接到“ ourdomain”(我們在Wireshark和WCF日志中都成功)和40.112.124.x上的一個未知(對我們而言)服務: 9352(最后一個八位位組隨每個請求而變化)。

通過禁止連接到任何端口上的任何40.xxx地址,我能夠在開發環境中重現該問題。 這是WCF日志中發生的情況:

System.Net.Sockets.SocketException (0x80004005): An attempt was made to access a socket in a way forbidden by its access permissions 40.112.124.25:9352

Server stack trace: 
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.RelayedConnectionSession.ConnectAsyncResult.<GetAsyncSteps>b__4(ConnectAsyncResult thisRef, IAsyncResult r)
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)

Exception rethrown at [0]: 
   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at Microsoft.ServiceBus.RelayedConnectionSession.EndConnect(IAsyncResult result)

在這段時間內沒有DNS請求發出,因此沒有主機名可以提供有關此傳出連接功能的任何線索。

根據我的調查, 這似乎是Microsoft控制的子網 ,因此可以將中繼服務連接到該子網 ,但我想知道:

  1. 此附加連接是可選的嗎?
  2. 如果沒有,我們是否應該允許整個子網?
  3. 這種IP范圍將來會改變嗎? 是否在某處進行了硬編碼?

最后,我們要求Microsoft提供支持。 簡而言之,他們的答案如下:

  1. 此附加連接是可選的嗎?

    不,這不是可選的。 對於中繼偵聽器,端口5671上有一個控制通道,此連接始終存在。 然后在門戶9352上有一個數據通道,當存在中繼客戶端嘗試與偵聽器進行通信時,將建立此連接。

  2. 這種IP范圍將來會改變嗎?

    當前,該IP可以更改以進行中繼,因此您需要允許您所在區域的整個數據中心的IP范圍( https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=41653 )。 SB產品團隊將在未來努力降低IP范圍,使其更加可預測。 在這個未來沒有確切的預計到達時間。

因此,好消息是他們正在努力。 壞消息是,現在,我們將需要在白名單中添加很多IP地址,以確保正常運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM