【初心者向け】DNSサーバーを立てて名前解決してみた

## はじめに

AWS EC2とWindows Appを使ってMacの中にWindowsを立ち上げ、DNSサーバーを構築してみました
まだ３回しか投稿してないですが、自分史上最長の記事になってしまいました。
スクロールが大変でしたら「DNSサーバーとは？」だけでも読んでいってください

:::note info
ここでは、DNSサーバーを構築する方法 について詳しく解説していきます。
:::


## DNSサーバーとは？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/49d52055-11f4-4a32-997d-b8bdb727f760.png)
引用画像：https://sskshogo.com/2023/02/21/3584/

**ドメイン名（gxxxle.comとかyxhxx.co.jpとか）をIPアドレスに変換するやつです。**
なぜ変換するのかというと、
ドメイン名のままではパソコンが理解できないためです。
</br>
逆にIPアドレスを人間が覚えやすくするために変換したのがドメイン名です。
ドメイン名からIPアドレスに変換するのを「正引き（*forward lookup*）)」
IPアドレスからドメイン名に変換するのを「逆引き（*reverse lookup*)」
と言います。
</br>
また、この変換する行為のことを「名前解決」と言います。
</br>
さらに、「ドメイン名に対応するIPアドレス」が書かれた記録を「Aレコード」と言います。
このAレコードは、DNSサーバーの中にある「ゾーンファイル」というテキストファイルにあります。
ゾーンファイルの情報をまとめて「DNSレコード」と言います。
AレコードはDNSレコードのひとつということですね。
他のDNSレコードには、Aレコードで定義されているドメイン名に別名を定義するCNAMEレコードやメールサーバーを指定するMXレコードなどがあります。



## 【ハンズオン】DNSサーバーを立ててみよう
**環境** : Mac
**前提**
- AWSのアカウントを作成している
- Windows Appをインストールしている

</br>
下記の順で進めます

1. AWS EC2にWindowsサーバーを構築する
2. AWS EC2に接続する
3. Windows AppでWindowsサーバーに接続する
4. Server ManagerでDNSサーバーをインストール
5. DNSサーバーにAレコードを追加
6. 他のDNSサーバーへの転送（フォワード設定）をしてみる

### 1. AWS EC2にWindowsサーバーを構築する
1-1. AWSコンソールにログインし、ホームから「VPC」を選択します
![スクリーンショット 2025-03-12 22.12.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/14556ab2-ce19-4a09-9492-5cba9ea54448.png)
</br>
1-2. 「VPCを作成」をクリック
![スクリーンショット 2025-03-12 22.13.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/cd5a70e3-23a5-4696-b5da-1c51251726fe.png)
</br>
1-3. 画像の赤枠の通りに設定し、「VPCを作成」をクリック

![スクリーンショット 2025-03-12 22.18.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/9f654b2b-c751-4a63-aeff-2fa5421c3496.png)

![スクリーンショット 2025-03-12 22.19.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/c4d49345-1a20-4309-974b-faf5c67e66e9.png)

![スクリーンショット 2025-03-12 22.19.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/26bd0c8c-a1b1-48c7-89e7-8650ac6b1353.png)

</br>
VPCのプレビュー

![スクリーンショット 2025-03-12 22.19.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/8a3df4ed-83b0-457f-8c44-c53a61c18e46.png)

</br>
VPC作成が成功しました！

![スクリーンショット 2025-03-12 22.19.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/b88a6bb9-ddf0-47ed-a89b-2d3688e6f654.png)

1-4. EC2インスタンスを起動します

![スクリーンショット 2025-03-12 22.21.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/196b8d42-7e78-4b70-8c7e-47a99510c0c8.png)


</br>
1-4-1. 名前やマシンイメージを選択

![スクリーンショット 2025-03-12 22.22.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/173e998c-6ac5-4b95-916c-a729f96077e6.png)

</br>
1-4-2. キーペアを作成します。公開鍵と秘密鍵のことです。

![スクリーンショット 2025-03-12 22.23.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/9a0d05d5-ee72-4e4e-b6ca-ce84a9275c1d.png)

![スクリーンショット 2025-03-12 22.24.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/7b49a37b-c16c-4d4e-9806-9b1f30866eed.png)

</br>
1-4-3. キーペアを作成すると、インスタンスを起動の画面に自動入力されます

![スクリーンショット 2025-03-12 22.24.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/e02674bd-eb1a-48ca-bef7-fcfa91e17b25.png)

</br>
1-4-4. ネットワークの設定で、「編集」をクリックします

![スクリーンショット 2025-03-12 22.26.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/fe87d1bb-2a22-4cf5-93dc-f90797db5ec8.png)

</br>
1-4-5. VPCは自分が作成したものを選択します

![スクリーンショット 2025-03-12 22.28.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/1b487ef7-f14c-466b-9726-78ee268db8e9.png)

