SummerWind

Web, Photography, Space Development

Dnsmasq の代わりに CoreDNS を使う

最近 CoreDNS を使っていてプラグインによる柔軟さがとても気に入ったので、VM のインスタンスなんかに入れている Dnsmasq も全て CoreDNS に置き換えてしまうことにした。Dnsmasq は Consul を使った内部ドメインの解決のために使ってきたので、同じことを CoreDNS でやると以下のような設定になった。

. {
  # ローカルからの問い合わせのみ
  bind 127.0.0.1

  # .consul なドメインは Consul に問い合わせる
  proxy consul 127.0.0.1:8600

  # 通常のドメインに対する名前解決は resolv.conf に従う
  forward . /etc/resolv.conf {
    except consul
  }

  # Prometheus メトリクスを出力
  prometheus

  # エラーをログに出力
  errors
}

問い合わせの結果をキャッシュするために cache プラグインを追加したり、アクセスログの記録に log プラグインを使ったりするのもいいと思う。DNS over TLS にも対応しているので、以下のような設定をして少し前に話題になった 1.1.1.1 と組み合わせて使うのもよさそうだ。

. {
  forward . tls://1.1.1.1 tls://1.0.0.1 {
    tls_servername cloudflare-dns.com
  }
  cache 30
  errors
  log
}

Moto Ishizawa

Moto Ishizawa
ソフトウェアエンジニア。ロケットの打上げを見学するために、たびたびフロリダや種子島にでかけるなど、宇宙開発分野のファンでもある。