การตั้งค่า dnsmasq สำหรับเครือข่ายท้องถิ่น


18

ฉันและนักพัฒนากลุ่มเล็ก ๆ เพิ่งย้ายไปที่สำนักงานใหม่และฉันต้องการตั้งค่า dnsmasq บนเซิร์ฟเวอร์การพัฒนาของเราดังนั้นเมื่อเราปรับใช้เว็บแอปที่นั่นเราไม่ต้องแก้ไขไฟล์โฮสต์ของเราเอง เรามีเราเตอร์ที่ 192.168.3.1 ซึ่งเราไม่สามารถเข้าถึงได้ ฉันคิดว่าฉันจะติดตั้งเซิร์ฟเวอร์ DNS ในกล่องพัฒนาและเราทุกคนบันทึกว่า IP เป็นเซิร์ฟเวอร์ DNS สำรอง น่าเสียดายที่ฉันดิ้นรนเพื่อให้งานนี้

ชื่อของเซิร์ฟเวอร์ devel คือ devbox, มันคือ IP คือ 192.168.3.99, และกำลังใช้งานเซิร์ฟเวอร์ Ubuntu ล่าสุด (Karmic)

คอมพิวเตอร์ของฉันใช้งาน Ubuntu Desktop (Karmic)

สิ่งที่ฉันต้องการบรรลุ

สมมติว่าฉันมีสามเว็บไซต์, เว็บไซต์ 1, เว็บไซต์ 2, เว็บไซต์ 3, ทำงานบนกล่องพัฒนา ฉันต้องการเข้าถึงพวกเขาโดย URL:

http://website1.devbox
http://website2.devbox
http://website3.devbox

ดังนั้นฉันได้กำหนดค่า Apache บนกล่อง devel ติดตั้ง dnsmasq และใส่บรรทัดต่อไปนี้ลงในไฟล์โฮสต์:

192.168.3.99 website1.devbox
192.168.3.99 website2.devbox
192.168.3.99 website3.devbox

และแก้ไขไฟล์ resolv.conf ของฉันเองเพื่อรวมกล่อง devel เป็นเนมเซิร์ฟเวอร์:

nameserver 192.168.3.99 

มันใช้งานได้ดีฉันสามารถเข้าถึงเว็บไซต์ ปัญหาคือมันไม่ได้ปรับขนาดได้ดี ฉันต้องการโดเมนทั้งหมดที่ลงท้ายด้วย. dvd ส่งต่อไปยังกล่องการพัฒนาและนี่คือสิ่งที่ฉันกำลังดิ้นรนด้วย

ฉันลองใส่แล้ว

192.168.3.99 devbox

ลงในไฟล์ hosts และแก้ไขบรรทัดใน dnsmasq.conf:

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/devbox/

แต่ฉันไม่สามารถทำงานได้ ถ้าฉันลอง url ใด ๆ ที่ไม่ได้อยู่ในแฟ้มโฮสต์ของกล่องการพัฒนาอย่างชัดเจนการค้นหา dns ล้มเหลว

คำสั่งท้องถิ่นเป็นอย่างอื่นหรือไม่? ฉันกำลังดูที่ผิดหรือเปล่า?

คำตอบ:


14

อ้างถึงเอกสาร dnsmasqโดยเฉพาะอย่างยิ่งdnsmasq manpageและไฟล์การกำหนดค่าตัวอย่าง ท้องถิ่นคำหลักบอก dnsmasq เพื่อดำเนินการค้นหาผู้ที่มีโดเมนข้อมูลท้องถิ่น สิ่งนี้มีผลต่อคำขอที่ส่งไปยัง DNSmasq สำหรับfoo.localnetและbar.localnetเป็นต้น ฉันไม่คิดว่านี่คือสิ่งที่คุณต้องการ

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/localnet/

หากต้องการบังคับให้การค้นหาโฮสต์ / โดเมนย่อยแก้ไขไปยังที่อยู่เฉพาะคุณอาจต้องการใช้คำหลักที่อยู่ ตัวอย่างที่สองด้านล่างควรอนุญาตให้web1.devboxและweb2.devboxและweb73872.devboxแก้ปัญหาทั้งหมดตามที่อยู่ที่ระบุ

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
address=/doubleclick.net/127.0.0.1

# for your example
address=/devbox/192.168.3.99

ฉันใช้ DNSmasq ที่บ้านเพื่อจัดการสิ่ง DNS อย่างง่ายสำหรับ LAN ของฉัน ในกรณีดังกล่าวคำหลักในท้องถิ่นและโดเมนที่เกี่ยวข้องและโฮสต์ขยายมีความเหมาะสม เซิร์ฟเวอร์ DNSmasq เป็นเซิร์ฟเวอร์หลักของฉันดังนั้นคำขอทั้งหมดจึงผ่าน ที่อยู่นอกระบบใด ๆ จะถูกส่งกลับไปที่เนมเซิร์ฟเวอร์ของ ISP คุณอาจพิจารณาการกำหนดค่านั้นถ้าเป็นไปได้


คำตอบสำหรับคำถามอื่นบ่งชี้ว่าaddress=/.devbox/192.168.3.99อาจเป็นไวยากรณ์ที่เหมาะสมกว่าสำหรับวัตถุประสงค์ของคุณ
ต้มตุ๋น quixote

Gee ฉันควรจะอ่านส่วนที่ฉันวางจาก config มันชัดเจนว่าไม่ใช่สิ่งที่ฉันต้องการ คำสั่งที่อยู่แก้ไขปัญหาขอขอบคุณ!
K. Norbert

ฉันใช้ข้างต้นด้วยการบิด: เซิร์ฟเวอร์เว็บ / dns / dhcp มีอินเตอร์เฟซไร้สายในโหมด Adhoc แม้ว่าในขณะที่จับแพ็คเก็ตฉันสามารถเห็นการร้องขอและการตอบสนอง mDNS ฉันไม่สามารถเข้าถึงเซิร์ฟเวอร์ตามชื่อ ราวกับว่าเนื้อหาของการตอบสนองไม่เคยลงทะเบียน ความคิดใด ๆ
จอร์จ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.