Dapatkan DNSmasq untuk mengalihkan permintaan jaringan lokal ke server di jaringan

0

Saya memiliki server di jaringan saya. Mengaksesnya dari perangkat di luar jaringan dengan nama domain berfungsi dengan baik. Beberapa perangkat, seperti ponsel saya, terhubung ke jaringan dengan wifi, dan ketika mereka melakukannya, mereka gagal mencari bahwa nama domain harus menunjuk ke alamat IP internal tertentu. (Ini karena ISP saya yang disediakan router tidak memiliki kemampuan untuk melakukan hairpinning).

Saya tidak dapat mengedit / etc / hosts pada perangkat yang terhubung dengan wifi, meskipun saya bisa di server.

Untuk mencoba dan mengatasinya, saya mencoba mengganti server DNS default router saya dengan DNSmasq di server saya.

Saya ingin DNSmasq meneruskan semua permintaan untuk domain saya ke dirinya sendiri, dan domain lain ke layanan pencarian dns publik seperti openDNS.

Pada dasarnya, saya ingin perangkat seperti ponsel yang terhubung ke WiFi saya masih dapat terhubung ke domain saya, meskipun tidak ada hairpinning di router saya, dan tidak ada kemampuan untuk mengedit file ponsel / etc / hosts.

Saat ini, satu-satunya hal yang saya ubah adalah:

  1. Alamat IP server DNS router ke IP internal dan statis server saya.
  2. Server memiliki domain saya yang menunjuk ke IP internal statis itu sendiri di / etc / hosts
  3. Saya telah membuka port 52-54 dan mengarahkannya ke server saya (meskipun saat ini juga DMZ, jadi itu tidak masalah)
  4. / etc / host, /etc/resolv.conf dan /etc/dnsmasq.conf semuanya masih default.

Saat ini semua permintaan untuk batas waktu domain saya, oleh perangkat apa pun di jaringan, tempat saya belum memodifikasi file / etc / hosts.

Ada saran?

Sebagai catatan saya menjalankan Debian 8 dengan Nginx pada modem Bell Smartstream 2000.

Theyre In My Head
sumber
52-54? Apa tujuan dari itu? Satu-satunya port yang digunakan oleh DNS standar dari rentang itu adalah 53.
grawity
52-54 hanya karena untuk alasan apa pun, router saya hanya akan memungkinkan berbagai port untuk diteruskan, bukan hanya satu. Jika saya mencoba dan baru saja memasuki port 53 tidak akan menyimpannya. Jika saya memasukkan 52-54 ya. ¯_ (ツ) _ / ¯
Theyre In My Head

Jawaban:

0

Di dnsmasq , gunakan addressopsi.

-A, --address=/<domain>[/<domain>...]/[<ipaddr>]

Tetapkan alamat IP untuk mengembalikan host apa pun di domain yang diberikan. Pertanyaan dalam domain tidak pernah diteruskan dan selalu dijawab dengan alamat IP yang ditentukan yang mungkin IPv4 atau IPv6. Untuk memberikan alamat IPv4 dan IPv6 untuk suatu domain, gunakan flag -A berulang.

Sebagai contoh:

address=/example.com/www.example.com/192.168.1.42

Di Tidak Terbatas , gunakan opsi local-zonedan local-data. Sebagai contoh:

server:
    local-data: "example.com. A 192.168.1.42"
    local-data: "www.example.com. A 192.168.1.42"
grawity
sumber
Saya mencoba menambahkan ini (dengan nama domain berubah dari contoh Anda) ke /etc/dnsmasq.conf dan masih mendapatkan hasil yang sama. Situs yang dihosting secara lokal berfungsi dengan baik. Ada lagi waktu. Inilah traceroute dari router saya untuk wikipedia.org: pastebin.com/zaSyiEJR
Theyre In My Head
Apa hubungannya pelacak dengan apa pun? Jalur ke situs web - bagaimana permintaan HTTP dikirim - benar-benar terpisah dari bagaimana permintaan DNS dilakukan. Anda harus lebih spesifik tentang siapa yang benar - benar keluar.
grawity