</br>
1-4-6. インバウンドのセキュリティグループのルールを追加します

![スクリーンショット 2025-03-12 22.28.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/9ae97e1a-4d61-48bd-b583-2d8899fb2fd9.png)

</br>
「インスタンスを起動」を押すと、起動が開始されます

![スクリーンショット 2025-03-12 22.29.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/3debde49-d5f7-4547-aff7-b407b2e28a4e.png)


### 2. AWS EC2に接続する

![スクリーンショット 2025-03-12 22.30.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/bd183a5a-ff61-4582-9268-3b976cbef535.png)

「キーペアの作成」でダウンロードしたpemファイルをアップロードし、パスワードを復号化します

![スクリーンショット 2025-03-12 22.35.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/6bb1c572-0faf-4a8b-a931-3d0fbcf452d5.png)

パスワードとユーザー名をメモしておきましょう

![スクリーンショット 2025-03-12 22.36.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/e3205adb-c4e0-41af-8f37-7400fbbdda52.png)

EC2インスタンスのパブリックIPアドレスもメモしましょう
![スクリーンショット 2025-03-12 22.38.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/3759d06b-6442-4854-a934-efc66095d944.png)



### 3. Windows AppでWindowsサーバーに接続する
3-1. Windows Appを起動し、➕ボタンでPCを追加します

![スクリーンショット 2025-03-12 22.37.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/266db272-eba6-4a6d-8de3-5f48b6fc6097.png)

![スクリーンショット 2025-03-12 22.37.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/eb06d948-40e6-4a8d-bb81-93b686e59a24.png)

</br>
3-2. PC name にEC2インスタンスのパブリックIPアドレスを入力し、Add Credentialsをクリックします

![スクリーンショット 2025-03-12 22.38.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/b168df24-3340-4039-bef9-127cc196716f.png)

</br>
3-3. メモしたユーザー名とパスワードを入力してAddをクリック

![スクリーンショット 2025-03-12 22.39.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/26896180-16a0-4f67-a4cd-cb34883c148e.png)

</br>
3-4. AddをクリックしPCを追加します

![スクリーンショット 2025-03-12 22.39.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/c39b3caa-ea53-420b-a971-009eef7591ca.png)

</br>
3-5. 追加したPCをダブルクリック

![スクリーンショット 2025-03-12 22.40.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/96c833a4-096f-43bd-900f-4700fc009357.png)

</br>
3-6. 続けます

![スクリーンショット 2025-03-12 22.40.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/92c3e4bb-448b-4a82-a98e-e33dccaf2f08.png)

</br>
3-7. なんということでしょう。Macの中にWindowsPCができました

![スクリーンショット 2025-03-12 22.41.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/cff22583-dc95-49b3-9fd0-068b5f02a82f.png)



### 4. Server ManagerでDNSサーバーをインストール

4-1. メニューからServer Managerを開きます

![スクリーンショット 2025-03-12 22.41.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/2055697f-78b8-4a57-aa99-252d4e6fdb3b.png)

</br>
4-2. ManageからAdd Roles and Featuresをクリック

![スクリーンショット 2025-03-12 22.42.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/28638095-f1c7-4e72-9117-d7d426d81ea1.png)

</br>
4-3. しばらくNextで進んでください。（ちょっと疲れてきたので割愛します）

![スクリーンショット 2025-03-12 22.44.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/c4fd0058-2590-4091-a6a7-c6388439e35c.png)

</br>
4-4. Server Rolesまで来たら、DNS Serverにチェックを入れます

![スクリーンショット 2025-03-12 22.45.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/2d424814-7820-49c6-b96a-d285a71d800b.png)

</br>
4-5. チェックを入れようとしてクリックすると確認画面と警告画面が出ますが、進み続けましょう

![スクリーンショット 2025-03-12 22.45.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/e0de5417-167e-404a-83ba-7becd8bfec1d.png)

![スクリーンショット 2025-03-12 22.45.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/8e3994d0-b2ee-481d-ab71-2c703cc0987f.png)

</br>
4-6. 「インストールしたら自動で再起動する」にチェックを入れてインストールをクリックします

![スクリーンショット 2025-03-12 22.46.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/102b2b57-d48a-4b50-bd70-ecca09fffb9d.png)

![スクリーンショット 2025-03-12 22.46.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/f3a2057f-e846-40c7-98fe-b4d05b9072e4.png)

</br>
4-7. インストールが完了したみたいです。closeをクリックします 

![スクリーンショット 2025-03-12 22.48.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/1ed75c2b-0886-4eb6-822d-4c7384fac093.png)

</br>
4-8. デスクトップの検索バーで「dns」と検索してみると...ありましたね！
DNSサーバーが使えるようになりました👏

