0
0

自宅環境のWindows Server 2022を使ったDNS構築と名前解決の技術検証

Last updated at Posted at 2024-09-13

はじめに

実務で社内/社外DNSのフォワード設定やゾーンファイルの削除・復元を検証した際、多くの技術的な課題に直面し、案件の進捗が悪く、上司に詰められる日々が続きました(笑)

納期までに間に合いそうになかったため、帰宅後も自宅のDNSサーバーで動作確認や知識整理を行いました。

QiitaにはBINDの情報が多く、Windows Serverの情報が少ないため、今回は自分の検証内容を記事にまとめます。

前提条件

今回の検証を進めるにあたり、以下の環境が必要です。

検証環境
サーバー環境:
VirtualBox上で稼働しているWindows Server 2022を使用

クライアント環境:
VirtualBox上で稼働しているWindows 10端末(評価版)を使用

DNSサーバーの役割:
AD統合DNSを使用し、内部ネットワークの名前解決を行う

使用ミドルウェア:
Windows ServerのDNS機能を採用

ネットワーク:
サーバーとクライアントが同一のローカルネットワーク内に接続されていること

自宅のVirtualBox環境

image.png

※検証には実行中の「Windows Server 2022」「Windows 10端末」「AlmaLinux」を使用します。

DNSと名前解決について

DNS(Domain Name System)と名前解決について、私なりに解説します。

DNSとは?

DNS(Domain Name System)は、インターネットやネットワークで使用される 「ドメイン名」(例: www.example.com)と 「IPアドレス」(例: 192.0.2.1)を相互に変換するシステムです。

IPアドレスはコンピュータやサーバーが通信するための住所のようなもので、ドメイン名は人が覚えやすい名前です。

名前解決とは?

名前解決は、「ドメイン名」を「IPアドレス」に変換するプロセスです。

例えば、ブラウザに www.google.com と入力すると、まずそのドメイン名を対応するIPアドレスに変換し、そのIPアドレスに接続します。この変換を行うのがDNSサーバーです。

DNSの仕組み

DNSシステムは階層構造を持っており、ドメイン名の末尾から順に名前解決を行います。

image.png
引用画像:https://xtech.nikkei.com/it/article/COLUMN/20060927/249162/zu2_2.jpg

世界中には、様々な種類のDNSサーバーが存在しています。どれも興味深いですね。

ルートDNSサーバー:
インターネットの最上位に位置し、ドメイン名の最初の部分(トップレベルドメイン: .com や .jp)を管理するサーバーへ接続します。

TLD(トップレベルドメイン)DNSサーバー:
.com や .jp などを管理し、その下位のドメイン(例: example.com)のDNSサーバーの情報を持っています。

権威DNSサーバー:
各ドメイン(例: example.com)の最終的なIPアドレスを管理し、ドメイン名とIPアドレスを結びつける役割を果たします。

DNSと名前解決の流れ

①から⑥の順番で名前解決が行われます。
image.png

引用画像:https://www.no1web.jp/blog/15098/

ざっくりと簡潔にまとめると以下のようになります。

キャッシュの確認: ローカルPCやルーターが、以前に同じドメインにアクセスした場合、キャッシュに保存されているかを確認します。
↓
ローカルDNSサーバーへ問い合わせ: キャッシュがない場合、PCは設定されたDNSサーバー(通常、ISPや社内のDNSサーバー)に問い合わせます。
↓
名前解決のリクエスト: DNSサーバーは、ドメイン名のIPアドレスを調べるために、ルートDNSサーバーや他のDNSサーバーに問い合わせを行います。
↓
結果の返送: DNSサーバーが最終的なIPアドレスをPCに返し、その後接続が行われます。

構築/検証の流れ

DNSサーバーの構築、Windows 10端末でのセットアップ、および nslookup コマンドを使った検証の流れを2つのステップで説明します。

ステップ1:DNSサーバーの構築
ステップ2:Windows 10端末でのセットアップと検証

以下の記事でも紹介していますが、ADを構成する際にはDNSが動的にインストールされるため、過去の記事も合わせてご参照ください。

