Jak na ping do Azure

Pokud jste se někdy snažili ověřit dostupnost virtuálního stroje, webové stránky nebo třeba cloudové služby v Azure, nejspíš jste zjistili, že příkaz Ping pro tento účel nejde použít. Cílový koncový bod na něj zkrátka nereaguje.

C:\PsTools>ping pingtest.cloudapp.net

Pinging pingtest.cloudapp.net [191.235.123.38] with 32 bytes of data: 
Request timed out. 
Request timed out. 
Request timed out. 
Request timed out.

Ping statistics for 191.235.123.38: 
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Explicitní povolení protokolu ICMP ve firewallu daného stroje nepomůže, neboť Microsoft Azure blokuje ICMP už na load-balanceru. Tato blokace je oboustranná, takže neprojde ani ping zevnitř stroje někam do internetu (pro zajímavost: výjimkou je například Bing.com).

Řešením je ICMP obejít a použít ping na konkrétní port. Umí to utilita PsPing, která je součástí známého balíku Sysinternals a používá se takto:

C:\PsTools>psping pingtest.cloudapp.net:60261

PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility 
Copyright (C) 2012-2014 Mark Russinovich 
Sysinternals - www.sysinternals.com

TCP connect to 191.235.123.38:60363: 
5 iterations (warmup 1) connecting test: 
Connecting to 191.235.123.38:60261 (warmup): 2.61ms 
Connecting to 191.235.123.38:60261: 2.47ms 
Connecting to 191.235.123.38:60261: 2.65ms 
Connecting to 191.235.123.38:60261: 4.27ms 
Connecting to 191.235.123.38:60261: 3.24ms

TCP connect statistics for 191.235.123.38:60261: 
  Sent = 4, Received = 4, Lost = 0 (0% loss), 
  Minimum = 2.47ms, Maximum = 4.27ms, Average = 3.16ms

Otevřené porty zjistíte například na management portále v konfiguraci virtuálního stroje, v případě Web Sites to budou 80 a 443.

Jen pro úplnost – omezení ICMP neplatí absolutně. Stroje zapojené do virtuální sítě na sebe vidí a mohou se pingovat dle libosti, stejně tak připojení přes VPN nebo ExpressRoute neblokuje protokol ICMP.