自宅用内部DNSサーバーの構築

2018年5月1日 0 投稿者: khws4v1

khws4v1.myhome.cxは自宅サーバーでやっているわけですけども、LANの外からアクセスする時は普通に外部のDNSサーバーが名前解決してアクセスできる。
一方でLANの中からアクセスするにはローカルIPアドレスでないといけないが、外部のDNSサーバーからはグローバルIPアドレスしか教えてくれないのでアクセス不能になるのだ。
ならばLAN内に内部のDNSサーバーを作り、それを使うことで自宅サーバーにアクセスできるようにしようというわけだ。

dnsmasq

DNSサーバーといえばbindだが、所詮内部DNSサーバーにbindは大げさすぎる。
導入が簡単なdnsmasq程度で済ましておくのが良さそうだ。

設定

まずはインストールする。

/etc/dnsmasq.confの設定ファイルを書く。
初期状態で長いが、少しだけ書き加えたりするだけで済む。

bogus-privはローカルIPアドレスの逆引きを上位のDNSサーバーに転送しない。
local/etc/hostsかDHCPでのみ名前解決するドメインを指定する。

/etc/hostsに自宅サーバーのIPアドレスを書く。

DNSサーバーの設定

内部DNSサーバーが使う外部DNSサーバーの設定をする。
これをしないとDHCPのDNSサーバーを設定した時に無限ループして死ぬ。

  1. DHCPで設定されているDNSサーバーの設定を無視するようにする

  1. DNSサーバーを指定する

  1. NetworkManagerを再起動する

起動&自動起動

動作確認

複数回やると結果がキャッシュされているので、爆速で返答してくれるはず。
動作確認が終わったらDHCPのDNSサーバーをルーターの方で設定しておくと各クライアントの設定の手間が省ける。