CDNI-redirection [ISOC-JP event, 2016/03/24]

Post on 22-Jan-2018

300 views 1 download

Transcript of CDNI-redirection [ISOC-JP event, 2016/03/24]

draft-ietf-cdni-redirection-17の概要 “Request Routing Redirection interface for CDN Interconnection”

高橋健志 情報通信研究機構

2016/3/23 1

ISOC-JP IETF Internet Draft読み込みWorkshop

Agenda

1. 本発表のMotivation

2. CDNとは

3. 本ドラフトのscope

4. インターフェースの定義

5. Loopの検知・防止

6. Security Consideration

2016/3/23 2

本発表のMotivation

• 本Workshopは、自由意思で特定のドラフトを読みこみ、発表するもの

• 日本でのIETFの活動をより盛り上げていきたい

• IETF内の、より広い分野の知識に触れる一つのきっかけ – 幅広い知識を持ちつつ、一部自分の専門領域を深めていきたい – そのため、自分の専門領域外のdraftを読みたい

• IETF Secdir Reviewの仕事をより本気で実施するのにも活用

– IETF Secdir Reviewとは、IETFのすべてのドラフトについて、担当制でreviewし、セキュリティの観点からコメントをする業務

– 今回はタイミングよくアサインされたdraftを選択

• 自分の理解が不足している点、また新たな視点について、フィードバックを頂ければ幸いです

3

Agenda

1. 本発表のMotivation

2. CDNとは

3. 本ドラフトのscope

4. インターフェースの定義

5. Loopの検知・防止

6. Security Consideration

2016/3/23 4

CDNとは

5 Source: http://viral-community.com/blog/cdn-5615/

• Contents Delivery Networkの略で、ウェブコンテンツを配信するのに最適化されたネットワークのこと

• Webサイトにある画像や動画・CSSなどの静的コンテンツを、Webサイトが管

理されている「サーバー」とは、別のサーバーにキャッシュし、そのサーバーが、代わりに配信

• 負荷が分散され、Webサイトの表示速度の向上にもなる

主要CDNサービス

• Akamai-Technologies – Google、amazon、ebay、yahooなども活用 – 世界中のインターネット通信量の15-30%を取り仕切っている模様

• Amazon: AWS, Cloud Front

– 従量課金制 – 試用枠有

• Cloud flare

– 無料 – 有料版有

6 Source: http://viral-community.com/blog/cdn-5615/

Agenda

1. 本発表のMotivation

2. CDNとは

3. 本ドラフトのscope

4. インターフェースの定義

5. Loopの検知・防止

6. Security Consideration

2016/3/23 7

Terminology

8

Request Routing system

Source: RFC6707, RFC7337

• User Agentからコンテンツ配信要求を受けるCDNの持つべき機能

• 周辺のCDNの情報を収集し、適切なCDNにユーザをredirectする

Request Routing interface

• どのCDNがエンドユーザのリクエストに対応すべきかを決定するオペレーション

Content Delivery Network

• User Agentにより効率的にコンテンツを配信するために、Layer 4から7のレベルでネットワークの構成要素が連携するネットワークインフラ

• 通常は、Request Routing system、配信システム(サロゲートを含む)、ログシステム、そしてCDN制御システムから構成される

本draftのscope

9

CDNI Request Routing interface

Asynchronous interface

Synchronous interface

• dCDNが利用 • uCDNへのAdvertisementを実施

• uCDNが利用 • dCDNにリクエストを投げて実際に

協力してユーザにコンテンツを配信

本ドラフトのscope

CDNI: CDN Interconnection dCDN: downstream CDN uCDN: upstream CDN Source: draft-ietf-cdni-redirection-17, RFC7336

Protocolの概要

10

• Redirection Targetへの通信はHttp/Httpsベース • 具体的には、DNSを用いた方式とHTTPを用いた方式が存在 • 両方式でも同一のHTTPインターフェースを利用 • RI Interfaceが利用するMIME Media Typeはapplication/cdni [RFC7736]

本ドラフトのscope

Agenda

1. 本発表のMotivation

2. CDNとは

3. 本ドラフトのscope

4. インターフェースの定義 a. RI request b. RI response

5. Loopの検知・防止

6. Security Consideration

2016/3/23 11

本プロトコルが定義するメッセージ

12

dns or http

cdn-path

max-hops

dns or http

scope

error

cdn-path

request

response

DNSベースのRedirection request : syntax

13

dns

cdn-path

max-hops

requ

est

resolver-ip

qtype

qclass

qname

c-subnet

dns-only

UAのDNSレゾルバのIPアドレス

上記レゾルバが送ったDNSクエリーのタイプ

上記レゾルバが送ったDNSクエリーのクラス (通常はIN)

問い合わせられたFQDN