![スクリーンショット 2025-03-12 22.49.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/2a91c44d-e2e3-4d8b-a632-56fb11b4421c.png)




### 5. DNSサーバーにAレコードを追加
まず、ゾーンファイルを追加します

![スクリーンショット 2025-03-12 22.50.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/9196e5a6-cca7-483e-ba06-66f0028bf49c.png)

</br>
5-1. 右クリックしてNew Zoneを選択

![スクリーンショット 2025-03-12 22.50.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/b67a6c6b-2c70-484f-b57d-1a79b948a8b9.png)

次

![スクリーンショット 2025-03-12 22.51.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/1e38f62c-fc50-4fd9-a71d-fabc1ddc01ed.png)

次

![スクリーンショット 2025-03-12 22.51.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/ee95198f-bed3-4210-88da-e0e2927e8dc3.png)

</br>
5-2. ゾーンファイルの名前を付けます

![スクリーンショット 2025-03-12 22.51.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/e4d1385a-077a-4651-a4f6-4bcd68ad69e5.png)

次
![スクリーンショット 2025-03-12 22.52.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/296e04b6-0b09-443a-b226-1b518c7db976.png)

フィニッシュ！
![スクリーンショット 2025-03-12 22.52.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/432feb18-8e64-4e24-b9fc-f47636d34890.png)

</br>
5-3. ゾーンファイルにAレコードを追加します。右クリックからNew Hostを選択

![スクリーンショット 2025-03-12 22.53.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/fa586ee5-d6a9-4989-bf01-ef56b0696b14.png)

</br>
5-4. ドメイン名とIPアドレスを入力してください

![スクリーンショット 2025-03-12 22.54.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/75b41f6e-fe82-4e88-ab66-5a205d539333.png)

</br>
5-5. Macでターミナルを開いてnsloopupコマンドを試します。
ServerをEC2インスタンスのIPアドレスにしてください

![スクリーンショット 2025-03-12 22.56.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/25f85ddb-e1b5-4a35-bdb5-7365e669843f.png)

これで名前解決が確認できました！



### 6. 他のDNSサーバーへの転送（フォワード設定）をしてみる
実はDNSサーバーたちは互いに協力しあっています
自分のゾーンファイルにないドメインの名前解決を求められると、他のDNSサーバーに依頼するんです。
では設定してみます
右クリック→プロパティから設定できます
![スクリーンショット 2025-03-12 22.56.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/a29d6c8e-c642-4b66-a20d-e17e09cf20b1.png)

ターミナルで確認します
Aレコードに追加していない、google.comが名前解決できました！
Aレコードに追加したものと比べて、返答まで数秒かかりました
![スクリーンショット 2025-03-12 23.00.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/791eedc3-3966-4ac8-9293-ca302d512e59.png)


## あと片付け（EC2インスタンスとVPCの削除方法）
インスタンスの状態、またはアクションから削除できます

![スクリーンショット 2025-03-12 23.01.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/8a566b69-a4c1-44c0-badf-ec70541f3c2c.png)

![スクリーンショット 2025-03-12 23.03.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/3827bb72-46e9-414f-9f1d-1efd6200e7d9.png)

![スクリーンショット 2025-03-12 23.03.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/7dce6254-06a7-4040-a02a-39c57f91ad5a.png)



## 【おまけ】1.1.1.1って何？
Cloud Flare(クラウドフレア)が提供する世界最速のDNSサーバーのIPアドレスです。
なんで最速なんでしょう？
なんと、名前解決する機能だけでなくCDNの役割もあるらしいんです。

###  CDN（コンテンツ・デリバリー・ネットワーク）って何？
ざっくり言うと、
「最寄りのサーバーからサイト配信元のサーバーまで遠いから、一度見たページ情報はキャッシュとして最寄りのサーバーに保存しておこう」というものです。
具体的に言うと、ヒカキンさんの動画は日本でよく見られているから、日本のサーバーにキャッシュが保存されているはずなので、快適に視聴できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3999989/86c5a6ff-3f19-4620-b333-0d68fbe4a120.png)
引用画像：https://www.akamai.com/ja/glossary/what-is-a-cloud-cdn

例えると、真冬に炬燵があると極力出たくないから炬燵から手が届くところに物が集まるのと同じ感じです、多分。



詳しくは、この記事を読んでね

https://qiita.com/free-honda/items/70cc63efe1bfa569a44c

## まとめ
最後までお読みいただきありがとうございます。
今回はDNSサーバーの概要と構築方法などについて自分なりの理解をまとめました。

ブラウザでWEBサイトを開いたとき、最初に行われるのがDNSの名前解決です。
つまり名前解決が早いほど、ページの切り替えも早いんですね。

## 参考文献
https://www.value-domain.com/media/a-record/

https://www.value-domain.com/media/mx_record/#