DNS Summer Day 2017

CDNとCNAMEあれこれ株式会社Ｊストリーム
CDNext推進室
佐藤 太一© J-Stream Inc. All Rights Reserved.
2017.6.23版

自己紹介

• 経歴
• 1980/09 山口県光市 生• 2003/03 鹿児島大学 卒• 2003/04 Jストリーム（AS24253）に入社～新卒で入社してそのまま、現在も在籍• 業務内容• セールス兼インフラエンジニア• CDNのインフラ全般の構築・運用・管理• CDN情報サイト： https://tech.jstream.jp/• その他• インターネットコミュニティ活動も積極的に実施中
JANOG38 Meeting 実行委員長（2016/7/6-7/8@沖縄）• 趣味：楽器(ファゴット)© J-Stream Inc. All Rights Reserved.

2

CDNとCNAMEあれこれ～切っても切れないCDNとCNAME～© J-Stream Inc. All Rights Reserved.

3

CDN(Content Delivery Network)とは▶インターネットコンテンツを快適に閲覧･利用できるよう、配信の｢遅い｣｢中断する｣｢アクセスできない｣を防止する仕組み▶CDNはContent Delivery Networkの略で、多数のコンテンツ配信サーバーで構成されたネットワークのことです。貴社コンテンツのデータを、CDNが一時的に保存(キャッシュ)し、お客様のサーバーにかわってエンドユーザーへ最短経路で効率的に配信します。

オリジンサーバー

管理者

CDN
エンドユーザー

エンドユーザー

エンドユーザー© J-Stream Inc. All Rights Reserved.

エンドユーザー4

CDNとCNAME▶ 一般的なCDNでは顧客の持っているFQDNでWebサイトにアクセスさせるためにCNAMEを利用します▶ CDN業者側は顧客毎に一意のCNAME用のFQDNを発行する事が多いです▶ CDN業者側では、該当のFQDNをGSLBによって「エンドユーザーのより近いネットワーク」から配信するようになっています。

▶ GSLBは障害発生時の迂回にも利用されます（一部CDNキャッシュサーバーが不調・メンテ等になった場合に該当サーバーのIPアドレスをエンドユーザに返却しないようにします）

オリジンサーバー

CDN
sample.cdn.jp
CNAME

エンドユーザー

エンドユーザー

www.sample.jp
エンドユーザー

エンドユーザー© J-Stream Inc. All Rights Reserved.

5例えば・・・・▶日本のテレビ局だとこんな感じ（分かりやすくするためにコマンド結果を一部割愛しています）$ dig www.nhk.or.jp cname;; QUESTION SECTION:;www.nhk.or.jp.
IN CNAME
当日のみ;; ANSWER SECTION:
www.nhk.or.jp.
300 IN CNAME www.nhk.or.jp.edgekey.net.
$ dig www.tv-asahi.co.jp cname;; QUESTION SECTION:;www.tv-asahi.co.jp.
当日のみ IN;; ANSWER SECTION:
www.tv-asahi.co.jp. 300 IN$ dig www.fujitv.co.jp cname;; QUESTION SECTION:;www.fujitv.co.jp.
;; ANSWER SECTION:
www.fujitv.co.jp.
419

FastlyCNAME

CNAME nonssl.global.fastly.net.

J-Stream

IN当日のみCNAME
INAkamai

CNAME a10729a9b07315883400515ac8c78bf2.cdnext.stream.ne.jp.
© J-Stream Inc. All Rights Reserved.

6

CDNとCNAMEで実際にあったFAQ -1

 質問１
 （こちらでCNAME先情報=***.cdn.stream.ne.jp.を教えた後）なんかDNSサービスのWeb設定画面にAって書いてあってIPアドレス書いてあるんでIPアドレス教えて下さい！

 回答１
 CNAMEレコードというものがありまして・・・ ここまで言ってもまだ頑なにIPアドレスという人もた
