CoreDNS
関連記事
CoreDNS は、Go で書かれた DNS サーバー/フォワーダーで、プラグインをチェーンしています。各プラグインは、(DNS)機能を実行します。
CoreDNS は、高速で柔軟な DNS サーバーです。キーワードは柔軟性です。CoreDNS では、プラグインを利用することで、DNS データで好きなことをすることができます。もし、ある機能が最初から提供されていない場合、プラグインを書くことでそれを追加することができます。
CoreDNS は、UDP/TCP (go'old DNS), TLS (RFC 7858), DoT, DNS over HTTP/2 - DoH - (RFC 8484) で入ってくる DNS 要求をリッスンすることができます。
インストール
corednsAUR、coredns-binAUR または coredns-gitAUR パッケージをインストールします
設定
現在、coredns-gitAUR だけが設定ファイルの例を提供しています。それはこちらで見ることができます。 CoreDNS の設定ファイル例
systemd は /etc/coredns/Corefile
を探すので、上記の設定ファイルをここに保存してください。
coredns.service
を起動/有効化します。
この設定例では、CoreDNS は 1053番ポートで起動します。CoreDNS の利用を確認するために、drill
コマンドを使用することができます。drill archlinux.org @127.0.0.1 -p 1053
アップストリームリゾルバとしての NextDNS
再帰的なリクエストを暗号化したい場合は、Corefile を編集して、設定例の 6 行目から 12 行目を削除してください。
forward . tls://45.90.28.0 tls://45.90.30.0 { tls_servername dns.nextdns.io
}
フォワードでは、任意の dns53 または DoT リゾルバーを使用できます。ローカルリゾルバとして、/etc/coredns/Corefile
を編集し、.:1053
を .:53
に変更すると、ネームサーバとして 127.0.0.1
を設定できます(ドメイン名前解決参照)。その後、coredns.service
を再起動します。
root で journalctl -u coredns
を実行し、デフォルトで動作していることを確認します。リゾルバはポート 53
をリッスンするようになります。リゾルバが他のホストからアクセスできるようにするには、/etc/coredns/Corefile
で他のネットワークインターフェイスを bind
で設定します。また、acl
プラグインを使用して、再帰的にサーバを使用すべき範囲をブロックすることができます。詳しくは CoreDNS plugin documentation を参照してください。
リゾルバが /etc/hosts
ファイルからのエントリーを尊重する必要がある場合、/etc/coredns/Corefile
に hosts
行を追加してください。
設定例
これは、便利なプラグインを使用した設定です。
/etc/coredns/Corefile
.:53 { bind 127.0.53.1 192.168.1.254 192.0.0.1 bufsize 1232 acl { allow net 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 192.0.0.0/24 block } hosts { reload 0 fallthrough } loadbalance forward . tls://45.90.28.0 tls://45.90.30.0 { tls_servername dns.nextdns.io } cache { success 4096 denial 1024 prefetch 512 } prometheus :9153 errors log }