Internet Week 2016 D3 DNS DAY で話したネタ。
コンテンツプロバイダにおける権威DNS/GSLB 運用について簡単に説明した資料。
コンテンツプロバイダから見た権威DNSサーバ2016年12月1日株式会社DMM.comラボ高嶋隆一Internet Week 2016 D3 DNS DAYVersion 12/01
View Slide
権威DNSサーバの運用における✓ 想定されるユースケース✓ ユースケース毎に用いられる実装✓ ユースケース毎の注意点を、コンテンツプロバイダの視点から説明し、議論する事!1本セッションの目的
2自己紹介イマココ →
3サービス提供用ドメイン名の利用のされ方から考えてみる
4よくあるwebサービスのアーキテクチャwww.example.comの権威DNSサーバ=GSLB(*1)www.example.comのSLB(*2)www.example.comの実サーバセッション振分けセッション振分けセッション振分けexample.comの権威DNSサーバ(*1)GSLB=Global Server Load Balancing:クライアントによって返すA/AAAAの内容を変える事により、複数の実サーバを持たせる負荷分散、冗長化の仕組み(*2)SLB=Server Load Balancing:UDP/TCP等のセッションを複数の実サーバに振分ける負荷分散、冗長化の仕組み所謂普通の権威DNSサーバ。GSLBを使うため、このケースではwwwのNSをGSLBに移譲wwwの負荷分散、冗長を行う為、A/AAAAに複数のレコードを登録障害時に切り外す為、A/AAAA のTTLが短いのは許してorzNS移譲A/AAAA振分け
5名前解決の動きキャッシュDNSwww.example.comの権威DNSサーバ=GSLBwww.example.comのSLBwww.example.comの実サーバセッション振分けセッション振分けセッション振分けwww.example.comのIPアドレスは?1www.example.comのIPアドレスは?3www.example.comの権威DNSを教える2www.example.comのSLBのうち、どれかをA/AAAAとして返答4example.comの権威DNSサーバ
6よくあるwebサービスのアーキテクチャwww.example.comの権威DNSサーバ=GSLBwww.example.comのSLBwww.example.comの実サーバセッション振分けセッション振分けセッション振分けexample.comの権威DNSサーバ今回ユースケース紹介対象
7ユースケースその1:example.com の権威DNSサーバ
自社データセンタ8example.comの権威DNSサーバよくあった(?)ちょっと昔のケースゾーン転送ゾーン情報キャッシュDNSadmin# vi example.com.zone# rndc reloadslavemasterns1.example.com ns2.example.comゾーン情報
自社データセンタ9example.comの権威DNSサーバns1.example.comゾーン転送ゾーン情報キャッシュDNSadmin# vi example.com.zone# rndc reloadオリジナルデータを持つサーバが直接クエリにも答える為メンテしづらい基本的には admin(root) がゾーン情報を編集する事になり、権限分割するにはサブドメインを切るしかないSLB等の冗長化を未使用の為、1台のNSのメンテ、障害がクライアント待ち時間増加に繋がるオ ン プ レ だ とDoS/DDoS が怖いns2.example.comゾーン情報slavemaster
10example.comの権威DNSサーバ解決しようとするとこんな感じshadowmasterslaveSLBゾーン転送ns1.example.com ns2.example.com実サーバが一台落ちてもダウンタイムが無い構成。ある程度のDoS/DDoSも防御冗長、負荷分散を考慮した複数の実サーバクエリに答えるサーバとデータを編集するサーバを分離し、後者は隠蔽権限分割を可能にする為の仕組みやそれらを容易にするAPI、やUIを具備
今時のハードウェアアプライアンスならどれでもよいが、Source IPアドレス毎のTCP/UDPのレートリミットができるとなおよい複数の実装(例:BIND9+NSD)にしておく。負荷に応じてスケールアウトできる様な構成にしておくとなおよい権限分離、API、UIが必要な為、選択肢としては✓ PowerDNS等の作り込みを自作でがんばる✓ 売り物のアプライアンスを買うの2択。後者はこの用途であればVM版でもよいのでコストはある程度抑えられる。11example.comの権威DNSサーバ実装shadowmasterslaveSLB
権威DNSサーバの機能まるごとをRoute53、AzureDNS、Akamai Fast DNS等のサービスを買ってしまうのも手。自然とDDoS対策も入ってくる。ただ、クラウドDNSサービスやクラウドそのものがDDoS/不具合等で落ちる事例もあるので、NS毎にバラす等の考慮も必要ゾーン編集機能も、権限分離、API、UI等豊富に提供されている。12example.comの権威DNSサーバ今時の(?)実装shadowmasterslaveSLB
13ユースケースその2:www.example.com の権威DNSサーバ=GSLB
自社DC#A14GSLB昔ながらのケース キャッシュDNSns1-www.example.com ns2-www.example.com自社DC#B 自社DC#CSLB+実サーバGSLB
自社DC#A15GSLB最近は... キャッシュDNSns1-www.example.com ns2-www.example.com自社DC#BSLB+実サーバGSLBクラウド#A
16GSLB最近は... キャッシュDNSns1-www.example.com ns2-www.example.comSLB+実サーバGSLBクラウド#A
17GSLBこういうのもなくはないです。 キャッシュDNSns1-www.example.com ns2-www.example.com自社DC#B 自社DC#CSLB+実サーバGSLB
昔ながらのハードウェアプライアンスLBを利用した形。最近はベアメタル版やVM版もある為、スペックが絞れればリーズナブルにもなる。gdnsdはDNS負荷分散、ヘルスチェックを含めた実装として最近hot。一般的な権威DNSサーバとヘルスチェックを自己実装して連携してできなくもない。Amazon Route53、Akamai Global TrafficManagement、Azure Traffic Manager等、各社出揃ってきている。WebフロントをクラウドやCDNで使う場合には連携が強力でステキ。18GSLB実装実装クラウドサービスLBアプライアンスオープンソース
19Thank you!