Skip to content

Instantly share code, notes, and snippets.

@pekeq
Last active August 29, 2015 14:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pekeq/e05e7bc73a03358cd122 to your computer and use it in GitHub Desktop.
Save pekeq/e05e7bc73a03358cd122 to your computer and use it in GitHub Desktop.
IPv6 End points of Azure CDN don't respond to HTTP requests from particular network.

Issue

IPv6 end points of Azure CDN don't respond to HTTP requests from particular networks.

Detail

The contents served from Azure CDN cannot be fetched from some IPv6 networks.

Actually clients of the affected network can establish IPv6 TCP connection with end points of Azure CDN, and can throw HTTP GET request. However end points of Azure CDN don't respond to the requests after that.

The affected clients can ping6 to IPv6 end points of Azure CDN even though it can't get contents.

I confirmed that this problem occurs on not only my Azure CDN contracts but also other Azure CDN for example tenki.jp or microsoft.com.
Additionally, When I said about this problem on twitter, some users are replied that they are also having the same problem.

This problem doesn't occur when you connect to Azure CDN via IPv4.

Affected Contents

Following URLs are belongs to my Azure subscription.

Not only my Azure subscription but also following Azure CDN URLs are cannot be fetched.

Affected Networks

Clients of following network are affected. I mean following clients can't get contents from Azure CDN via IPv6.

  • OCN

    • 2400:4010:100:5800::/56
  • Sakura Internet

    • 2401:2500:102:1202::/64
    • 2401:2500:102:2215::/64

Not Affected Networks

Clients of following network are not affected. I mean following clients can get contents from Azure CDN via IPv6 properly.

  • ARTERIA Networks

    • 240b:10:2a60:600::/64
  • GMO Internet

    • 2400:8500:1301:813::/64

Reference material

Here is some command output from client on affected network.

Sakura Internet

IPv6 network = 2401:2500:102:1202::/64

$ wget -d http://az630987.vo.msecnd.net/test.html
DEBUG output created by Wget 1.13.4 on linux-gnu.

