Upload
shohei-kobayashi
View
814
Download
1
Embed Size (px)
DESCRIPTION
社内勉強会「はじめてのDNS」で発表した資料です。
Citation preview
はじめてのDNS小林 翔平
Twitter、Facebook、Github、Qiita: @srockstyle Blog:http://blog.srockstyle.com/
説明する人
Shohei Kobayashi@srockstyle
Server,Backend Engineer
注:スライド内のIPアドレスは全て適当です。 !
決してDOS攻撃や悪用はしないでください。
• DNSとネットワークの話
• 名前解決の仕組み
• DNSで起こりうるトラブルについて
• まとめ
アジェンダ
DNSって? (Domain Name Service)
その前に ネットワークの話
ネットワークはコンピュータの集合体
それぞれコンピュータが持つ住所を「IPアドレス」と言います。 これがないと、コンピュータ同士の通信ができません。
だけどインターネットはもっと複雑
住所となるIPアドレスにも種類が有ります。 「グローバルIPアドレス」 「ローカルIPアドレス」
グローバルIPアドレス これがインターネットの住所
グローバルIPアドレス
• IANA&各国のNICという組織が管理
• インターネットでやりとりするには絶対必須
• これがないとサーバにたどりつけないよぉふぇえ
例:222.223.24.2
さっきの例だとこうなる
グローバルIPがふられているネットワーク =グローバルネットワーク
ローカルIPがふられているネットワーク =ローカルネットワーク
内側と外側を区別するために
なんて呼びます
さっきの例だとこうなる
前置き終わり
じゃあDNSってどこで使うの? グローバルIPがあれば、
そのままでいいんじゃないの? !
インターネット使えるでしょ?
ここで疑問
ではここでDNSが無かった場合を想定した弊社営業A川のメールを見てみましょう
[[email protected]]のメール
株式会社×× ご担当社様
お世話になっております。マインドパレットA川です。
弊社のHPはhttp://222.123.56.5/です。
もしよければご参照ください。
以上、よろしくお願いいたします。
============
株式会社マインドパレット
http://222.123.56.5/
■女の子のための写真共有ソーシャルネットワーク『Snapeee』
公式サイト http://222.123.56.6/
PC版 http://222.123.56.7
これを見た取引先の反応
な、なんだこのわかりづらい数値の羅列は…… なにがいったいよろしくなんだ? この署名はいったいなんなんだ?
わかりづらい!
DNSはこれを わかりやすくします。
[[email protected]]のメール
株式会社×× ご担当社様
お世話になっております。マインドパレットA川です。
弊社のHPはhttp://mindpl.co.jp/です。
もしよければご参照ください。
以上、よろしくお願いいたします。
============
株式会社マインドパレット
http://mindpl.co.jp/
■女の子のための写真共有ソーシャルネットワーク『Snapeee』
公式サイト http://snape.ee/
PC版 http://www.snapeee.net/
わかりやすい!
DNSのお仕事 mindpl.co.jp = 222.123.56.6グローバルIPアドレスとドメインと呼ばれるURLを結びつけ、
インターネットを使うときドメインでアクセスできるようにすること!
この動作を「名前解決」と呼びます
日本よ、これがDNSだ!
第二章 名前解決の仕組み
ローカルネットワークのPCが mindpl.co.jpというアドレスで サーバにアクセスしたい場合
つまりこういう場合
DNSサーバがあります
ドメインがなければドメインを取得します
ドメインを扱うDNSサーバをドメイン取得時に指定
mindpl.co.jp を管理するDNSサーバは
222.25.34.4
この時点では名前解決無理なので サーバにふられたグローバルIPを指定
これでmindpl.co.jpでアクセスするとまず 222.25.34.4のサーバに名前解決の
リクエストが飛ばされます !
(ちなみに本来ブラウザでアクセスしたいのは 222.25.34.3の方)
もちろんこの時点ではなにも返りません
設定できるレコードと役割
• Aレコード:IPアドレスをドメインと結びつける
• MXレコード:優先されるメールサーバを設定する
• CNAMEレコード:ドメインの別名を割り振る
• NSレコード:ドメインの情報をもつDNSを指定
Aレコード設定!
DNSサーバにmindpl.co.jpのIPアドレスを聞きにいきます
DNSサーバからmindpl.co.jpのIPアドレスが返されます
これで目的のサーバにmindpl.co.jpでアクセスできる!
http://mindpl.co.jp/でHPにアクセスできます!
Mission Complete!
疑問とか問題点
Q:名前解決の処理が集中した場合サーバ落ちるしレスポンス遅くなるんじゃない?
A:落ちますし遅くなります。
そこでDNSは二つのシステムに分離されています
DNS Contents Server DNS Cache Server
DNS Contents Server DNSの情報のマスターを持っているサーバ
!
DNS Cache Server DNSの情報をDNS Contents Serverから持ってきてキャッシュするサーバ
あちこちにDNS Cache Serverをたてることで、 DNSは負荷を軽減しています。
あとはブラウザやPCが勝手にDNSの情報をキャッシュしたりします。
これで目的のサーバにDNSに毎回直接問い合わせなくても キャッシュを参照してmindpl.co.jpでアクセスできます!
Cache?
設定を間違うと辛いよ
設定を間違うと辛い
DNSのキャッシュについて
TTL(キャッシュ生存期間) を設定します!
!
TTLはTime To Liveの略
TTLとは?
TTLが切れるとDNS Content Serverに マスターデータを取得に行きます。
Q:名前解決できなかった時のキャッシュはどうなるの?
A:それもキャッシュされます
存在しない名前解決はネガティブキャッシュとして保存されます!
TTLが切れるまでその名前解決はもちろんできない
→なので存在しないURLの名前解決は気をつけよう
補足:ネガティブキャッシュのTTL
他のAレコードやMXレコードに比べて、短く設定するのが常識です! by サーバ管理者
つまり、DNSの浸透待ちとは……
インターネット全体にある対象ドメインのTTLが全て切れるの待ちということです。
この辺りの仕組みを簡単に提供してくれる AWS Route53は本当に素晴らしいですね
まとめ
• DNSはグローバルIPとドメインを結ぶ仕事だよ
• DNSサーバはDNSコンテンツサーバとDNSキャッシュサーバがあるよ。
• DNSにはTTL(キャッシュ生存期間)があって、その設定はきちんとしようね。
ご清聴ありがとうございました