DNS 名前解決とは?
- 2017.04.15
- DNS
- Beginner講座, DNS
どうも、Miyaです。
私は高校、大学ともに情報学部で教育を受けてきましたが、DNSを理解できたのは社会人になってからです( ̄∇ ̄)笑
テキストから勉強することも大切だと思うのですが、実際のものに触れて動作を目で確認することが何よりも大切だと思います。
本記事では、DNSによる名前解決の動きを解説するとともに、実際に動作を確認しながら進めていきたいと思います。
簡単な操作ですので、よければ手を動かしながら読んでいただけばと思いますm(_ _)m
インターネットへの名前解決
まずは、身近なところから説明したいと思います。
今の時代、スマホの普及率がぐんと上がり、常日頃からインターネットを利用している思います。
インターネットを利用するときに、ブラウザのアドレスバーにはサイトのURLを入力しますよね。
上の例で言えば、microsoft.comというホスト名を持つサーバの/ja-jpというディレクトリを参照しています。
イメージはこんな感じです。
まずは、ブラウザからURLを入力してページが表示されるまでの間、コンピュータは何をしているのか?というところ理解しておいて下さい。
ページにアクセスする時はIPアドレスを使う
ブラウザにURLを入力して、ページにアクセスするために、microsoft.comに対するIPアドレスをDNSから受け取り、そのIPアドレスからページにアクセスしています。
ここでは、IPアドレスについて深く言及しないですが、コンピュータの世界は2進数です。
つまり、コンピュータの住所を表すのはmicrosoft.comといった文字列ではなく、192.168.10.10などといったIPアドレスです。
試しに、コマンドプロンプトから下記コマンドを実行してみると、microsoft.comに対するIPアドレスが返ってきます。
1 |
nslookup microsoft.com |
いくつか、IPアドレスがありますが、そのうちのどれでも良いのでブラウザのアドレスバーに打ち込んでみましょう。
証明書エラーが表示されますが、そのまま進めると、www.mirosoft.comへとリダイレクトし、ページが表示されると思います。
インターネットへの名前解決フロー
名前解決のフローをもう少し詳しくみていきましょう。
これまでを例に挙げると、名前解決は以下のような手順で行われます。
- 自宅のルータ兼DNSであるBuffaloに問い合わせ
- Baffaloはmicrosoft.comを知らないので、ルートDNSサーバで.comDNSサーバの場所を照会
- Baffaloは.comDNSサーバでmicrosoft.comDNSサーバの場所を照会
- Baffaloはmicrosoft.comDNSサーバでwww.microsoft.comのIPアドレスを照会
- Baffaloにwww.microsoft.comのIPアドレスを返却
ただ、ページにアクセスするだけなのに、面倒臭くね!?( ̄▽ ̄;)
そこで、クライアント側では、いちいち場所を聞いていては効率が悪いので、ローカルに情報をキャッシュします。これをリゾルバキャッシュと呼んでいます。
下記コマンドで、その内容が見れるので是非お試しください。
1 |
ipconfig /displaydns |
例えば、同じサイトにアクセスする際に、最初の1回目は少し時間がかかるけど、2回目以降は早かったりしますよね?
逆に、サイトに繋がらない!って時は、このキャッシュを/flushdnsオプションでクリアすると解決したりします。
クライアントが名前解決する順番
次に、クライアント側の名前解決する順番についてご紹介したいと思います。
また、本セクションではWindows端末の名前解決の順番であるため、OSによって多少異なる点があるのでご注意を。
クライアントの名前解決には、以下の順序によって行われます。
- リゾルバキャッシュ
- hostsファイル
- DNSサーバ
- WINSサーバ(NetBIOS)
- Lmhosts
リゾルバキャッシュとDNSサーバに関しては、ご理解頂けると思うのですが、New単語が出てきましたね…。
hostsファイルとは?
hostsファイルとは、OSのファイルシステムの一つで、ホスト名とIPアドレスの対応関係を記述したテキストファイルのことを指します。
Windowsであれば、[C:¥Windows¥System32¥Drivers¥etc¥hosts]にモノがあるので開いてみましょう。
では、試しにwww.yahoo.co.jpのIPアドレスを実在しないIPアドレスにしちゃいましょう。
書き方ですが、IPアドレス[Tab]ホスト名になります。
書き換えたら、www.yahoo.co.jp宛にpingしてみましょう。
※念のため、リゾルバキャッシュをクリアしておきましょう。
www.yahoo.co.jpへの通信が1.1.1.1へ行われているのが確認できますね。
もちろん、1.1.1.1のコンピュータがいないので、タイムアウトエラーが返っていますね。
ちなみに、hostsを書かなかった場合は、しっかりpingは通ります。
NetBIOS、Lmhostsとは?
WINS(Windows Internet Name Service)サーバとは、今ではあまり使われていない名前解決サーバの一種です。
WINSサーバでは、DNSとは異なり、NetBIOSと呼ばれる名前に対するIPアドレスの対応関係を管理します。
NetBIOSとは、単一のコンピュータ名のことを指します。
例えば、contoso.comというドメインにホスト名がADDCというコンピュータが存在したとします。
この場合、DNSではADDC.contoso.comというFQDNという完全修飾ドメイン名に対応したIPアドレスを管理しますが、WINSサーバでは、NetBIOS名であるADDCに対応したIPアドレスを管理するということです。
Lmhostsは、hostsのNetBIOS名を使ったver程度の認識で大丈夫です( ̄∇ ̄)笑
いかがでしたか?
普段、何気なくネットサーフィンしている裏側で結構壮大な処理がなされているんですねぇ
今回は、名前解決のフローをご紹介しましたが、次回はDNSサーバについて詳しくご紹介します。
それでは、良いWindows Serverライフをっ♪
スポンサーリンク
-
前の記事
AADConnect stopped-deletion-threshold-exceeded エラーの対処 2017.04.13
-
次の記事
Skype for Business Online Grant-CsConferencingPolicy ポリシー一覧 2017.04.18