AWS上でRoute53を使用せず、DNSサーバ立ててみた
今回は以下検証内容を実施した際の備忘録となります。
検証内容
ある製品の導入検討時に、異なるAWSアカウント所有者同士において双方向通信を行い、製品の通信が成り立つのかを検証したく実施しました。
前提は以下になります。
- ハイブリッドクラウド環境想定
- 本格導入時は自前のDNSサーバを使用したい
- 双方の環境の「名前解決」・「ルーティング」に影響を与えないNWを用意したい
- IGW経路なし
- 異なるAWSアカウント同士の通信はVPCエンドポイント経由としたい
まずDNSとは
以下サイトがわかりやすくRoute53の件も合わせてチェックできたので、参考にさせて頂きました。
これから備忘として記載している内容
以下の内容を記載している記事になります。
- AWS上で、AWSサービス(Route53)を使用せずにDNSサーバを構築する手順
あくまで私自身検証したかった内容がRoute53を使用しない前提であり、基本はAWSサービスであるRoute53を使用することがスタンダードだと考えております。
- DNSサーバ内(Windowsサーバ内)のレコード設定(Aレコード)
AWS環境上での準備
以下AWSリソース群を準備しました。
- VPC(設定値:10.0.0.0/24)
- EC2(Windowsサーバ:DNS設定用:10.0.0.10)
- EC2(Linuxサーバ:確認用:10.0.0.28)
- IGW
- VPCエンドポイント(検証なため、紐づけ先はどのサービスでも構いません)
実施手順
以下の手順で行いました。
※AWS環境構築については省略させて頂きます
※下表の「サーバ内」は、「Windowsサーバ」のことを指しています
No | 操作対象 | 実施行為 |
---|---|---|
1 | サーバ内 | IPアドレス固定 |
2 | サーバ内 | DNSツールインストール |
3 | サーバ内 | Aレコード登録 |
4 | サーバ内 | IPアドレス固定(変更) |
5 | AWS側 | DHCP オプションセットを変更 |
DNSサーバ構築にあたり、参考にさせて頂いたサイトは以下2つになります。
-
Windows Server 2019でActive Directoryを構築してみる
※DNS設定部分のみ抜き取りました
実施結果
検証に移る前に以下の設定をしておいてください!
- Windowsサーバのホスト名を適当な値でセット(私は、「TEST88」としております)
- Windowsサーバの「Windows Defender」の無効化(Ping確認用に!)
事前確認
- VPCに紐づくDHCP オプションセットの確認
まずは、AWS側でデフォルト用意されているDNS「Amazon Provided DNS」が設定されていることを確認します。
- 疎通確認用サーバからホスト名解決が行えないことを確認
No1:IPアドレス固定
DNSツールをインストールするための条件であるため、Windowサーバにログインし、IPアドレスの固定化を行います。
コマンドプロンプトを開き、以下を打って設定値を確認します。
ipconfig /all
ちゃんとAWSの設定が入っていることが確認できましたね!
次は、IPアドレスの固定化を実際に行っていきましょう。
以下は右クリックで開くこと!
IPコンフィグ情報を参考に以下のように入力!
入力完了後、「OK」ボタンを押下し、設定完了。
これにて、IPアドレスが固定化完了しました。
再度コマンドを実行し、設定ミスがないか確認しておきましょう!
No2:DNSツールインストール
次は、Windowsが提供しているDNSツールをインストールしていきます。
まずは、サーバマネージャを開きましょう!
以下は何もせずに「次へ」を押下。
ここも何もせずに「次へ」を押下。。
ここも何もせずに「次へ」を押下。。。
「DNSサーバー」を探してチェック!
「機能の追加」ボタンを押下
この画面に戻ってきたら「次へ」ボタンを押下
ここも何も考えずに「次へ」が連続
やっとインストールです!
完了したら「閉じる」ボタン押下で終了
お疲れ様でした、、、一旦この辺りで一息coffeeでもどうでしょうか!
一息つけたらいよいよ設定に入っていきましょう!
No3:Aレコード登録
休憩はできましたでしょうか??
引き続き頑張っていきましょう!
自分自身の名前解決が行えるようにAレコードを登録していきます。
Aレコードを登録するゾーンの作成から行っていきましょう!
まずは、「サーバーマネージャー」を開きましょう!
「DNS」をクリック!
すると以下の画面が立ち上がります
赤枠箇所をクリックしてください!
DNSの話をしているとよく聞く名前がたくさん出てきました!
赤枠箇所を右クリック!
「新しいゾーン」をクリック
さぁどんどん「次へ」を押下していきます
「ゾーン名」の中に好きな文字列を入れてください!
私は「test」としました!
これにてゾーンの設定は完了です。
次はゾーンにAレコード登録していきます。
先ほど作成したゾーンの上で右クリックをしてください。
その後、赤枠箇所をクリック
あとは登録したい名前・解決後に返答するIPアドレスを設定して「ホストの追加」ボタンを押下
これにて完了です!
No4:IPアドレス固定(変更)
「No1」段階では、一旦AWS側のDNSサーバを参照するようにIPアドレスを設定しましたが、このタイミングにて、自分自身を参照先とするように設定していきます。
~No1箇所は割愛~
以下の画面まで行き、「プロパティ」を押下
以下のように設定し、「OK」を押下
次に忘れがちな対処を行います。
赤枠箇所を押下
赤枠の2箇所を削除し、上にあがって選択肢変更!
以下の画面の状態になったら「OK」ボタンを押下
これにてサーバ側の作業は完了になります。
No5:DHCP オプションセットを変更
最後にAWS上で設定しているDHCPの向き先をサーバ側が参照されるように設定しなおします。
AWSマネジメントコンソールを開いていきましょう。
VPCの画面より以下箇所を押下
赤枠箇所を押下
補足に倣って入力
その他は、特に入力せずに作成(必要あれば、その他の設定項目を埋めてください)
作成完了です!
次は、設定に移っていきましょう!
VPC作成画面の右上、「アクション」のプルダウンを開き、「VPCの設定を編集」ボタンを押下しましょう
赤枠箇所を先ほど作成した設定へ変更し、「保存」ボタンを押下
これで設定作業はすべて完了です!お疲れ様でした!
最終確認
最後に確認作業に入ります。
Linuxサーバ側の参照先DNSサーバの設定変更をしておきましょう
以下の設定ファイルをWindowsサーバのIPアドレスに設定しなおしてください/etc/resolv.conf
- まずはLinuxサーバより、ホスト名にてpingコマンドを発行!
無事飛んでよかったです、、、、
- あとは名前解決も確認!
無事に解決!
これにて作成したDNSサーバが使用できることを確認できました!
追加で検証した内容
追加で以下のリソースを構築して、応用編も行ってみました。
※本当は本編に記載しようとしましたが、力尽きたので、、、、簡単に記載しておきます。
構築タイミングは本編対応後でも可能な実装になります。
仮に上記本編中に行いたければ、「No3」のタイミングで一緒に実装すれば問題ありません。
今回追加で検証した内容は、「EC2(サーバ)群だけではなく、各AWSリソースの名前解決も行えること」になります。ハイブリット環境にてユーザ側で用意しているDNSサーバでは、AWSリソースの名前解決ができない状況があるかと思います。その点を考慮した検証を行いました。
構築順序は以下の通り。
- Route 53 Resolver エンドポイント作成
- 適当なAWSサービスを紐づけたVPCエンドポイントを作成
- DNSサーバ内にて、レコード登録(条件付きフォワード)
参考にしたサイトは以下の通り。
・VPCエンドポイント作成時
・Route 53 Resolver エンドポイント作成時
結果、問題なく名前解決が行えました。
※まったり続きをどこかで記載できればと思います。。。。
最後に
今回の検証にて、DNSサーバを自身で初めて構築することができました!かなり感動しています!!
読んでくださった方、長かったかもしれませんが、ありがとうございました。
引き続きまったり勉強していきます。
Discussion