🌐

VyOS を使用した簡易 DNS サーバーの作成

2025/01/13に公開

この記事について

リバース プロキシーの学習をしていたときに名前解決の方法がほしかったので、 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 サーバーの作成

  1. 作成化した仮想マシンに SSH でログイン

  2. Configuraton モードに移行

configure
  1. 以下のコマンドを実行
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
  1. 設定内容を保存
commit
save
  1. Configuration モードの終了
exit

クライアント PC で動作確認

  1. 「 DNS サーバーの割り当て」を DHCP から 簡易 DNS サーバーに変更

2025-01-13_06h21_00

  1. 名前解決ができることを確認
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>
  1. DNS フォワーダーの動作確認

2025-01-13_06h21_00

参考にさせていただいたページ

https://docs.vyos.io/en/latest/quick-start.html

https://docs.vyos.io/en/latest/configuration/system/host-name.html

https://docs.vyos.io/en/latest/configuration/service/dns.html

Discussion