UAのIPアドレス[CIDR形式]

DNS redirectionのみ利用を許可するフラグ

Request routingに参加しているCDN Provider IDのリスト

requestを転送するホップ数の上限

DNSベースのRedirection request: 例

14

HTTPベースのredirection request: syntax

15

http

cdn-path

max-hops

c-ip

cs-uri

cs-method

cs-version

cs-(<headername>)

requ

est

UAのIPアドレス

UAが要求しているURI

UAが要求しているHTTP method

UAが要求しているHTTPバージョン番号

その他のHTTP headerフィールド情報

Request routingに参加しているCDN Provider IDのリスト

requestを転送するホップ数の上限

HTTPベースのredirection request: 例

16

Agenda

1. 本発表のMotivation

2. CDNとは

3. 本ドラフトのscope

4. インターフェースの定義 a. RI request b. RI response

5. Loopの検知・防止

6. Security Consideration

2016/3/23 17

本プロトコルが定義するメッセージ

18

dns or http

cdn-path

max-hops

dns or http

scope

error

cdn-path

request

response

DNSベースのRedirection response: syntax

19

resp

onse

dns

error

cdn-path

rcode

name

a

aaaa

cname

ttl

scope

DNSのレスポンスコード [RFC6895]

Responseが回答する対象であるFQDN

RTのIPv4アドレス

RTのIPv6アドレス

RTのFQDN

DNS responseのTTL

Request routingに参加しているCDN Provider IDのリスト

(後述)

(後述)

20

DNSベースのRedirection response: 例1

21

DNSベースのRedirection response: 例2

HTTPベースのRedirection response: syntax

22

resp

onse

http

error

cdn-path

sc-status

sc-version

sc-reason

cs-uri

sc-(location)

sc-(<headername>)

scope

UAに返却するStatus行のStatus-code

上述のStatus行のHTTP-version

上述のStatus行のReason-Phrase

UAが要求しているURI

UAに返却するLocationヘッダの内容

その他のHTTP headerフィールド情報

(後述)

(後述)

Request routingに参加しているCDN Provider IDのリスト

HTTPベースのRedirection response: 例

23

scopeキーの役割

24

dns or http

scope

error

cdn-path

response iprange

scopeキーの活用例1

25

scopeキーの活用例2

26

errorキーの役割

27

dns or http

scope

error

cdn-path

response error-code

reason

エラーコード

28

Code Reason 100 <reason> [generic informational error code] 400 <reason> [generic error code for uCDN errors] 500 <reason> [generic error code for dCDN errors] 501 Unable to retrieve metadata 502 Loop detected 503 Maximum hops exceeded 504 Out of capacity 505 Delivery protocol not supported 506 Redirection protocol not supported

errorキーの活用例 (DNS)

29

errorキーの役割 (HTTP)

30

Agenda

1. 本発表のMotivation

2. CDNとは

3. 本ドラフトのscope

4. インターフェースの定義

5. Loopの検知・防止

6. Security Consideration

2016/3/23 31

Loopの検知・防止に向けた工夫

• cdn-pathをチェック – 各CDNは送信・転送するすべてのRI requestのcdn-path keyにCDN

provider IDを埋め込まなければならない – RI requestを受信したdCDNは、cdn-pathの中に自身のCDN provider

IDが含まれているかどうかをチェックし、もし含まれていたらそのrequestを棄却する

– その際には、error code 502番を用いたRI responseを返信

• max-hopsをチェック – cdn-pathの中に含まれているCDN Provider IDの数が、max-hopsで

指定されている値より大きい際には、requestを転送してはならない – その際には、error code 503番を用いたRI responseを返信

32

Agenda

1. 本発表のMotivation

2. CDNとは

3. 本ドラフトのscope

4. インターフェースの定義

5. Loopの検知・防止

6. Security Consideration

2016/3/23 33

Security Consideration

• CDNI RIはTLSをサポートしなければならない • 必要なセキュリティ要件により、ユーザがTLSの利用を決

定するが、最終的には、dCDNとuCDNの双方にTLSは利用されるべき

34

Authentication, Authorization, Confidentiality, Integrityの確保

Privacyへの 配慮

• RIの利用はプライバシー情報の受け渡しが発生 – RI requestにはUser Agentが送信した元々のリクエ

スト情報が含まれている (User AgentのIPアドレス、要求URLなど)

– RI responseにはdCDNの情報が含まれている • TLSを利用することにより、上記の問題にも対応可能 • ちなみに、RIの利用により、不必要な情報漏洩は減少

– RIを利用しなくとも、redirectionをすると決定したら、User AgentのIPアドレス情報などはdCDNに伝わる

– RIを利用すると、redirection対応できないdCDNにこれらの情報が伝えられることはない