DD-WRT ให้บริการเซิร์ฟเวอร์ DNS เพิ่มเติมแทนที่จะเป็นเพียง IP ของเราเตอร์


9

ฉันมี DD-WRT (โดยใช้ DD-WRT v24SP2-MULTI (03/21/11) std) เราเตอร์ตั้งค่าด้วย DNSMasq เพื่อแก้ไขโดเมนบางโดเมนไปยังที่อยู่ภายในและผ่านทุกอย่างอื่นผ่าน เราเตอร์ได้รับการกำหนดค่าให้ใช้เซิร์ฟเวอร์ DNS สาธารณะของ Google เพื่อแก้ไขที่อยู่

หน้าจอตั้งค่าของฉันมีลักษณะดังนี้:

หน้าจอเซ็ตอัพ DDWRT

ปัญหาของฉันคือเมื่อไคลเอนต์ DHCP เชื่อมต่อพวกเขาได้รับเราเตอร์บวกเซิร์ฟเวอร์ DNS สองตัวของ Google เป็นเซิร์ฟเวอร์ DNS ที่กำหนด:

เซิร์ฟเวอร์ DNS ที่กำหนดโดย DHCP

นี่เป็นปัญหาเนื่องจากบางครั้งไคลเอนต์ไร้สายพยายามแก้ไขโดเมนที่ควรจะชี้ไปยังที่อยู่ IP ภายในและจบลงด้วยการรับ IP ภายนอกแทนเพราะเหตุผลใดก็ตามที่คำขอของพวกเขาถูกส่งไป8.8.8.8ยังเราเตอร์

ฉันไม่ต้องการให้เราเตอร์ให้บริการอะไรนอกจาก IP ของตัวเองเป็นเซิร์ฟเวอร์ DNS เป็นไปได้ไหม


1
ฉันอาจเข้าใจผิด แต่เนื่องจากเป็นส่วนกำหนดค่าเซิร์ฟเวอร์ DHCP คุณจึงแจ้งให้เราเตอร์ของคุณอย่างชัดเจนเพื่อให้เซิร์ฟเวอร์ google เหล่านั้นเป็นตัวเลือก dns สำหรับลูกค้า คุณต้องการลบสิ่งเหล่านั้นออกจากรายการแล้วกำหนดค่าเราเตอร์ให้รับ DNS ของตัวเองจาก google บางทีคำตอบด้านล่างอาจเป็นวิธีที่เหมาะสมในการทำเช่นนี้
horatio

หากฉันลบสิ่งเหล่านั้นออกเราเตอร์จะจัดหาเซิร์ฟเวอร์ที่ได้รับจาก ISP ผ่าน DHCP ..
0x6A75616E

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

@ Horatio ไม่จริง .. จุดของฉันคือเหตุผลที่เซิร์ฟเวอร์ dhcp ให้ที่อยู่ DNS เพิ่มเติมใด ๆ เลย หาก dnsmasq บนอุปกรณ์และใช้กฎการแก้ปัญหาชื่อบางอย่างการให้บริการเซิร์ฟเวอร์ DNS เพิ่มเติม (นอกเหนือจากตัวเราเตอร์เอง) จะเอาชนะวัตถุประสงค์ดังกล่าว
0x6A75616E

ส่วนนั้นคือรายการของเซิร์ฟเวอร์ DNS ที่จะมอบให้กับลูกค้าที่ร้องขอข้อมูล DHCP
horatio

คำตอบ:


7

เป็นเรื่องดีที่คุณใช้ DNSMasq

คุณสามารถกำหนดค่าสิ่งที่คุณต้องการในแท็บบริการ (> บริการ)ในกล่องตัวเลือก DNSMasq> ตัวเลือก DNSMasq เพิ่มเติมแต่ก่อนอื่นคุณต้องล้างเขตข้อมูล DNS แบบคงที่เหล่านั้น ฟิลด์ DNS แบบคงที่ใน "การตั้งค่า> การตั้งค่าพื้นฐาน"

