はじめに
AWS EC2とWindows Appを使ってMacの中にWindowsを立ち上げ、DNSサーバーを構築してみました
まだ3回しか投稿してないですが、自分史上最長の記事になってしまいました。
スクロールが大変でしたら「DNSサーバーとは?」だけでも読んでいってください
ここでは、DNSサーバーを構築する方法 について詳しく解説していきます。
DNSサーバーとは?
引用画像:https://sskshogo.com/2023/02/21/3584/
ドメイン名(gxxxle.comとかyxhxx.co.jpとか)をIPアドレスに変換するやつです。
なぜ変換するのかというと、
ドメイン名のままではパソコンが理解できないためです。
逆にIPアドレスを人間が覚えやすくするために変換したのがドメイン名です。
ドメイン名からIPアドレスに変換するのを「正引き(forward lookup))」
IPアドレスからドメイン名に変換するのを「逆引き(reverse lookup)」
と言います。
また、この変換する行為のことを「名前解決」と言います。
さらに、「ドメイン名に対応するIPアドレス」が書かれた記録を「Aレコード」と言います。
このAレコードは、DNSサーバーの中にある「ゾーンファイル」というテキストファイルにあります。
ゾーンファイルの情報をまとめて「DNSレコード」と言います。
AレコードはDNSレコードのひとつということですね。
他のDNSレコードには、Aレコードで定義されているドメイン名に別名を定義するCNAMEレコードやメールサーバーを指定するMXレコードなどがあります。
【ハンズオン】DNSサーバーを立ててみよう
環境 : Mac
前提
- AWSのアカウントを作成している
- Windows Appをインストールしている
- AWS EC2にWindowsサーバーを構築する
- AWS EC2に接続する
- Windows AppでWindowsサーバーに接続する
- Server ManagerでDNSサーバーをインストール
- DNSサーバーにAレコードを追加
- 他のDNSサーバーへの転送(フォワード設定)をしてみる
1. AWS EC2にWindowsサーバーを構築する
1-1. AWSコンソールにログインし、ホームから「VPC」を選択します
1-2. 「VPCを作成」をクリック
1-3. 画像の赤枠の通りに設定し、「VPCを作成」をクリック
1-4. EC2インスタンスを起動します
1-4-1. 名前やマシンイメージを選択 1-4-2. キーペアを作成します。公開鍵と秘密鍵のことです。 1-4-3. キーペアを作成すると、インスタンスを起動の画面に自動入力されます 1-4-4. ネットワークの設定で、「編集」をクリックします 1-4-5. VPCは自分が作成したものを選択します 1-4-6. インバウンドのセキュリティグループのルールを追加します 「インスタンスを起動」を押すと、起動が開始されます2. AWS EC2に接続する
「キーペアの作成」でダウンロードしたpemファイルをアップロードし、パスワードを復号化します
パスワードとユーザー名をメモしておきましょう
3. Windows AppでWindowsサーバーに接続する
3-1. Windows Appを起動し、➕ボタンでPCを追加します
3-2. PC name にEC2インスタンスのパブリックIPアドレスを入力し、Add Credentialsをクリックします 3-3. メモしたユーザー名とパスワードを入力してAddをクリック 3-4. AddをクリックしPCを追加します 3-5. 追加したPCをダブルクリック 3-6. 続けます 3-7. なんということでしょう。Macの中にWindowsPCができました4. Server ManagerでDNSサーバーをインストール
4-1. メニューからServer Managerを開きます
4-2. ManageからAdd Roles and Featuresをクリック 4-3. しばらくNextで進んでください。(ちょっと疲れてきたので割愛します) 4-4. Server Rolesまで来たら、DNS Serverにチェックを入れます 4-5. チェックを入れようとしてクリックすると確認画面と警告画面が出ますが、進み続けましょう 4-6. 「インストールしたら自動で再起動する」にチェックを入れてインストールをクリックします 4-7. インストールが完了したみたいです。closeをクリックします 4-8. デスクトップの検索バーで「dns」と検索してみると...ありましたね! DNSサーバーが使えるようになりました👏5. DNSサーバーにAレコードを追加
まず、ゾーンファイルを追加します
5-1. 右クリックしてNew Zoneを選択次
次
5-2. ゾーンファイルの名前を付けます 5-3. ゾーンファイルにAレコードを追加します。右クリックからNew Hostを選択 5-4. ドメイン名とIPアドレスを入力してください 5-5. Macでターミナルを開いてnsloopupコマンドを試します。 ServerをEC2インスタンスのIPアドレスにしてくださいこれで名前解決が確認できました!
6. 他のDNSサーバーへの転送(フォワード設定)をしてみる
実はDNSサーバーたちは互いに協力しあっています
自分のゾーンファイルにないドメインの名前解決を求められると、他のDNSサーバーに依頼するんです。
では設定してみます
右クリック→プロパティから設定できます
ターミナルで確認します
Aレコードに追加していない、google.comが名前解決できました!
Aレコードに追加したものと比べて、返答まで数秒かかりました
あと片付け(EC2インスタンスとVPCの削除方法)
インスタンスの状態、またはアクションから削除できます
【おまけ】1.1.1.1って何?
Cloud Flare(クラウドフレア)が提供する世界最速のDNSサーバーのIPアドレスです。
なんで最速なんでしょう?
なんと、名前解決する機能だけでなくCDNの役割もあるらしいんです。
CDN(コンテンツ・デリバリー・ネットワーク)って何?
ざっくり言うと、
「最寄りのサーバーからサイト配信元のサーバーまで遠いから、一度見たページ情報はキャッシュとして最寄りのサーバーに保存しておこう」というものです。
具体的に言うと、ヒカキンさんの動画は日本でよく見られているから、日本のサーバーにキャッシュが保存されているはずなので、快適に視聴できます。
引用画像:https://www.akamai.com/ja/glossary/what-is-a-cloud-cdn
例えると、真冬に炬燵があると極力出たくないから炬燵から手が届くところに物が集まるのと同じ感じです、多分。
詳しくは、この記事を読んでね
まとめ
最後までお読みいただきありがとうございます。
今回はDNSサーバーの概要と構築方法などについて自分なりの理解をまとめました。
ブラウザでWEBサイトを開いたとき、最初に行われるのがDNSの名前解決です。
つまり名前解決が早いほど、ページの切り替えも早いんですね。
参考文献