DNSの詳細
Domain Name Systemでドメイン名をIPに変換するときに使うサービスだよ
ドメインには階層があるよ
ドメインの一番右から順に上の階層だよ
一番右はトップレベルドメイン(TLD)って言って色々あるよ
TLDにはジェネリックトップドメイン(gTLD)と国コードトップレベルドメイン(ccTLD)の2つがあるよ
gTLD
ドメイン名の目的をユーザーに伝えることを目的としている歴史があるよ
.com :商業目的
.org : 組織
.edu : 教育目的
.gov : 政府
ccTLD
地理的な目的で使われてきたよ
カナダに拠点置くサイトには.caとか.co.ukはイギリスとかね
まあでも最近は、.onlineとか.clubとか.websiteとか色んなTLDあるよ
セカンドレベルドメイン
ドメイン名を登録するとき、セカンドレベルドメインは63文字に制限されてるよ
a-zと0-9だけ使えるよ
サブドメイン
セカンドドメインの左側にあるよ
ピリオドで区切られてるよ
制限はセカンドレベルドメインと同じだよ
ちなみにハイフンで始まったり終わったりしたらダメだよ
ちなみに全体で253文字以下に抑える必要あるよ
DNSレコードの種類
A Record
IPv4アドレスに解決するよ
AAAA Record
IPv6アドレスに解決するよ
CNAME Record
別のドメイン名に解決されるよ
twitter.comって打ってx.comになる的な?
MX Record
クエリしてるドメインの電子メールを処理するサーバーのアドレスに解決されるよ
たとえば、tryhackme.comのMXレコード応答は、alt1.aspmx.l.google.comのようになるよ
優先フラグも付属しているよ
サーバーを試す順序をクライアントに伝えて、メインサーバーがダウンして、バックアップサーバーに電子メールを送信する必要がある場合に最適だよ
TXT Record
テキストベースのデータを保存できるフリーテキストフィールド
一般的なものの中には、ドメインに代わって電子メールを送信する権限を持つサーバーをリストすること
スパムやなりすましメールとの戦いに役立つよ
サードパーティのサービスにサインアップするときに、ドメイン名の所有権を確認するためにも使用できるよ
DNSリクエストの流れ
ローカルキャッシュの確認
コンピュータがローカルキャッシュを確認し、最近の記録を探す
記録が見つかればそこで終了
リカーシブDNSサーバーへのリクエスト
ローカルキャッシュに記録がない場合、リカーシブDNSサーバーに問い合わせる
リカーシブDNSサーバーも自身のキャッシュを確認
キャッシュに記録があれば結果を返す
記録がなければ次のステップへ進む
ルートDNSサーバーへの問い合わせ
リカーシブDNSサーバーがルートDNSサーバーにリクエストを送信
ルートDNSサーバーがリクエストされたトップレベルドメイン(TLD)を特定
TLDサーバーにリダイレクト
トップレベルドメイン(TLD)サーバーへの問い合わせ
TLDサーバーが権威DNSサーバーを特定
例: www.tryhackme.com の場合
TLDサーバーが kip.ns.cloudflare.com と uma.ns.cloudflare.com を返す
権威DNSサーバーへの問い合わせ
権威DNSサーバーがリクエストされたドメインのDNSレコードを提供
リカーシブDNSサーバーに返す
キャッシュと最終応答
リカーシブDNSサーバーが結果をTTL(Time To Live)期間だけキャッシュ
コンピュータに最終結果を返す
nslookupとは
DNSクエリを手動で実行するためのコマンド
特定のDNSサーバーに問い合わせができる
基本的な使い方
例: nslookup www.google.com 8.8.8.8
www.google.com のDNS情報をGoogle Public DNS (8.8.8.8) に問い合わせる
nslookupの主なオプション
使用するDNSサーバーを切り替える
例: server 1.1.1.1
クエリのDNSレコードタイプを指定する
例: set type=A
Aレコード(IPv4アドレス)を取得
例: set type=MX
メールエクスチェンジ(MX)レコードを取得
DNSサーバーの応答を待つタイムアウトを設定
例: set timeout=10
応答を10秒間待つ
再試行回数を設定
例: set retry=3
応答がない場合、3回まで再試行
set debug
詳細なデバッグ情報を表示する
例: set debug
DNSクエリとレスポンスの詳細情報を確認可能
通信に使用するポート番号を指定
例: set port=5353
ポート5353でDNSクエリを送信
exit
nslookupモードを終了する
nslookupインタラクティブモード
コマンドをその場で入力して操作可能
nslookup とだけ入力して開始
インタラクティブモード中にオプションを使用できる
例: server 8.8.8.8
例: set type=TXT