เพิ่มสิ่งต่อไปนี้ลงในกล่องตัวเลือก DNSMasq:

dhcp-option= option:dns-server, 192.168.10.10 # DHCP option 006

server = 8.8.8.8 # DNSMasq will use these servers for forwarding the DNS requests that it can't serve
server = 8.8.4.4

ดูเหมือนว่าจะทำงานได้อย่างสมบูรณ์แบบสำหรับตัวเอง คำถามที่โง่มาก ๆ ส่วนใดของบรรทัดแรกนั้นระบุตัวเลือก DHCP 006 ตัวเลือก: DNS เซิร์ฟเวอร์?
Residualfail

@Residualfail: ใช่ ฉันคิดว่าคุณสามารถระบุว่าตัวเลขเช่นกัน แต่สอดคล้องกับตัวเลือกoption:dns-server DHCP 006
palswim

1
ดูเหมือนว่าฉันอาจจะพูดเร็วเกินไป ดูเหมือนว่า DNS จะกลับไปเป็น DNS ของ Google หลังจาก DNS ภายในของฉันถูกปิด = (
Residualfail

4

ข้อมูลที่นำมาจากเว็บไซต์ DD-WRT อย่างเป็นทางการ: http://www.dd-wrt.com/wiki/index.php/OpenDNS

ดูเหมือนว่าคุณสามารถตั้งค่าเซิร์ฟเวอร์ dns ที่เหลือเป็น IP ที่ไม่สามารถกำหนดเส้นทางได้ (ในกรณีของฉัน10.0.0.0& 10.0.0.1) และมันจะบีบเซิร์ฟเวอร์ DNS ISP ของคุณด้วยการไม่ใช้เส้นทางเหล่านี้ จนถึงตอนนี้ดูเหมือนว่าฉันจะทำงานได้โดยไม่ล่าช้าในการรอเซิร์ฟเวอร์ DNS ที่ไม่มีอยู่จริง


จะไม่มีความล่าช้าเนื่องจากที่อยู่ที่ไม่สามารถกำหนดเส้นทางได้จะถูกทิ้งโดยสแต็กเครือข่ายทันที มันสร้างค่าใช้จ่ายจำนวนเล็กน้อยและเป็นแฮ็ค แต่ไม่ควรมีปัญหาในโลกแห่งความจริง
ใครบางคน

3

ฉันไม่ได้ใช้ DDWRT ดังนั้นนี่เป็นครึ่งคำถาม / ครึ่งคำตอบ

DNSMasqด้วยตนเองตามที่เซิร์ฟเวอร์ DHCPระบุไว้ในส่วน "ตัวเลือก DNSMasq เพิ่มเติม":

มีตัวเลือกพิเศษบางอย่างในเว็บอินเตอร์เฟสสำหรับ DNSMasq ที่คุณสามารถตั้งค่าได้โดยป้อนไว้ในตัวเลือก DNSMasq เพิ่มเติมในแท็บ "บริการ"

หากคุณต้องการผ่านเซิร์ฟเวอร์ DNS จาก ISP ของคุณคุณสามารถใช้พารามิเตอร์ต่อไปนี้:

dhcp-option=6, x.x.x.x, y.y.y.y

โดยที่ xxxx = DNS1 yyyy = DNS2

ดูเหมือนว่าหมายความว่าการผ่านเซิร์ฟเวอร์ ISP นั้นเป็นทางเลือกดังนั้นการค้นหาและการลบบรรทัดด้านบนจึงควรปิด


1
ฉันจะตั้งค่า dhcp-option = 6,192.168.10.10 เพื่อส่งที่อยู่ IP นั้นเป็นเซิร์ฟเวอร์ DNS IP ไปยังไคลเอนต์ DHCP
thane

1
ขอบคุณสำหรับตัวชี้ ฉันลองที่ทั้ง uDHCPd (ซึ่งเป็น DNS daemon ที่ฉันใช้ใน ddwrt) และ DNSMasq (เปลี่ยนเป็น) แต่ไม่มีประโยชน์ :( มันให้บริการระเบียน DNS เพิ่มเติมด้วยเหตุผลใดก็ตาม
0x6A75616E

ในกรณีที่คุณอาจจะควรโพสต์คำถามเกี่ยวกับการที่ฟอรั่ม DD-WRT
harrymc

2

หากคุณไม่ต้องการให้ลูกค้าเข้าถึง DNS ภายนอกอย่าใส่ที่อยู่ไว้ในการกำหนดค่าเซิร์ฟเวอร์ DHCP

ฉันคิดว่าคุณต้องการเพิ่มเซิร์ฟเวอร์ DNS ของ Google (ในที่สุดก็เร็วขึ้น) ในการกำหนดค่าไคลเอนต์ DHCP ภายนอก (ที่ DNSMASQ จะใช้เป็นค่ากำหนดไคลเอ็นต์ DNS)

เสริม:

คุณต้องเพิ่มเซิร์ฟเวอร์ DNS พิเศษ (ทั้งหมด) ลงในการกำหนดค่าการเชื่อมโยง WAN DNSMasq จะใช้พวกเขาและลูกค้า DHCP จะไม่ได้รับจากผู้ให้บริการ


ขอบคุณสำหรับการสนับสนุนของคุณ แต่มันก็ไม่สมเหตุสมผลนักในบริบทของคำถาม DNSMasq ทำงานโดยการส่งต่อคำร้องขอ dns จากไคลเอนต์ไปยังเซิร์ฟเวอร์ DNS จริงด้วยความสามารถในการปรับเปลี่ยนการตอบสนองบางอย่างได้ทันที หากฉันลบเซิร์ฟเวอร์ dns ออกจากการตั้งค่าเราเตอร์จะเปลี่ยนกลับเป็นเซิร์ฟเวอร์ที่ได้รับมอบหมายจาก ISP คุณกำลังตอบคำถามของฉันด้วยการพูดว่า "แก้ไขการกำหนดค่าของคุณ" แต่คำถามก็คือ "วิธีแก้ไขการกำหนดค่า"
0x6A75616E

2

ตัวเลือกการกำหนดค่าทั่วไปสำหรับ DD-WRT คืออนุญาตให้เราเตอร์กำหนดเส้นทาง DNS นอกเซิร์ฟเวอร์ DNS หลักของ ISP ซึ่งคุณได้ทำสำเร็จแล้ว อย่างไรก็ตามเนื่องจากคำขอถูกสร้างขึ้นจากเครื่องไคลเอนต์การเชื่อมต่อกับเราเตอร์ TOO ลำดับของการกำหนดค่าตามความชอบจะถูกกำหนดให้กับ DNS ที่กำหนดค่าไว้เสมอบนเครื่องของลูกค้าและจากนั้นไปยังเราเตอร์

สิ่งที่คุณกำลังอธิบายที่เกิดขึ้นคือไคลเอนต์กำลังเชื่อมโยงกับเราเตอร์ของคุณซึ่งถูกต้อง แต่ DNS ของพวกเขาแสดงการตั้งค่าเราเตอร์ IP + 2 อื่น ๆ ของ DNS ของคุณ โปรดตรวจสอบคอมพิวเตอร์ไคลเอนต์และตรวจสอบให้แน่ใจว่าการตั้งค่า IPV4 ของพวกเขาถูกตั้งค่าให้ดึงการกำหนดค่าเซิร์ฟเวอร์ DNS แบบไดนามิกจากการเชื่อมต่อและไม่ได้กำหนดค่าด้วยตนเอง:

การกำหนดค่าไคลเอนต์

จากนั้นตรวจสอบให้แน่ใจว่าคุณตั้งค่าเราเตอร์ DD-WRT ของคุณอย่างถูกต้อง:

กำหนดค่าเราเตอร์

ในการกำหนดค่าของคุณด้านบนคุณมีปัญหาเช่นกัน คุณได้ตั้งค่าช่วงที่อยู่ DHCP เริ่มต้นที่200และสิ้นสุดที่255; ฉันอยากจะแนะนำให้คุณเปลี่ยนที่จะเริ่มต้นที่ 200 และสิ้นสุดที่254; ปล่อยให้ที่อยู่ 255 ปิดเนื่องจากการกำหนดค่าปกติ*.*.*.255เป็นที่อยู่การเผยแพร่ไม่ใช่ที่อยู่ IP ปกติที่จะใช้เพื่อกำหนดให้กับไคลเอนต์ที่เกี่ยวข้อง

ฉันเน้นการตั้งค่า DNS ในเครื่องเนื่องจากคุณตั้งค่าของคุณเป็น127.0.0.1; ซึ่งหมายความว่าคุณกำลังเรียกใช้เซิร์ฟเวอร์ DNS ท้องถิ่นบนเราเตอร์ หากไม่ใช่กรณีนี้ให้เปลี่ยนเป็น0.0.0.0หรือที่อยู่ที่เหมาะสมเป็นเซิร์ฟเวอร์ DNS ในเครือข่ายของคุณ

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

หมายเหตุบนเซิร์ฟเวอร์ DNS ในตัวเครื่อง หากคุณต้องการให้เราเตอร์เชื่อมโยงที่อยู่ในตัวเครื่องกับ IP ของท้องถิ่นคุณสามารถเพิ่มตัวเลือกเหล่านั้นลงในตัวเลือกการกำหนดค่า DNSMasq ในหน้าจอ DD-WRT ที่เหมาะสมหรือใช้เซิร์ฟเวอร์ DNS ภายในเครื่องและใส่ที่อยู่ IP ที่เหมาะสม เซิร์ฟเวอร์นั้น (โดยปกติจะเป็นเซิร์ฟเวอร์คงที่ภายในขอบเขตของเครือข่าย) ด้วยวิธีนี้ลำดับการแก้ไขจะเป็นเซิร์ฟเวอร์ภายในเครื่องก่อนจากนั้นจึงเลือก 2 ภายนอก แต่ยังมีเพียงลูกค้าเท่านั้นที่จะเห็น IP ของเราเตอร์เป็นเซิร์ฟเวอร์ DNS


ขอบคุณสำหรับคำตอบของคุณ! ฉันแน่ใจว่าลูกค้าทุกคนในเครือข่ายไม่มีเซิร์ฟเวอร์ DNS ที่กำหนดรหัสไว้อย่างหนัก ในความเป็นจริงในทุกกรณี 192.168.10.10 (เราเตอร์เอง) กลับมาเป็นเซิร์ฟเวอร์ DNS ตัวแรกที่ได้รับผลกระทบ สิ่งที่เกิดขึ้นก็คือคอมพิวเตอร์บางเครื่องจะสุ่มเซิร์ฟเวอร์ DNS รองที่ DHCP กำลังให้บริการอยู่ในขณะนี้ .. ฉันได้ลองทำสิ่งต่างๆนับล้านและดูเหมือนว่าไม่มีทางที่จะให้บริการตัวเองเท่านั้น ฉันอาจลงเอยด้วยการใช้งานอินสแตนซ์ dnsmasq อื่น ๆ บนเครื่องอื่นและใช้มันเป็น dns2 และ dns3 .. แฮ็ค! ฮ่า ๆ. ขอบคุณอีกครั้ง
0x6A75616E

2

ฉันมีปัญหาที่คล้ายกันหลังจากเราเตอร์ของฉันเสียชีวิตและฉันต้องเปิดใช้งาน WRT160N ที่กระพริบ

ฉันมีกล่องที่ทำงานเป็นเซิร์ฟเวอร์ DNS ในเครื่องที่ 192.168.2.30 ในเครือข่ายของฉัน ฉันต้องการให้ DHCP บอกที่อยู่นั้นว่าเป็นเซิร์ฟเวอร์ DNS เท่านั้น ฉันไม่ต้องการให้ DNS ไปที่อื่น

ฉันใช้ "เฟิร์มแวร์: มินิ DD-WRT v24-sp2 (12/19/10)"

ดูเหมือนจะไม่สำคัญว่าการรวมกันของการตั้งค่า DNSMasq การตั้งค่า DHCP DNS ท้องถิ่นหรืออะไรก็ตามที่ฉันใช้ หากเซิร์ฟเวอร์ DNS 2 และเซิร์ฟเวอร์ DNS 3 ว่างเปล่าหรือจับคู่เซิร์ฟเวอร์ DNS 1 DD-WRT จะยืนยันการส่งเซิร์ฟเวอร์ DNS ของ Comcast เพื่อหาจุดเหล่านั้น ฉันไม่ต้องการสิ่งนี้เนื่องจากฉันมีการส่งต่อ 192.168.2.30 ไปยัง OpenDNS สำหรับข้อความค้นหาที่ไม่อยู่ในเครื่อง

ฉันกำลังเขียนข้อผิดพลาดนี้ในรุ่น DD-WRT ที่ค่อนข้างเก่า (ตอนนี้) และกำลังจะติดตั้ง / กำหนดค่าเซิร์ฟเวอร์ DHCP ของฉันเองที่ 192.168.2.30 และปิดการใช้งาน DHCP บนเราเตอร์


1
จริง ๆ แล้วไม่ใช่ความคิดที่ไม่ดี ... ฉันอาจจะตั้งค่า dhcp ในกล่องอื่นและออกจากการขันรอบด้วย ddwrt
0x6A75616E

1
ปัญหานี้ยังคงมีอยู่ในงานสร้างเดือนกุมภาพันธ์ 2559 ของฉันดูเหมือนจะเป็นฟีเจอร์ ฉันกำลังทิ้งเราเตอร์และจะกลับไปที่ Linux PC สำหรับเรื่องนี้ ผู้ที่สร้างซอฟต์แวร์เราเตอร์ควรมีความเข้าใจปัญหาความเป็นส่วนตัวที่มาพร้อมกับพฤติกรรมที่ไม่คาดคิดผิดปกติและไม่รับผิดชอบของ GUI ถ้าฉันต้องแฮ็คข้อมูลด้วยกันตัวเองมันไม่มีประโยชน์ที่จะใช้ระบบที่ค่อนข้างซับซ้อนและ จำกัด และเมื่อคุณใช้ DNS และ DHCP อยู่ในเครื่องอื่นแล้วเราเตอร์มีอะไรเหลืออยู่ ผลักแพ็คเก็ตหรือไม่
ใครบางคน

1

เพิ่มไม่กี่ปีที่ผ่านมาเนื่องจากฉันสะดุดในการค้นหาคำตอบ ... ฉันได้เพิ่มอินเทอร์เฟซเสมือนลงใน pi-hole ของฉันเพื่อจัดการที่อยู่ IP อีก 2 รายการ

eth0 192.168.10.10
eth0.1 192.168.10.11
eth0.2 192.168.10.12

สิ่งนี้ทำให้ฉันสามารถเติมที่อยู่ในเครื่องทั้ง 3 กล่องและให้มันแจกให้พอแม้ว่าเราเตอร์ dd-wrt จะแจก 5, 3 ในพื้นที่และ 2 ISP ต้นน้ำ ISP ของฉันจะไม่ชนพวกเขา


0

การใช้วิธีแฮ็คที่น้อยกว่า: หากเป็น LAN และ DNS ของคุณฉันมั่นใจว่ามีที่อยู่บางส่วนที่ต้องสำรองไว้เพื่อให้ DNS รับฟังบนสาม IP

การได้รับมากกว่าการมีที่อยู่ที่ไม่สามารถกำหนดเส้นทางได้นั้นไม่ควรนำมาใช้ในทางปฏิบัติ แต่อย่างน้อยคุณก็ไม่ได้พึ่งสิ่งที่เสียและเราเตอร์ก็ตอบสนองต่อมัน คุณไม่สามารถมั่นใจได้ว่าจะไม่เปลี่ยนแปลงในบางวัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.