Nine DNS は、質問ソースに基づいて DNS 解決を提供する柔軟な DNS サーバーです。
NineDNS DNS レコードを解決する柔軟な方法を提供することを目的としています。
CIDR、ポート、プロトコルなどによって、さまざまな質問ソースを照合できます。
クライアントは、ネットワーク環境に基づいて異なる DNS 解決を使用できます。
たとえば、cidr でクライアントをフィルタリングし、クライアントのさまざまな DNS レコードを解決できます。
さらに、NineDNS は、MySQL や PostgreSQL などのリモート データベースからの DNS レコードの取得をサポートしています。
DNS レコードを一元管理するのは簡単です。
NineDNSクラウドネイティブ コンポーネントの一部として統合できます。キャッシュ共有、負荷分散、ログ トレースをサポートします。
NineDNSを作成する理由は、質問元に応じて DNS レコードを解決する柔軟な方法を提供するためです。
たとえば、cidr、ポート、プロトコルなどによってさまざまな質問ソースを照合できます。
クライアントは、ネットワーク環境に基づいて異なる DNS 解決を使用できます。
サーバーがイントラネットに展開され、ジャンプ サーバーまたはトンネル経由でサーバー ポートが公開されています。
また、クライアントがイントラネット内にある場合はサーバー ドメインをイントラネット IP に解決し、クライアントが外部にある場合はパブリック IP に解決するとします。
これは、 NineDNSの典型的な使用例です。ドメインをNineDNSサーバーにNS 、クライアントのネットワーク環境 (cidr など) に基づいてドメインを解決するようにNineDNSを設定するだけです。 
フル機能の DNS サーバーとなるために、 NineDNS MySQL、ファイル、lark などのリモート データベースからの DNS レコードの取得をサポートしています。
他のクラウド DNS プロバイダーと同様に、DNS レコードを一元的な方法で簡単に管理できます。
構成を定義します。
{
"addr" : " :53 " , // listen address
"debug" : true , // debug mode
"domains" : { // dns resolve domain key-value pairs. domain <===> resolve config
"example.com" : {
"authoritative" : true , // authoritative mode
"recursion" : false , // recursion mode
"upstream" : " 223.5.5.5:53 " , // upstream dns server, only works in recursion mode
"ttl" : 600 , // default ttl, attention: ttl is server level, not record level. server re-fetch record source ttl
"providers" : { // record source providers. Read [Record Provider](#record-provider) for more details
"mysql" : " root:123456@tcp(localhost:3306)/dns " ,
"sqlite" : " dns.db "
},
"rules" : { // dns resolve match rules. name <===> rule. Name is also used as table name in mysql record source
"all" : {
"cidrs" : [ // cidr match
" 0.0.0.0/0 "
],
"ports" : [
" 1-65535 " // port match
]
}
}
}
},
"redis" : { // redis config
"addr" : " localhost:6379 " ,
"db" : 8
}
}DNS に関する質問が来ると、
NineDNSドメイン名とルールの両方に一致する定義されたルールを見つけます。次に、ルールで定義されたレコード ソース内のレコードを検索します。
providersの詳細については、「レコード プロバイダー」を参照してください。
以上です!今すぐ構成ファイルを使用してNineDNS実行します。
$ ninedns -c config.json
-cが指定されていない場合、NineDNS現在のディレクトリにninedns.jsonを自動ロードします。
リリースページからダウンロードしてください。
| 名前 | 説明 |
|---|---|
ninedns-mini | ほとんどのプロバイダーを含まない NineDNS バイナリ。 |
ninedns | mysql プロバイダーとファイル プロバイダーを備えた NineDNS バイナリ |
ninedns-full | すべてのプロバイダーを含む NineDNS バイナリ。 |
miekg の優雅でよく設計された go dns ライブラリ miekg/dns に感謝します。