ubuntuのdnsmasqの設定メモ

ここに書いてることをヒントに頑張る↓

テストサーバ用にDnsmasqで内向きのDNSサーバを構築する | oiio.jp

けど上のブログだと/etc/resolv.conf が書き換わる理由についてはわからなかったみたい。だからほかのも参考にする必要があるってこと。

注意点と必須設定

1.53番ポートが競合する。

dnsmasqとubuntuデフォルトのsystemd-resolvedとnetwork-managerが競合するみたい。だからport53をリッスンしている systemd-resolved さんををやっつける。これは簡単。

: ポートの競合お調べコマンド

ip add
ss
lsof -i:ポート番号
systemctl stop  systemd-resolved 
systemctl  disable systemd-resolved 

2. /etc/resolv.conf がNetworkManager側と競合して上書かれたりする。

なので、NetoworkManagerさんのDNS機能を止めるか、dnsmasqと連携できるように設定する。このブログはnetworkmanagerさんの設定っぽい。やらないと、上位DNSへのフォワーディングとかがうまくできない。

Ubuntu18.04のDNSリゾルバをsystemd-resolvedからdnsmasqに変更する – ぶていのログでぶログ (buty4649.net)

自分はsystemdさんとdnsmasqさんとを連携できませんでした

・dnsmasqは/etc/resolv.conf参照する。これを別のファイルとかに変更する方法は今わからない。

・でもこれに直接書いても起動の度に書き換え、もしくは新たに作成してくる。つまり NetworkManager さん側の設定をいじってあげる必要がある。

: 設定場所

/etc/NetworkManager/NetworkManager.conf

[main]
dns=dnsmasq (うまくいかなかった)
###もしくは...

[main]
dns=no

自分では「dns=dnsmasq」とする場合でうまくできなかった。やってみるとnetworkmanager(sysytemd)側とdnsmasq側でデーモンを奪い合って、それぞれで /etc/resolv.conf を書き換えようとしてサービスがおかしくなった。(起動してるけど同時刻で2回起動しているようなログ)

たぶん、/etc/systemd/resolved.confがsystemd側で、 dnsmasqと連携する用の設定を記述するのかもしれないけど、別に連携しなくてもいいやってなっちゃった。

たぶん書き換わらないようにするために書き2つの作業が必要だと思われる。たぶん。わからんない

  • /etc/NetworkManager/NetworkManager.conf でDNSを止める
  • systemd-resolveのデーモン止める

あとはなんか/etc/dnsmasq.confとかいじる。おわり

3.dnsmasq.conf必須設定

port=53
domain-needed
bogus-priv
strict-order
interface=eth0
no-dhcp-interface=eth0

: 出てきたファイルたち

  • /etc/NetworkManager/NetworkManager.conf
  • /etc/systemd/resolved.conf ※結局no編集
  • /etc/resolv.conf
  • /etc/dnsmasq.conf

他参考

UbuntuにdnsmasqをインストールしてDNSキャッシュサーバーとして運用 – 動かざることバグの如し (hatenablog.com)

投稿日:
カテゴリー: Tech.

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です