はじめに
VyOS は、Linux ベースのソフトウェアルーターで、単なるルーティング以外にも、豊富な機能を持っているので、自身やチームのラボを構築する際に、非常に便利です。
個人的には、vSphere のラボを構築する際にも、必須級のソフトウェアになっています。
↓こちらの記事で、簡単な紹介もしています。
今回は、小技レベルですが、VyOS に DNS フォワーダーを設定することで、クライアント端末から見た場合に、「VyOS がデフォルトゲートウェイかつ、DNS サーバーになってくれるので設定が楽!」を実現しようと思います。
(補足) 構成イメージと使い所の例
今回、構成する環境のイメージは、↓このような状況です。
必ずしも VyOS がデフォルトゲートウェイである必要はありませんが、図中の Jump Box (踏み台サーバー) や、ESXi、VM 等からの DNS クエリを VyOS が中継できるようにしておくことで、各機器への設定を簡単にしたいような場合に便利です。
また、冒頭で引用の記事の再掲になりますが、VyOS の DHCP 機能と組合せて、デフォルトゲートウェイとしても VyOS 自身、DNS サーバーとしても VyOS 自身の IP アドレスを配布することで、VyOS 配下のネットワーク (図中では Lab という枠で囲まれた範囲) に閉じて、ネットワーク設計が出来たりします。
手順
参考にしている VyOS 公式ドキュメントは、こちらです。
また、転送先の DNS サーバーを VyOS 自身が利用している DNS サーバーと同じものにする場合、下記の設定も関連してきます。
TL;DR;
VyOS の操作がわかる方には、実際の設定例を見ていただく方が早いかと思います。
service {
dns {
forwarding {
allow-from <network>
listen-address <address>
system
}
}
}
system {
domain-search {
domain <domain>
}
name-server <address>
}
service {
dns {
forwarding {
allow-from 192.168.0.0/24
listen-address 192.168.0.254
system
}
}
}
system {
domain-search {
domain example.com
}
name-server 10.0.0.1
}
設定解説
set service dns forwarding system
DNS クエリを転送する先の上位 DNS として、VyOS 自身が利用している DNS サーバー (System DNS) を利用するように指定します。
# フォーマット
set service dns forwarding name-server <address> port <port>
# 設定例
set service dns forwarding name-server 10.0.0.1 port 53
もし、VyOS 自身が利用している DNS サーバーではなく、別の DNS サーバーを利用する場合に利用します。
# フォーマット
set service dns forwarding allow-from <network>
# 設定例
set service dns forwarding allow-from 192.168.0.0/24
どのネットワークに所属するクライアントからの DNS クエリを許可し、DNS サーバーに転送するのかを指定します。
注意
IPv4 ネットワークの場合、0.0.0.0/0
を指定することで、全てのネットワークに対して、許可することも可能ですが、DDoS 攻撃などで悪用される可能性もありますので、考慮が必要な環境では、注意して設定してください。
# フォーマット
set service dns forwarding listen-address <address>
# 設定例
set service dns forwarding listen-address 192.168.0.254
DNS フォワーダーとして、どの IP アドレスで待ち受けるのかを指定します。
IPv4 ネットワークの場合、0.0.0.0
を指定することで、VyOS に割当たっている全ての IP アドレスで待ち受けるので便利です。
以降は、service dns forwarding system
を設定している場合において、VyOS 自身が利用する DNS サーバーの設定方法になります。
# フォーマット
set system name-server <address>
# 設定例
set system name-server 10.0.0.1
1行で 1つの DNS サーバーしか指定できませんが、複数行設定することが可能ですので、複数台の DNS サーバーを設定することが可能です。
# フォーマット
set system domain-search <domain>
# 設定例
set system domain-search example.com
ドメインサーチリスト、DNS 検索サフィックスなどとも呼ばれるフィールドの設定です。
こちらも 1行で 1つしか指定できませんが、複数行 (VyOS 1.5.x 時点では、最大 6つ) 設定することが可能です。