🌐
VyOS を使用した簡易 DNS サーバーの作成
この記事について
リバース プロキシーの学習をしていたときに名前解決の方法がほしかったので、 VyOS で簡易 DNS サーバーを作ってみました。その時の作業メモです。
行いたいこと
- 各ノードは今回作成する(した)簡易 DNS サーバーで名前解決する
- 簡易 DNS サーバーには、リバース プロキシーの学習で作成した 4 台のノードの情報を登録する
- 簡易 DNS サーバーで名前解決できないときは、自宅環境の DNS サーバーで名前解決する( DNS フォワーダー)
情報
登録する情報
ホスト名 | IP アドレス |
---|---|
node1.example.jp | 192.168.100.101 |
node2.example.jp | 192.168.100.102 |
node3.example.jp | 192.168.100.103 |
node4.example.jp | 192.168.100.104 |
その他の情報
ホスト名 | IP アドレス | 用途 |
---|---|---|
N/A | 192.168.0.2 | 自宅環境の DNS サーバー |
vyos.example.jp | 192.168.100.201 | 今回作成する簡易 DNS サーバー |
作成
Oracle VirtualBox + Vagrant で作成します。
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.box = "vyos/current"
config.vm.network "public_network", ip: "192.168.100.201"
config.vm.hostname = "vyos.example.jp"
config.vm.provider "virtualbox" do |vb|
vb.name = "vyos"
vb.memory = "1024"
vb.cpus = 1
vb.gui = true
vb.customize [
"modifyvm", :id,
"--ioapic", "on",
"--graphicscontroller", "vmsvga",
"--nicpromisc2", "allow-all"
]
end
config.ssh.username = "vyos"
config.ssh.password = "vyos"
config.ssh.keys_only = false
config.ssh.insert_key = false
config.ssh.shell = "bash"
end
簡易 DNS サーバーの作成
-
作成化した仮想マシンに SSH でログイン
-
Configuraton モードに移行
configure
- 以下のコマンドを実行
set system domain-name example.jp
set system time-zone Asia/Tokyo
set system name-server 192.168.100.2
set service dns forwarding listen-address 192.168.100.201
set service dns forwarding allow-from 192.168.100.0/24
set service dns forwarding system
set system static-host-mapping host-name node1.example.jp inet 192.168.100.101
set system static-host-mapping host-name node2.example.jp inet 192.168.100.102
set system static-host-mapping host-name node3.example.jp inet 192.168.100.103
set system static-host-mapping host-name node4.example.jp inet 192.168.100.104
- 設定内容を保存
commit
save
- Configuration モードの終了
exit
クライアント PC で動作確認
- 「 DNS サーバーの割り当て」を DHCP から 簡易 DNS サーバーに変更
- 名前解決ができることを確認
PS C:\Users\y_mrok> nslookup node1.example.jp
サーバー: UnKnown
Address: 192.168.100.201
権限のない回答:
名前: node1.example.jp
Address: 192.168.100.101
PS C:\Users\y_mrok> nslookup node2.example.jp
サーバー: UnKnown
Address: 192.168.100.201
権限のない回答:
名前: node2.example.jp
Address: 192.168.100.102
PS C:\Users\y_mrok> nslookup node3.example.jp
サーバー: UnKnown
Address: 192.168.100.201
権限のない回答:
名前: node3.example.jp
Address: 192.168.100.103
PS C:\Users\y_mrok> nslookup node4.example.jp
サーバー: UnKnown
Address: 192.168.100.201
権限のない回答:
名前: node4.example.jp
Address: 192.168.100.104
PS C:\Users\y_mrok>
PS C:\Users\y_mrok> nslookup 192.168.100.101
サーバー: UnKnown
Address: 192.168.100.201
名前: node1.example.jp
Address: 192.168.100.101
PS C:\Users\y_mrok> nslookup 192.168.100.102
サーバー: UnKnown
Address: 192.168.100.201
名前: node2.example.jp
Address: 192.168.100.102
PS C:\Users\y_mrok> nslookup 192.168.100.103
サーバー: UnKnown
Address: 192.168.100.201
名前: node3.example.jp
Address: 192.168.100.103
PS C:\Users\y_mrok> nslookup 192.168.100.104
サーバー: UnKnown
Address: 192.168.100.201
名前: node4.example.jp
Address: 192.168.100.104
PS C:\Users\y_mrok>
- DNS フォワーダーの動作確認
参考にさせていただいたページ
Discussion