Windows Server 2022で自宅ネットワークにADサーバーを構築し、Windows 10端末をドメインに参加させる方法

ステップ1:DNSサーバーの構築

まず、DNSサーバーを構築するためにWindows Serverを使用します。
サーバーの準備

・Windows Server 2019/2022(DNSロールをインストール)
・Static IPアドレス(サーバーに固定IPを設定)

DNSロールのインストール

・サーバーマネージャーを開く。
・[役割と機能の追加] をクリックし、DNSサーバーのロールを追加します。
・ウィザードに従い、DNSサーバーをインストールします。
・インストールが完了したら、サーバーを再起動します。

前方参照ゾーンの設定

・DNSマネージャーを開きます。
・前方参照ゾーンを右クリックし、新しいゾーンを選択。
・ウィザードに従い、次のように設定します:
  ゾーンの種類: プライマリゾーン
  DNS名: 例として honda.co.jp など自分の好きなゾーン名を設定します。
  ゾーンファイル: 自動生成。
・設定が完了したら、ゾーン内に新しいホスト(A)レコードを作成します。
  たとえば、サーバーの名前を server1.example.local にし、そのIPアドレスを設定します。

私の環境では、「honda.co.jp」というゾーン内に「honda」というAレコードを「1.1.1.1」で登録しました。
image.png

逆引き参照ゾーンの設定は任意なので、ここでは設定せずに次の検証に進みます。

ステップ2:Windows 10端末でのセットアップと検証

Windows 10端末でのDNS設定

端末側にもDNSの設定を明示的に行います。

・Windows 10の設定を開きます。
・[ネットワークとインターネット] に移動し、現在使用しているネットワーク(Wi-Fiまたはイーサネット)を選択。
・[IP設定の編集] をクリックし、DNSサーバーのアドレスを手動で指定します。
 →ここでは、先ほど構築したDNSサーバーのIPアドレス(例: 192.168.1.7)を入力します。

私の環境では、優先DNSにDNSサーバーのIPアドレスである「192.168.1.7」を設定しています。
image.png

nslookupコマンドによる検証①

コマンドプロンプトを開き、以下のコマンドを実行してDNSサーバーが正しく動作しているか確認します。

nslookup honda.co.jp(ご自身のゾーン名に置き換えてください)

正常に設定されている場合、honda.co.jp のIPアドレス(例: 192.168.1.7)が表示されます。

image.png

nslookupコマンドによる検証②

同様に、コマンドプロンプトを開き、以下のコマンドを実行して登録したレコードを名前解決できるか確認します。

nslookup honda(追加したAレコードに置き換えてください)

正常に設定されている場合、honda のAレコード(例: 1.1.1.1)が表示されます。
image.png

想定通り、構築したDNSサーバーから名前解決の応答があることを確認できました。

実務だと、パケットキャプチャなどを取得してWiresharkで通信の流れを解析した苦い思い出があります(笑)

まとめ

今回の検証では、DNSサーバーの構築とWindows 10端末でのDNS設定が成功し、nslookupコマンドによる名前解決が正しく動作することを確認しました。

honda.co.jp ゾーンとAレコード「honda」のIPアドレスが正確に返され、DNSサーバーの設定が正常であることが証明されましたので、今回の構築は成功と言えそうです。

DNS構築や名前解決の動作検証もばっちりですね!

おまけ

自宅のプライベートPC(Windows/Mac)には、意図的にGoogleの「8.8.8.8(優先)」「8.8.4.4(代替)」パブリックDNSを設定しています。
心なしか、インターネットアクセスが少しだけ速くなった気がしますが、DNSの設定を無闇に変更するとインターネットに接続できなくなる場合があるので、気をつけてくださいね!

次回以降は、より詳細なAD統合DNSの設定や、さらに高度なフォワーダーの設定について触れていきたいと思います。

参考記事

https://qiita.com/Higemal/items/aae749ff4d3c375362bf
https://jp.fujitsu.com/platform/server/primergy/technical/construct/pdf/win2016-network-guide.pdf
https://qiita.com/dessin/items/ebfea655a82a809af866

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0