じゃあ、おうちで学べる

本能を呼び覚ますこのコードに、君は抗えるか

DNSでクライアントが使うコマンドをまとめてみた

基本用語

TCP/IPでは機械同士の通信の為にIPアドレスを使用します。しかし、数値であるIPアドレスは人間にとって大変扱いにくいので、コンピュータにホスト名を設定し、ホスト名で通信出来るようにIPとホスト名を紐付けるのがDNS(Domain Name System)です。

名前解決(ホスト名⇔IPアドレス

ホスト名からIPアドレスを求めることを正引き

IPアドレスからホスト名を求めることを逆引きといいます。

FQDN(完全修飾ドメイン名)

FQDNはコンピューターに割り振られた固有のホスト名(www.)とそのホストが所属しているネットワーク上の区分を表すドメイン名(hatenablog.com)に分かれています。

ゾーン

DNSサーバが管轄をもつドメインの範囲です。

コマンド

nslookup

ドメイン名からIPアドレスを調べたりするコマンドでずっと使われている.

例では http://syu-m-5151.hatenablog.comを調べてみた。(2016/2/10現在)

~$nslookup http://syu-m-5151.hatenablog.com
Server: 127.0.1.1
Address: 127.0.1.1#53

Non-authoritative answer:
Name: http://syu-m-5151.hatenablog.com //ドメイン名と
Address: 54.199.221.172         //IPアドレスが紐づいているのが分かる

 

 

host

DNSサーバーを使ってホストやドメインに関する情報を表示。

-v :コマンドで詳細表示

例では実際にhttp://syu-m-5151.hatenablog.comを調べてみた!!

host -v http://syu-m-5151.hatenablog.com
Trying "http://syu-m-5151.hatenablog.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22014
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;http://syu-m-5151.hatenablog.com. IN A

;; ANSWER SECTION:
http://syu-m-5151.hatenablog.com. 46 IN A 54.199.221.172 //Aレコードで正引きしていることが分かる

;; AUTHORITY SECTION:
hatenablog.com. 2039 IN NS ns-1997.awsdns-57.co.uk.
hatenablog.com. 2039 IN NS ns-206.awsdns-25.com.
hatenablog.com. 2039 IN NS ns-562.awsdns-06.net.
hatenablog.com. 2039 IN NS ns-1380.awsdns-44.org.

;; ADDITIONAL SECTION:
ns-206.awsdns-25.com. 49942 IN A 205.251.192.206
ns-562.awsdns-06.net. 49347 IN A 205.251.194.50
ns-1380.awsdns-44.org. 49352 IN A 205.251.197.100
ns-1997.awsdns-57.co.uk. 49347 IN A 205.251.199.205

Received 267 bytes from 127.0.1.1#53 in 9 ms
Trying "http://syu-m-5151.hatenablog.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19188
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;http://syu-m-5151.hatenablog.com. IN AAAA

;; AUTHORITY SECTION:
hatenablog.com. 286 IN SOA ns-1997.awsdns-57.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

Received 134 bytes from 127.0.1.1#53 in 6 ms
Trying "http://syu-m-5151.hatenablog.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37568
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;http://syu-m-5151.hatenablog.com. IN MX

;; AUTHORITY SECTION:
hatenablog.com. 286 IN SOA ns-1997.awsdns-57.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

Received 134 bytes from 127.0.1.1#53 in 6 ms

 

 他にもありとあらゆる情報が入っているのでぜひ、いろんなページで使って観察してみてください。面白いです。

 

dig

digコマンドは詳細な情報を得ることの出来るコマンドです。

出力はhost -v とあまり変わりないですが面白いオプションがたくさん使えるのとクエリタイプが指定できるので(host コマンドも-tで指定出来る)是非、詳しく調べてみてください。

簡単なオプション

-x 逆引きコマンド

-p ポート番号の指定

 

最後に

DNSはセキュリティや設定が煩雑で面倒で外部に委託することが多いとは思いますが(学生意見)、コマンドや原理を知るのは大切だと思うのでどんどん調べてってください。弊学、学内ローカルのDNSは大変簡単に狂わせる設定になっているのでときどき不安になります。