まに© J-Stream Inc. All Rights Reserved.

7

CDNとCNAMEで実際にあったFAQ -2

 質問２
 CNAMEって使った事がないがないので怖いんですが・・・

 回答２
 大丈夫です。そこかしこで使われてます。
 Yahoo/facebookとかでも使われてます、というと大体納得します© J-Stream Inc. All Rights Reserved.

8

CDNとCNAMEで実際にあったFAQ -3

 質問３
 （こちらでCNAME先情報=***.cdn.stream.ne.jp.を教えた後）最後に”.”(ドット)がついてるんですが、これ必要なんですか？

 回答３
 CNAMEレコードの右辺は完全修飾名が必要なので”.”が必要です ただしDNSサービスのWebの管理画面によっては内部的に”.”を自動的に付与する場合があるので要注意。某
国内最大手レジストラの付帯DNSとか、レンサバ業者さんとか。

© J-Stream Inc. All Rights Reserved.

9

CDNとCNAMEで実際にあったFAQ -4

 質問４
 DNSの伝播/浸透って時間かかりますよね？

 回答４
 DNSのTTLを適切に設定していれば、その通りに動作します CDNへの切り替え時には切り替え時間、切り戻し等を考慮し、一時的にTTLを短くしておく事を推奨しています 切り替わり状況を確認したいのであればwhats my
DNS というサイトがおすすめですhttps://www.whatsmydns.net/© J-Stream Inc. All Rights Reserved.

10

CDNとCNAMEで実際にあったFAQ -5

 質問５
 CDNへの切り替え＝DNSの設定変更時ってWebサイトが閲覧出来ない時間が発生しますよね？

 回答５
 発生しません！
DNSの伝播/浸透を誤って解釈？
CDN側もただのリバースプロキシなのでリクエストが発生したタイミングできちんとオリジンからコンテンツを取得します© J-Stream Inc. All Rights Reserved.

11

CDNとCNAMEで実際にあったFAQ -6

 質問６
 1. http://www.sample.jp/hogehoge/
 2. http://www.sample.jp/piyopiyo/
１のみアクセス集中が発生するのでCDN経由で見せたいので、1はCDN経由で、２はオリジンに直接向けたいんですが？

 回答６
 出来ません！
www.sample.jpをCNAMEでCDNに向けるのでサイト全体がCDNに向きます1. 2. のFQDNを分けられるなら対応出来ますもしくは全体をCDNに向けた上で２をCDN側でまったくコンテンツキャッシュしない状態には出来ます（その場合も２の分のトラフィックはCDN側の料金に加算されます）© J-Stream Inc. All Rights Reserved.

12

CDNとCNAMEで実際にあったFAQ -7

 質問７
 CNAMEレコードが設定出来ません！ その１

 回答７
 某S社製のアプライアンスの仕様でCNAMEが設定出来ませんでした・・・
 当時はどーにも出来なくてCDNキャッシュサーバーのIPを全部登録してもらいました（サーバーの障害／メンテ時の迂回/NW距離測定は出来ない）
 （数年前に一度だけあった問い合わせ）© J-Stream Inc. All Rights Reserved.

13

CDNとCNAMEで実際にあったFAQ -8
 質問８
 CNAMEが設定出来ません！ その２
 Naked Domain(Zone Apex/Root Domain/ホスト名なしドメイン)です！
or 委譲してる/MXレコード利用中でCNAMEレコードが設定出来ません）

 回答８
 Naked Domain他ではCNAMEが設定出来ないのでCDNはご利用頂けません 導線確保が目的なら sample.jp を一旦オリジンWebサーバー側にAレコードで向けて、Webサーバー側でwww.sample.jpにリダイレクトする事で対応可能です Naked domainから特定のURLにリダイレクト「だけ」させるサービスもあります

オリジンサーバー

sample.jp

