cara menambahkan entri ke resolver DNS lokal [ditutup]

19

Saya ingin melakukan beberapa tes di linux. Saya ingin meletakkan server web kecil di mesin dengan IP: 1.2.3.4 (asumsi) dan ketika permintaan DNS dibuat untuk URL tertentu: kitty.myweb.com Saya ingin mengembalikan alamat IP ini.

Skenario:

  1. Ketika saya membuka browser (firefox atau apa pun), saya memasukkan URL kitty.myweb.com dan browser akan melakukan permintaan DNS
  2. Saya ingin menulis sebuah program yang melakukan permintaan DNS untuk kitty.myweb.com

Saya tahu bahwa setiap komputer memiliki resolver DNS lokal yang menyimpan beberapa entri; panggilan ke URL akan terlebih dahulu meminta resolver DNS lokal, dan jika tidak ada entri yang sesuai, ia akan mengirimkan query ke resolver DNS eksternal di LAN atau Internet.

Yang saya inginkan adalah menambahkan entri (kitty.myweb.com: 1.2.3.4) ke resolver DNS lokal, sehingga untuk 2 skenario di atas, respons DNS akan menjadi 1.2.3.4 tanpa harus membuat kueri eksternal.

Apakah mungkin untuk melakukan ini di linux, dan jika demikian, bagaimana? Apakah mungkin ada cuplikan kode C yang akan melakukan ini?

Misteri
sumber

Jawaban:

30

Anda mungkin dapat menggunakan / etc / hosts untuk menambahkan entri Anda. Ini tidak benar-benar menggunakan DNS tetapi mempengaruhi perpustakaan resolver di Linux, yang digunakan oleh sebagian besar aplikasi. Menambahkan:

1.2.3.4 kitty.myweb.com

Opsi lain adalah menginstal server DNS sederhana di sistem Anda. Yang sering saya gunakan disebut dnsmasq. Pada beberapa distro diinstal secara default sebagai penyelesai caching, dalam hal ini Anda hanya perlu memodifikasi konfigurasi untuk memasukkan:

address = / kitty.myweb.com / 1.2.3.4

Jika Anda menjalankan server DNS Anda sendiri, Anda mungkin perlu bermain dengan /etc/resolv.conf yang digunakan oleh perpustakaan resolver Linux. Untuk membuat perpustakaan resolver melihat server DNS lokal, Anda akan memerlukan entri di resolv.conf:

nameserver 127.0.0.1

Gregor
sumber
9

Cara termudah untuk menambahkan satu entri DNS pada host lokal Anda adalah menambahkannya ke file host. Lokasi file itu dapat bervariasi per distribusi, tetapi lokasi tradisionalnya adalah /etc/hostsdan seharusnya terlihat seperti ini:

:: 1 localhost localhost.domainanda.tld
127.0.0.1 localhost localhost.yourdomain.tld
1.2.3.4 kitty.myweb.com

Perhatikan bahwa ini hanya akan mempengaruhi komputer Anda sendiri dan itu tidak skala dengan baik. Dengan kata lain, tidak masalah untuk pengujian sederhana, hanya saja jangan mencoba mengedit file host di banyak komputer. Untuk itu Anda ingin entri DNS yang tepat.

Hennes
sumber