[CATATAN: Solusi dari pertanyaan ini sempurna, dengan sesuatu yang menyimpang dari yang ditunjukkan judulnya.]
Saya menghadapi masalah kecil dengan Windows Server 2003 DNS service
. Di perusahaan saya, saya menjalankan Microsoft DNS server ( 172.16.0.12
) untuk melakukan resolusi nama ke intranet perusahaan saya (nama domain berakhir dev.nls
. Diselesaikan ke IP 172.16 ... ), dan juga dikonfigurasikan sebagai penerusan DNS untuk meneruskan nama domain lainnya ( mis. * .google.com, * .sf.net) ke Internet real DNS servers
. Server DNS internal ini tidak pernah cenderung melayani pengguna dari dunia luar.
Dan, kami menjalankan server surat (melayani surat masuk untuk domain Internet nyata@nlscan.com
) di dalam firewall perusahaan yang dapat diakses dengan cara apa pun:
- dengan menghubungkan ke
172.16.0.10
dari dalam intranet. - dengan menghubungkan ke
mail.nlscan.com
(diselesaikan ke202.101.116.9
) dari Internet.
Perhatikan itu 172.16.0.10
dan 202.101.116.9
bukan mesin fisik yang sama. Yang 202
satu adalah mesin firewall yang melakukan port forwarding port 25
dan 110
ke alamat intranet 172.16.0.10
.
Sekarang pertanyaan saya: Jika pengguna di dalam LAN perusahaan ingin menyelesaikan mail.nlscan.com
, itu memutuskan untuk 202.101.116.9
. Itu benar dan bisa diterapkan, TETAPI TIDAK BAIK, karena lalu lintas surat masuk ke mesin firewall kemudian memantul ke 172.16.0.10
. Saya berharap bahwa kami internal DNS server
dapat mencegat nama mail.nlscan.com
dan mengatasinya ke 172.16.0.10. Jadi, saya harap saya bisa menulis entri di file "host" 172.16.0.12
untuk melakukan ini. Tapi, bagaimana bisa Microsoft DNS server
mengenali file "host" ini?
Mungkin Anda menyarankan, mengapa tidak menggunakan pengguna intranet 172.16.0.10
untuk mengakses server email saya? Saya harus mengatakan itu tidak nyaman, misalkan pengguna (karyawan) bekerja di laptop-nya, siang hari di kantor dan malam hari di rumah. Ketika dia di rumah, dia tidak bisa menggunakan 172.16.0.10
.
Membuat zona untuk nlscan.com
di internal kami DNS server
tidak layak, karena server nama untuk nlscan.com
domain ada di ISP kami, dan bertanggung jawab untuk menyelesaikan nama host lain dan sub-domain di bawah nlscan.com.
[EDIT]
Seperti yang WesleyDavid
disarankan, saya mengikuti solusi hanya membuat zona bernama mailserver.nlscan.com
dan menempatkan catatan A tanpa nama di zona itu . Waktu membuktikan ini bekerja dengan baik.
sumber
Jawaban:
Bagian terakhir dari posting ini salah. Saya mendapat kesan, berdasarkan pada beberapa hal yang saya baca di web (jika itu di web, pasti benar!) Bahwa bagian dari tugas Layanan Server DNS Windows untuk membuat cache adalah juga memuat file host-nya ke dalam cache bersama dengan data zona lokalnya. Saya mencari-cari dan tidak dapat menemukan bukti kuat tentang ini. Saya menguji teori pada mesin Server 2008 R2 saya sendiri dan menemukan bahwa file host tidak digunakan untuk membangun Cache Server DNS.
Namun, saya yakin saya punya solusi yang sedikit lebih elegan daripada Massimo. Alih-alih membuat zona otoritatif untuk seluruh zona nlscan.com, cukup buat zona bernama mailserver.nlscan.com dan letakkan catatan A tanpa nama di zona itu. Catatan tanpa nama A akan memiliki nama yang sama dengan zona itu sendiri dan Anda bisa memberikannya alamat IP yang Anda inginkan. Semua domain lain di bawah nlscan.com dan juga nlscan.com sendiri akan diselesaikan oleh DNS publik.
Saya baru saja menguji ini di server saya sendiri DNS 2008 R2 Server dan mampu membuat situs web teman saya (nessus.nl) menyelesaikan melalui server DNS publik tetapi subdomain tertentu (blog.nessus.nl) menyelesaikan ke alamat IP Apple.com . Cobalah dan lihat apakah itu berhasil untuk Anda.
Posting yang lebih tua dan salah dimulai:
Jika pemahaman saya benar (EDIT: dan tidak), ketika cache DNS dibuat di mesin Server 2003, ia menarik entri dari file host dan juga data zona. Menempatkan
172.16.0.10 mailserver.nlscan.com
dalam file host mesin Server 2003 Anda harus menyelesaikan masalah. Mulai ulang layanan DNS Anda setelah mengubah file host Anda.Gunakan ipconfig / displaydns pada mesin Windows apa pun (khususnya, mesin DNS Server 2003 Anda) untuk melihat entri file host Anda. Ingat juga bahwa tanggapan negatif di-cache di klien Anda, jadi selalu jalankan ipconfig / flushdns pada klien yang Anda coba. Kalau tidak, Anda akan berakhir menyalahgunakan diri Anda terhadap berbagai benda keras saat Anda bertanya-tanya mengapa klien Anda tidak dapat menyelesaikan nama yang baru saja Anda masukkan ke file zone / hosts. =)
Sudahkah Anda mencoba ini dan gagal?
sumber
hosts
file untuk menyelesaikan nama. Ini akan menggunakan data sendiri, forwarder atau kueri rekursif, tetapi bukanhosts
file lokal .Keinginan untuk memiliki pengguna internal mendapatkan IP internal untuk sumber daya sementara pengguna eksternal mendapatkan IP eksternal untuk sumber daya yang sama adalah umum. Ini disebut sebagai DNS otak terbelah. Anda memiliki satu server DNS yang menghadap internet dan server DNS internal lain untuk pengguna lokal. Pengguna internal menggunakan DHCP di jaringan Anda dan di server DHCP Anda mengiklankan server DNS internal. Ketika pengguna Anda jauh dari kantor, server DHCP mereka akan menugaskan mereka ke server DNS yang hanya akan tahu tentang zona eksternal.
Anda tampaknya ingin DNS otak terbelah tanpa benar-benar hosting zona secara internal. Anda menyarankan bahwa hosting zona secara internal bermasalah karena Anda tidak ingin pengguna mendapatkan IP internal ketika mereka bekerja dari rumah tetapi itu tidak masuk akal karena ketika mereka di rumah mereka mendapatkan IP mereka dari server DHCP yang berbeda itu tidak akan mengiklankan server DNS internal Anda. Ini akan mengiklankan server DNS ISP mereka yang hanya akan tahu tentang zona eksternal Anda dan karenanya hanya akan memberi mereka alamat IP eksternal.
Akhirnya, saya tidak berpikir Anda akan berhasil dengan meminta server DNS untuk menyajikan catatan dari file host di server DNS. Server DNS menyajikan catatan dari file zonanya. File host lokal pada server DNS menyebarkan entri ke cache penyelesaian klien lokal yang hanya berlaku untuk pencarian di mesin itu. Entri tersebut tidak dilayani oleh server DNS yang merupakan mekanisme yang berbeda.
Baca di DNS otak terbagi - ini adalah cara normal untuk menangani situasi ini.
sumber
Wes: Saya tidak yakin siapa yang mengganggu Anda tetapi saya ingin mengklarifikasi penggunaan file hosts: File hosts digunakan oleh komponen resolver klien DNS, bukan komponen server DNS. Entri dalam file host pada server DNS akan digunakan oleh server DNS ketika itu bertindak sebagai klien DNS. Misalnya, entri dalam file host server DNS W2K8 saya seperti ini:
1.1.1.1 test.test.com
dimuat ke cache klien DNS server DNS (bukan cache server). Jika saya melakukan ping test.test.com dari server DNS saya, ia mengembalikan 1.1.1.1 seperti yang diharapkan. Jika saya kemudian menjalankan nslookup pada server DNS dan meminta test.test.com, ia mengembalikan alamat ip publik yang benar terdaftar untuk test.test.com sebagai komponen klien DNS pada server DNS sekarang meminta komponen server DNS untuk resolusi (seperti halnya klien DNS lainnya). Ini adalah ide yang membingungkan untuk membungkus kepala Anda, tetapi server DNS juga merupakan klien DNS dan ketika komponen klien DNS dipanggil untuk bertindak, ia bertindak seperti halnya klien DNS lainnya dengan melihat cache klien DNS itu sendiri, termasuk entri yang sudah ada sebelumnya. -Muat dari file host. Hanya ketika komponen klien DNS menggunakan komponen server DNS (dengan menanyakan server DNS yang dikonfigurasi di dalamnya '
Setiap klien DNS yang menanyakan server DNS akan selalu mendapatkan jawaban "nyata" dan bukan entri host karena cache klien DNS server DNS digunakan oleh server itu sendiri (sebagai klien DNS) dan bukan oleh komponen server DNS.
sumber
Sejauh yang saya tahu, tidak ada cara untuk membuat Windows DNS menggunakan
hosts
file untuk menangani resolusi nama; tetapi ini tidak diperlukan.Anda dapat dengan aman membuat zona di server DNS internal Anda dengan nama yang sama dengan zona Internet publik; apa yang akan terjadi adalah, server Anda akan menangani permintaan untuk nama di zona itu menggunakan data sendiri, alih-alih meneruskan permintaan tersebut ke server nama resmi untuk zona itu; ini kadang-kadang disebut "membayangi", karena membuat zona publik "nyata" tidak tersedia untuk klien internal, sebagai gantinya menjawab dengan data "palsu".
Yang harus Anda berhati-hati adalah, Anda harus mengisi zona internal ini dengan semua nama yang Anda perlukan, bahkan menggunakan alamat IP publik di mana diperlukan; jika tidak, klien internal tidak akan dapat menyelesaikan nama-nama itu.
Katakanlah zona publik Anda terlihat seperti ini:
Anda ingin klien internal menyelesaikan mail.nlscan.com sebagai 172.16.0.10; tidak apa-apa, jadi Anda membuat zona "nlscan.com" di server DNS internal Anda dan memasukkan "mail.nlscan.com -> 172.16.0.10" di dalamnya.
Tetapi sekarang klien internal Anda tidak dapat menyelesaikan "www.nlscan.com", karena server menganggap itu otoritatif untuk zona itu, sehingga tidak akan menjawab pertanyaan (karena tidak tahu tentang host itu), tetapi juga tidak akan meneruskannya kepada siapa pun.
Untuk mengatasi ini, Anda harus memasukkan "www.nlscan.com" ke dalam zona internal Anda; itu dapat menunjuk ke alamat IP publik yang sebenarnya jika Anda ingin klien Anda mengaksesnya dengan cara itu, atau Anda bisa menggunakan pengalihan yang sama yang Anda gunakan untuk "mail.nlscan.com", jika "www" juga diteruskan oleh firewall Anda ke beberapa server internal.
Prinsip yang sama berlaku untuk nama apa pun di zona.
Pengaturan ini tidak akan berdampak pada klien eksternal, atau pada pengguna Anda yang sementara berada di luar jaringan Anda, karena zona "bayangan" internal itu tidak akan pernah terlihat dari Internet.
sumber
Nevermind the hostfile, cukup tambahkan zona baru di DNS mail.domain.com dan tambahkan host di zona tersebut. biarkan namanya kosong (secara otomatis akan menggunakan nama zona) dan masukkan alamat IP dari server surat lokal ;-)
sumber