Seperti yang disebutkan Dan, Anda dapat menggunakan /etc/hostsfile sistem Anda untuk mencapai apa yang Anda inginkan. Ini bukan "mengatur TLD" dengan cara yang berarti, karena sebenarnya tidak ada hubungannya dengan DNS. /etc/hostsadalah (... biasanya ...) direferensikan oleh sistem Anda sebelum diperiksa dengan DNS. The hostsberkas hanya memetakan nama ke alamat, dan tidak tahu apa-apa tentang domain. Jadi, jika Anda memasukkan ini ke /etc/hosts:
127.0.0.1 localhost apple.com
Dan kemudian lakukan ini:
curl http://apple.com/
curlakan mencoba terhubung ke 127.0.0.1. Tetapi jika Anda melakukan ini:
curl http://www.apple.com/
Sistem Anda akan (... mungkin ...) merujuk ke DNS, karena www.apple.comtidak ditemukan dalam hostsfile. Karena sebagian besar perangkat lunak menggunakan fasilitas resolusi nama sistem (seperti dikendalikan oleh /etc/nsswitch.conf), ini akan berfungsi untuk hampir semua hal. Ini sederhana, tetapi ada beberapa kelemahan:
- Jika Anda memiliki lebih dari satu mesin, Anda harus selalu memperbarui
hostsfile tersebut.
- Anda tidak dapat memberikan apa pun selain pemetaan nama-ke-alamat menggunakan
hostsfile. Jadi, tidak ada MXatau SRVcatatan, tidak ada CNAMEcatatan, dan sebagainya.
Solusi termudah berikutnya adalah menggunakan dnsmasq , yang merupakan alat yang sangat bagus yang menyediakan layanan DNS, DHCP, dan TFTP - dengan kata lain, hampir semua yang Anda butuhkan untuk jaringan kecil. Dengan menggunakan dnsmasq, Anda dapat:
- Buat TLD Anda sendiri untuk digunakan di jaringan Anda,
- Berikan alamat ip server nama lokal Anda secara otomatis ke klien melalui DHCP,
- Timpa jawaban dari server DNS publik (jadi, Anda dapat mengganti "www.google.com" dengan server internal pilihan Anda, misalnya).
dnsmasq didokumentasikan dengan cukup baik, tetapi jika Anda memiliki pertanyaan spesifik setelah melihat dokumentasi kembali dan saya akan melihat apa yang bisa saya lakukan.
Inilah contoh yang sangat singkat ... jika Anda menjalankan ini:
dnsmasq -C /dev/null --local=/localnet/ -s localnet -E
Itu -C /dev/nullada untuk memastikan kita mulai dengan konfigurasi "kosong", karena saya tidak tahu apa yang mungkin ada di lokal Anda /etc/dnsmasq.conf. Akankah baris perintah ini, dnsmasqakan membuat setiap entri dalam /etc/hostsfile Anda tersedia melalui DNS di domain "localnet". Jadi misalnya, jika saya memiliki yang berikut dalam hostsfile saya :
10.10.10.10 fluff
10.10.10.11 nutella
Saya bisa melakukan ini pada sistem yang dikonfigurasi untuk menggunakan dnsmasqinstance saya untuk DNS:
$ host fluff.localnet
fluff.localnet has address 10.10.10.10
Dan saya juga bisa menggunakan nama yang tidak berkualitas:
$ host nutella
nutella has address 10.10.10.11
Anda bisa menjadi sangat suka dnsmasq, dan mungkin lebih dari cukup untuk jaringan rumah. Jika Anda perlu melayani populasi yang lebih besar - dan menyediakan layanan DNS yang berlebihan, tampilan dalam / luar, ACL, dan sebagainya - maka Anda akan melihat sesuatu seperti BIND , tetapi itu tidak perlu untuk apa yang Anda lakukan (atau untuk apa yang saya lakukan, dalam hal ini - saya gunakan dnsmasqdi rumah).