ホスト

ソース

hosts は、/etc/hosts スタイルのファイルからゾーンデータを供給できるようにします。

説明

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によって更新されました。