有没有一种方法可以在Azure Pipeline虚拟机上打开ICMP?

时间:2019-09-20 23:51:49

标签: unit-testing continuous-integration azure-pipelines ping

是否可以在Azure Pipeline虚拟机上打开ICMP?我的CI单元测试有望将ping请求发送到Google DNS(8.8.8.8)

1 个答案:

答案 0 :(得分:1)

根据您的描述,您正在尝试使用Ping通过Azure VM终结点访问一个外部IP。 不允许

请访问我们的Azure VM团队工程师写的这个官方博客:HOW TO ALLOW PING FUNCTIONALITY TO WINDOWS AZURE MACHINES?

  

默认情况下,Windows Azure VM上的Ping功能被阻止   安全原因。

众所周知,Ping使用的 ICMP 协议可以测量本地计算机和远程计算机之间的连接延迟。超过默认延迟的任何连接均被视为不可用。请参见下面的图片,该Azure虚拟机的唯一可能连接是通过 Internet 。任何试图进入虚拟网络的互联网流量都必须通过负载均衡器,并且此均衡器正在过滤ICMP流量,允许 UDP 和<强大的> TCP 流量。

  

默认情况下,Azure拒绝并阻止所有公共入站流量到   Azure虚拟机,包括ICMP通信。这是一件好事   因为它可以通过减少攻击面来提高安全性。

enter image description here

注意:此限制仅适用于通过已配置的终结点通过外部IP的网络流量。但是,如果网络流量发生在同一虚拟网络或同一云服务中的VM的内部IP之间,则将允许使用ICMP。

此限制不是永久性的。我们可以设置失火 azure security group 来允许此操作。但是,不幸的是,对于Azure Devops Pipeline,托管代理正在使用虚拟机DS2_V2DS3_V2,外部用户无法通过防火墙和安全组对它们进行配置/修改。如果使用私有代理进行版本\发行,则ICMP不受限制。您可以设置私人代理,然后在其中执行ping测试。

(有时可以使用 VPN ExpressRoute 跳过负载均衡器过滤器和限制。但我不建议使用这种方式)


由于Ping是用于解决连接问题的非常方便且关键的工具,因此我们正在审查并考虑在Azure VM中扩展此功能。我们的用户语音论坛中提出了这样的建议通知单:Enable ICMP traffic to Azure VMs over the Internet。您也可以对其投票,以将其更快地推入开发队列。