XXX.XXX.XXX.XXX
HTTP
リダイレクトCDN
sample.cdn.jp
CNAME© J-Stream Inc. All Rights Reserved.

エンドユーザー

www.sample.jp14CDNとCNAMEで実際にあったFAQ -9 質問９
 CNAMEが設定出来ません！ その２
 Naked Domain(Zone Apex/Root Domain/ホスト名なしドメイン)です！
（or 委譲してるの/MXレコード利用中でCNAMEレコードが設定出来ません）

 リダイレクトも嫌です！
 短いURLでブラウザのアドレスバーに表示させたい→SEOとか、広告もう打っちゃったとか→単純に見た目（上の会社からの指示が・・・） NakedDomainに関してもCDNでアクセスさせたい→オリジンを外に晒したくない

 回答９
 数年前まで：そんな事を言われても・・・ 最近：なんとか出来る方法があります■参考：Naked DomainがCNAME出来ない理由
RFC1912 (Common DNS Operational and Configuration Errors)の2.4 章CNAME recrodにある以下の規定によります
・CNAMEレコードは他のデータと共存できない(A CNAME record is not allowed to coexist with any other data)
もっと詳しく知りたい方はこちら→ https://tech.jstream.jp/blog/cdn/zone_apex_cdn/© J-Stream Inc. All Rights Reserved.

15

なんとか出来る方法～CDN各社のNaked Domain対応方法～
方法

CDN事業者

１．GSLBへのドメイン登録（Domain Clock）
DomainごとCDN業者に預ける(GSLBへのドメイン登録)
レジストラに登録するNSレコードがCDN業者が払い出したものになる

Akamai (Fast DNS)
CDNextworks (クラウドDNS)

多該当CDN事業者がオプションとして提供

２．IP Anycastで広域負荷分散をする

Imperva Incapsula
Fastly３．CNAME Flatteningを使う（ALIASレコードを使う）

J-Stream CDNext
LimeLight Networks（多分）CloudFlareAmazon CloudFront +Route53→AWS内のみの利用に限定© J-Stream Inc. All Rights Reserved.

※各種情報を元にＪストリーム調べ

16

CNAME Flatteningを使う（ALIASレコードを使う）
 Flatteningは(コンピュータ用語では)展開を意味します。つまり、CNAME
Flatteningとは、「Zone APEX等への設定としてはCNAMEを登録するが、IPアドレスを返す権威DNSサービス」と定義されます。権威DNSサーバの実装としては、次の図のようになります
1. Zone APEX等に対するDNSクエリーを受けとる
2. CNAMEに対するAレコードを検索する
3. その結果(IPアドレス)を受け取る
4. IPアドレスをクライアントに返す■注意点
CDNでは、地理分散のためにクライアントのIPアドレスを元に、CNAMEに対するIPアドレスを返します。
しかし、Flatteningを使用した場合、CDNは、権威DNSサービスのIPアドレスをベースにCNAMEに対するIPアドレスを決定することになり、地理分散の精度が落ちます。
17© J-Stream Inc. All Rights
Reserved.

いわゆるALIASレコードを利用可能なDNSサービス

 DNSサービスの一例
 Dozens
日本製 Gehirn
日本製 CloudFlare “Global Managed DNS”
 AWS Route 53 (AWSサービス内のみ)
 UltraDNS(Apexレコード)

 自力で頑張りたい方 PowerDNS 4.0.0以降はALIASレコードをサポートしています© J-Stream Inc. All Rights Reserved.

18

