连接到未知 IP 地址的 Azure 服务总线中继:40.112.124.x:9352



我们提供使用 Azure 服务总线中继向云公开的本地软件,我们用于公开的基本代码如下(我已经删除了所有可识别的内容):

    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 指南,我们要求他们打开端口 9351-9354 以 ourdomain.servicebus.windows.net。现在我们发现,当有传入请求时,服务会连接到"我们的域"(我们在 Wireshark 和 WCF 日志中看到这成功)和 40.112.124.x:9352 上的未知(对我们来说)服务(最后一个八位字节随每个请求而变化)。

我已经能够通过禁止连接到任何端口上的任何 40.x.x.x 地址在我的开发环境中重现该问题。以下是 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 可能会更改,因此需要允许您所在区域 (https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653) 中整个数据中心的 IP 范围。 SB产品团队将致力于在未来大幅缩小此IP范围,使其更具可预测性。 关于这个未来没有确切的预计到达时间。

所以好消息是他们正在努力。坏消息是,现在,我们需要将大量IP地址添加到白名单中以确保平稳运行。

相关内容

最新更新