説明
hosts プラグインは、/etc/hosts
ファイルからゾーンを供給するのに役立ちます。ディスク上に存在するプリロードされたファイルから供給を行います。ファイルに変更がないかを確認し、それに応じてゾーンを更新します。このプラグインは、A、AAAA、および PTR レコードのみをサポートしています。 hostsプラグインは、広告サーバーへのアクセスをブロックする、すぐに利用できるhostsファイルで使用できます。
プラグインは、hostsファイルの内容を5秒ごとにリロードします。リロード時に、CoreDNSは新しい定義を使用します。ファイルが削除された場合、インライン化されたコンテンツは引き続き提供されます。ファイルが復元されると、再び使用されるようになります。
hosts プラグインに一致するものがない場合に、リクエストをプラグインチェーンの残りの部分に渡したい場合は、fallthrough
オプションを指定する必要があります。
このプラグインは、サーバーブロックごとに1回のみ使用できます。
hostsファイル
通常、エントリはhosts(5) manページで説明されているように、IP_address canonical_hostname [aliases...]
の形式です。
例
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 localhost
192.168.1.10 example.com example
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fdfc:a744:27b5:3b0e::1 example.com example
PTRレコード
逆引き参照用のPTRレコードは、CoreDNSによって(hostsファイルのエントリに基づいて)自動的に生成され、手動で作成することはできません。
構文
hosts [FILE [ZONES...]] {
[INLINE]
ttl SECONDS
no_reverse
reload DURATION
fallthrough [ZONES...]
}
- FILE 読み込んで解析するhostsファイル。パスが相対パスの場合、rootプラグインからのパスが先頭に追加されます。省略した場合、デフォルトは/etc/hostsです。ファイルへの変更を5秒ごとにスキャンします。
- ZONES 権威があるべきゾーン。空の場合、構成ブロックからのゾーンが使用されます。
- INLINE Corefileにインライン化されたhostsファイルの内容。fallthroughの前に任意の行がある場合、それらはすべてhostsファイルの追加コンテンツとして扱われます。指定されたhostsファイルのパスは引き続き読み込まれますが、エントリは上書きされます。
ttl
生成されたレコードのDNS TTL(フォワードおよびリバース)を変更します。デフォルトは3600秒(1時間)です。reload
hostsファイルの各リロード間の期間を変更します。0秒の時間はこの機能を無効にします。有効な期間の例:「300ms」、「1.5h」、「2h45m」。 Goのtime パッケージを参照してください。no_reverse
ホストのin-addr.arpa
またはip6.arpa
エントリの自動生成を無効にしますfallthrough
ゾーンが一致し、レコードを生成できない場合は、リクエストを次のプラグインに渡します。[ZONES...] が省略された場合、フォールスルーはプラグインが権威を持つすべてのゾーンで発生します。特定のゾーン(たとえば、in-addr.arpa
およびip6.arpa
)がリストされている場合、それらのゾーンのクエリのみがフォールスルーの対象になります。
メトリクス
モニタリングが(prometheus プラグインを介して)有効になっている場合、次のメトリクスがエクスポートされます。
coredns_hosts_entries{}
- hostsおよびCorefile内のエントリの合計数。coredns_hosts_reload_timestamp_seconds{}
- hostsファイルの最終リロードのタイムスタンプ。
例
/etc/hosts
ファイルをロードします。
. {
hosts
}
現在のディレクトリにあるexample.hosts
ファイルをロードします。
. {
hosts example.hosts
}
example.hostsファイルをロードし、そこからexample.orgとexample.netのみを提供し、クエリが一致しない場合は次のプラグインにフォールスルーします。
. {
hosts example.hosts example.org example.net {
fallthrough
}
}
Corefileにインライン化されたhostsファイルをロードします。
example.hosts example.org {
hosts {
10.0.0.1 example.org
fallthrough
}
whoami
}
参考資料
/etc/hosts
ファイルのエントリの形式は、IETF RFC 952に基づいており、これはIETF RFC 1123によって更新されました。