Seperti yang disebutkan Dan, Anda dapat menggunakan /etc/hosts
file sistem Anda untuk mencapai apa yang Anda inginkan. Ini bukan "mengatur TLD" dengan cara yang berarti, karena sebenarnya tidak ada hubungannya dengan DNS. /etc/hosts
adalah (... biasanya ...) direferensikan oleh sistem Anda sebelum diperiksa dengan DNS. The hosts
berkas 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/
curl
akan 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.com
tidak ditemukan dalam hosts
file. 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
hosts
file tersebut.
- Anda tidak dapat memberikan apa pun selain pemetaan nama-ke-alamat menggunakan
hosts
file. Jadi, tidak ada MX
atau SRV
catatan, tidak ada CNAME
catatan, 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/null
ada 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, dnsmasq
akan membuat setiap entri dalam /etc/hosts
file Anda tersedia melalui DNS di domain "localnet". Jadi misalnya, jika saya memiliki yang berikut dalam hosts
file saya :
10.10.10.10 fluff
10.10.10.11 nutella
Saya bisa melakukan ini pada sistem yang dikonfigurasi untuk menggunakan dnsmasq
instance 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 dnsmasq
di rumah).