ALIASレコード設定 サンプル（Dozens） -1

 bassoon.tokyo
 Web設定画面(Dozens https://dozens.jp)© J-Stream Inc. All Rights Reserved.

19

ALIASレコード設定 サンプル（Dozens） -2

 bassoon.tokyo
 dig結果$ dig bassoon.tokyo @ns1.dzndns.com +norec; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> bassoon.tokyo @ns1.dzndns.com +norec;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4378;; flags: qr aa; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:;bassoon.tokyo.

IN

A;; ANSWER SECTION:bassoon.tokyo.
60
bassoon.tokyo.
60
bassoon.tokyo.
60
bassoon.tokyo.
60

IN
IN
IN
IN

A
A
A
A

202.79.241.61
202.79.241.60
202.79.241.70
202.79.241.62;; Query time: 9 msec;; SERVER: 175.41.239.64#53(175.41.239.64);; WHEN: Tue Jun 27 23:59:51 2017;; MSG SIZE rcvd: 95© J-Stream Inc. All Rights Reserved.

20

マルチCDNとDNS(GSLB)© J-Stream Inc. All Rights Reserved.

21

マルチCDNとは？
 コンテンツ配信のパフォーマンスを計測し、複数のCDNから最適なものを自動で選択するマルチCDNサービス<特長>
コンテンツ配信のパフォーマンス状況をリアルタイムに可視化

複 数 の CDN の 中 か ら 最 適 な CDN を自動で選択

グ ロ ー バ ル 企 業 を 中 心 に 、 1,000 社
以上が導入

全 て の CDN や ク ラ ウ ド サ ー ビ ス の パ
フォーマンスを計測・可視化し、障害の発生を把握することができます。さまざまなWebページにスクリプトを埋め込み、実ユーザーからのトラフィックを計測しているため、公平な計測データをご提供できます。

リアルタイムに計測したデータをもとに、あらかじめ設定した基準（最速化・最安化・障害時のバックアップ等）により最適なCDNを選択します。Webサイトの表示速度低下やアクセス障害を防止し、低い離脱率と高いコンバージョンを実現します。

Cedexisは2010年の設立以降、全世界で1,000社以上が導入しています。特にコンテンツの配信量が多く、信頼性が求められるグローバル企業やメディア企業を中心に高い評価を得ています

www.stream.co.jp/service/cdn/cedexis/© J-Stream Inc. All Rights Reserved.

22

マルチCDNの切替方法▶CDNの切り替えは、用途に応じて以下2つの方法があります。
１）DNS （用途：一般WebなどショートセッションでのCDN切り替え）
最適なCDNをDNS(CNAME)で返す。
例：www.example.jp

CNAME

www.example.jp.multi-cdn.jp

CNAME

www.example.jp.cdn-1.jp

２）API （用途：動画配信などロングセッション中のCDN切り替え）
最適なCDNをAPIで返す。
例：https://multi-cdn.jp/api/best-cdn.cgi?www.example.jp

APIwww.example.jp.cdn-1.jp【API切り替えイメージ】

API確認

API確認
CDN-1

API確認

API確認

CDN-2

© J-Stream Inc. All Rights Reserved.

CDN-1

23

マルチCDNのユースケース▶ベンダロックインの排除、CDNの冗長化、一時的な配信強化、地理的分散の強化 などの目的で利用されています。
ユースケース
１ パフォーマンス最適化

概要

レイテンシ、配信速度を基準として、地域別・AS(ISP)別に最速で配信できるCDNを選択します

２ ラウンドロビン

複数のCDNをある割合で使用します。単独CDNでは配信キャパシティが不足する場合や、災害対策に有効です

３ バックアップ

プライマリCDNがダウンした場合に、事前に設定したバックアップCDNを選択します

４ オーバーフロー

プライマリCDNの利用量が一定以上になった場合に、事前に設定したセカンダリCDNを選択します

５ バーストトラフィック

定常的に利用している自社設備の配信帯域が一定以上になった場合に、CDNを利用します

６ 最小コスト費用を優先し、一定条件(最低速度)のもとで最小コストのCDNを選択します

7

国別に使用するCDNを切り替えます。法規制がある場合や配信先規制がある場合、国別切り替え

簡易な地理分散に有効です※切り替えは、複数CDNの場合とオンプレミス/CDNの場合のいずれでも対応可能です© J-Stream Inc. All Rights Reserved.

24

マルチCDN：サービスの一例▶Cedexis Portal
https://portal.cedexis.com/▶計測：”Rader”はどなたでも無償で閲覧可能ですー 統計値の見方は以下をご参照ください
https://tech.jstream.jp/blog/cdn/cedexis-radar/▶負荷分散(GSLB)：“Openmix”は有料です© J-Stream Inc. All Rights Reserved.

25グラフの画面© J-Stream Inc. All Rights Reserved.

26

DNS(GSLB)設定の画面

www.sample.jp
をここにCNAME

最適ＲＴＴ(ユーザーからみてより速いCDNへ)

CloudFront

Fastly© J-Stream Inc. All Rights Reserved.

27

マルチCDNとトラフィックコントロール①▶CDN事業者をシングルで使っている場合▶ 該当FQDNの名前解決をすると大体どの事業者か分かった▶ 基本的にはその事業者のASに対してケアをしておけば良かった(Akamai/Jst等を除く)$ dig www.fujitv.co.jp +norec cname;; QUESTION SECTION:;www.fujitv.co.jp.

当日のみCNAME

IN;; ANSWER SECTION:
www.fujitv.co.jp.
419

IN

CNAME a10729a9b07315883400515ac8c78bf2.cdnext.stream.ne.jp.

$ dig www.nhk.or.jp cname;; QUESTION SECTION:;www.nhk.or.jp. 当日のみ
IN CNAME;; ANSWER SECTION:
www.nhk.or.jp.
300

IN

CNAME www.nhk.or.jp.edgekey.net.

$ dig www.tv-asahi.co.jp cname;; QUESTION SECTION:;www.tv-asahi.co.jp.
当日のみIN;; ANSWER SECTION:
www.tv-asahi.co.jp. 300

IN

CNAME

CNAME nonssl.global.fastly.net.

© J-Stream Inc. All Rights Reserved.

28

マルチCDNとトラフィックコントロール②▶マルチCDNを利用中の場合▶ DNSの名前解決をして出てきた結果のCDN”のみ”を使っているかは分からない＝どこからトラフィックが流入してくるかが判断し辛い▶ トラフィックをどのCDNから流すかは、コンテンツホルダーの気分次第

当日のみ @8.8.8.8$ dig www.accorhotels.com;; QUESTION SECTION:;www.accorhotels.com.

INA;; ANSWER SECTION:
www.accorhotels.com.
786 IN CNAME 2-01-2770-000c.cdx.cedexis.net.
当日のみ
2-01-2770-000c.cdx.cedexis.net. 19 IN CNAME www.accor.com.edgesuite.net.
www.accor.com.edgesuite.net. 4095 IN CNAME a1052.b.akamai.net.
a1052.b.akamai.net. 19 IN A
23.32.241.161
a1052.b.akamai.net. 19 IN A
23.32.241.160$ dig www.accorhotels.com
当日のみ @198.153.192.1;; QUESTION SECTION:;www.accorhotels.com.

IN

名前解決をおこなう
DNS(=一般的にはエンドユーザのISP)によって返答する
CDNが異なるA;; ANSWER SECTION:
当日のみ
www.accorhotels.com.
1862 IN CNAME 2-01-2770-000c.cdx.cedexis.net.
2-01-2770-000c.cdx.cedexis.net. 20 IN CNAME wac.9E15.edgecastcdn.net.
wac.9E15.edgecastcdn.net. 3600 IN CNAME gs1.wac.v2cdn.net.
gs1.wac.v2cdn.net. 1386 IN A
152.195.32.39© J-Stream Inc. All Rights Reserved.

29

まとめ？

 CDNとCNAMEは切っても切れない関係（大変！） Naked Domainも色々な方法でCDN対応出来る

 マルチCDN（複数CDNをさらに上位のGSLBでまとめる）といったサービスも出始めている© J-Stream Inc. All Rights Reserved.

30