Nine DNS adalah server DNS fleksibel yang menawarkan resolusi DNS berdasarkan sumber pertanyaan.
NineDNS
bertujuan untuk menyediakan cara yang fleksibel untuk menyelesaikan catatan DNS.
Anda dapat mencocokkan sumber pertanyaan yang berbeda berdasarkan cidr, port, protokol, dan sebagainya.
Klien dapat menggunakan penyelesaian dns yang berbeda berdasarkan lingkungan jaringan mereka.
Misalnya, Anda dapat memfilter klien berdasarkan cidr, dan menyelesaikan data dns yang berbeda untuk klien tersebut.
Selain itu, NineDNS mendukung pengambilan catatan DNS dari database jarak jauh seperti MySQL atau PostgreSQL.
Sangat mudah untuk mengelola catatan DNS secara terpusat.
NineDNS
dapat berintegrasi sebagai bagian dari komponen cloud-native. Ini mendukung berbagi cache, penyeimbangan beban, dan penelusuran log.
Alasan mengapa kami membuat NineDNS
adalah untuk menyediakan cara yang fleksibel untuk menyelesaikan data DNS sesuai dengan sumber pertanyaan.
Misalnya, Anda dapat mencocokkan sumber pertanyaan yang berbeda berdasarkan cidr, port, protokol, dan sebagainya.
Klien dapat menggunakan penyelesaian dns yang berbeda berdasarkan lingkungan jaringan mereka.
Server Anda menyebarkan intranet dan membuka port server melalui server lompat atau terowongan.
Dan Anda ingin menyelesaikan domain server menjadi ip intranet saat klien berada di intranet, dan memutuskan ke ip publik saat klien berada di luar.
Ini adalah kasus penggunaan khas NineDNS
. Anda cukup NS
domain Anda ke server NineDNS
, dan mengkonfigurasi NineDNS
untuk menyelesaikan domain berdasarkan lingkungan jaringan klien, cidr misalnya.
Untuk menjadi server DNS berfitur lengkap, NineDNS
mendukung pengambilan catatan DNS dari database jarak jauh seperti MySQL, file, lark, dan sebagainya.
Sama seperti Penyedia Cloud DNS lainnya, Anda dapat mengelola data DNS dengan mudah dan terpusat.
Tentukan konfigurasi:
{
"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
}
}
Ketika pertanyaan tentang DNS masuk,
NineDNS
akan menemukan aturan yang ditentukan yang cocok dengan nama domain dan aturannya. Kemudian cari rekaman di sumber rekaman yang ditentukan dalam aturan.
Baca Penyedia Catatan untuk rincian lebih lanjut tentang providers
.
Dan itu saja! Jalankan NineDNS
dengan file konfigurasi sekarang:
$ ninedns -c config.json
NineDNS
memuat secara otomatisninedns.json
di direktori saat ini jika-c
tidak ditentukan.
Unduh dari halaman rilis.
Nama | Keterangan |
---|---|
ninedns-mini | Biner NineDNS tanpa sebagian besar penyedia. |
ninedns | Biner NineDNS dengan penyedia mysql dan penyedia file |
ninedns-full | Biner NineDNS dengan semua penyedia. |
Terima kasih khusus kepada perpustakaan go dns miekg/dns yang anggun dan dirancang dengan baik