URI encoding = `UTF-8'
--2014-06-27 12:23:27--  http://az630987.vo.msecnd.net/test.html
Resolving az630987.vo.msecnd.net (az630987.vo.msecnd.net)... 2606:2800:10c:249:f81:1c8d:1178:1364, 192.229.145.200
Caching az630987.vo.msecnd.net => 2606:2800:10c:249:f81:1c8d:1178:1364 192.229.145.200
Connecting to az630987.vo.msecnd.net (az630987.vo.msecnd.net)|2606:2800:10c:249:f81:1c8d:1178:1364|:80... connected.
Created socket 3.
Releasing 0x0000000000750490 (new refcount 1).

---request begin---
GET /test.html HTTP/1.1
User-Agent: Wget/1.13.4 (linux-gnu)
Accept: */*
Host: az630987.vo.msecnd.net
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Closed fd 3
Retrying.

--2014-06-27 12:41:37--  (try: 2)  http://az630987.vo.msecnd.net/test.html
Found az630987.vo.msecnd.net in host_name_addresses_map (0x22fa490)
Connecting to az630987.vo.msecnd.net (az630987.vo.msecnd.net)|2606:2800:10c:249:f81:1c8d:1178:1364|:80... connected.
Created socket 3.
Releasing 0x00000000022fa490 (new refcount 1).

---request begin---
GET /test.html HTTP/1.1
User-Agent: Wget/1.13.4 (linux-gnu)
Accept: */*
Host: az630987.vo.msecnd.net
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... ^C
$ ping6 -c 5 az630987.vo.msecnd.net
PING az630987.vo.msecnd.net(2606:2800:10c:249:f81:1c8d:1178:1364) 56 data bytes
64 bytes from 2606:2800:10c:249:f81:1c8d:1178:1364: icmp_seq=1 ttl=55 time=29.4 ms
64 bytes from 2606:2800:10c:249:f81:1c8d:1178:1364: icmp_seq=2 ttl=55 time=27.2 ms
64 bytes from 2606:2800:10c:249:f81:1c8d:1178:1364: icmp_seq=3 ttl=55 time=29.3 ms
64 bytes from 2606:2800:10c:249:f81:1c8d:1178:1364: icmp_seq=4 ttl=55 time=27.8 ms
64 bytes from 2606:2800:10c:249:f81:1c8d:1178:1364: icmp_seq=5 ttl=55 time=27.2 ms

--- az630987.vo.msecnd.net ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 10152ms
rtt min/avg/max/mdev = 27.297/28.250/29.481/0.990 ms
$ traceroute6 az630987.vo.msecnd.net
traceroute to cs1.wpc.v0cdn.net (2606:2800:10c:249:f81:1c8d:1178:1364) from 2401:2500:102:1202:133:242:138:180, 30 hops max, 24 byte packets
 1  2401:2500:102:1202::1 (2401:2500:102:1202::1)  0.584 ms  0.323 ms  0.249 ms
 2  iskrt101b-rt109e.bb.sakura.ad.jp (2001:e47:c000:17::1)  6.565 ms  0.345 ms  0.315 ms
 3  iskrt1s-rt101b-1.bb.sakura.ad.jp (2001:e47:c000:3::1)  0.41 ms  0.588 ms  0.438 ms
 4  iskrt2-rt1s.bb.sakura.ad.jp (2001:e47:c000:15::1)  0.454 ms  0.615 ms  0.4 ms
 5  tkwrt3-krt2.bb.sakura.ad.jp (2001:e47:0:b::1)  19.612 ms  19.609 ms  19.543 ms
 6  2001:218:2000:5000::209 (2001:218:2000:5000::209)  19.775 ms  19.674 ms  19.704 ms
 7  ae-6.a20.osakjp01.jp.ra.gin.ntt.net (2001:218:2000:2000::92)  24.03 ms  26.775 ms  24.622 ms
 8  ae-10.r22.osakjp02.jp.bb.gin.ntt.net (2001:218:0:6000::e9)  27.069 ms  27.091 ms  27.221 ms
 9  xe-1-1-11.r22.osakjp02.jp.ce.gin.ntt.net (2001:218:3000:5000::5a)  27.128 ms  27.209 ms  27.148 ms
10  * * *
11  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
^C

OCN

IPv6 network = 2400:4010:100:5800::/56

$ wget -d http://az630987.vo.msecnd.net/test.html
DEBUG output created by Wget 1.14 on linux-gnu.

URI encoding = ‘UTF-8’
--2014-06-28 10:07:53--  http://az630987.vo.msecnd.net/test.html
Resolving az630987.vo.msecnd.net (az630987.vo.msecnd.net)... 2606:2800:10c:249:f81:1c8d:1178:1364, 192.229.145.200
Caching az630987.vo.msecnd.net => 2606:2800:10c:249:f81:1c8d:1178:1364 192.229.145.200
Connecting to az630987.vo.msecnd.net (az630987.vo.msecnd.net)|2606:2800:10c:249:f81:1c8d:1178:1364|:80... connected.
Created socket 3.
Releasing 0x00000000025a63d0 (new refcount 1).

---request begin---
GET /test.html HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: az630987.vo.msecnd.net
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Closed fd 3
Retrying.

--2014-06-28 10:22:54--  (try: 2)  http://az630987.vo.msecnd.net/test.html
Found az630987.vo.msecnd.net in host_name_addresses_map (0x25a63d0)
Connecting to az630987.vo.msecnd.net (az630987.vo.msecnd.net)|2606:2800:10c:249:f81:1c8d:1178:1364|:80... connected.
Created socket 3.
Releasing 0x00000000025a63d0 (new refcount 1).

---request begin---
GET /test.html HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: az630987.vo.msecnd.net
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... ^C
C:\Users\hideo-m>ping -6 -n 5 az630987.vo.msecnd.net

cs1.wpc.v0cdn.net [2606:2800:10c:249:f81:1c8d:1178:1364]に ping を送信しています
 32 バイトのデータ:
2606:2800:10c:249:f81:1c8d:1178:1364 からの応答: 時間 =13ms
2606:2800:10c:249:f81:1c8d:1178:1364 からの応答: 時間 =14ms
2606:2800:10c:249:f81:1c8d:1178:1364 からの応答: 時間 =12ms
2606:2800:10c:249:f81:1c8d:1178:1364 からの応答: 時間 =15ms
2606:2800:10c:249:f81:1c8d:1178:1364 からの応答: 時間 =13ms

2606:2800:10c:249:f81:1c8d:1178:1364 の ping 統計:
    パケット数: 送信 = 5、受信 = 5、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 12ms、最大 = 15ms、平均 = 13ms
C:\Users\hideo-m>tracert -6 az630987.vo.msecnd.net

cs1.wpc.v0cdn.net [2606:2800:10c:249:f81:1c8d:1178:1364] へのルートをトレースしています
経由するホップ数は最大 30 です:

  1    <1 ms    <1 ms    <1 ms  2400:4010:100:5801::1
  2     4 ms     3 ms     3 ms  2001:380:50:1ff::3
  3     2 ms     2 ms     6 ms  2001:380:50:181::1
  4     7 ms     5 ms     4 ms  2001:380:50:100::1
  5     3 ms     3 ms     4 ms  2001:380:8270:4::1
  6     3 ms     3 ms     5 ms  2001:380:8150:f::19
  7     3 ms     3 ms     3 ms  2001:380:0:2e05::2
  8    11 ms    15 ms    42 ms  ae-6.a21.osakjp01.jp.ra.gin.ntt.net [2001:218:2000:2000::96]
  9    16 ms    17 ms    15 ms  ae-11.r22.osakjp02.jp.bb.gin.ntt.net [2001:218:0:6000::f1]
 10    11 ms    16 ms    11 ms  xe-1-1-11.r22.osakjp02.jp.ce.gin.ntt.net [2001:218:3000:5000::5a]
 11    13 ms    12 ms    12 ms  2606:2800:10c:249:f81:1c8d:1178:1364

トレースを完了しました。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment