Score:0

เปลี่ยนเส้นทาง IP ของเซิร์ฟเวอร์ DNS บน Unifi UDM-Pro โดยใช้ iptables

ธง in

ฉันใช้ Unifi UDM Pro เป็นเกตเวย์สำหรับ 2 VLAN:

  • LAN หลัก (อินเทอร์เฟซ: br0เครือข่ายย่อย: 192.168.1.1/24)
  • อุปกรณ์ IoT VLAN (อินเทอร์เฟซ: br3เครือข่ายย่อย: 192.168.3.1/24)

แต่ละคนมีเซิร์ฟเวอร์ DNS (Adguard Home) ในเครื่องของตัวเอง (192.168.1.52 และ 192.168.3.52 ตามลำดับ). สำหรับแต่ละซับเน็ต ฉันต้องการป้องกันไม่ให้ไคลเอ็นต์ข้ามเซิร์ฟเวอร์ DNS ในเครื่องที่กำหนดผ่าน DHCP ในการทำเช่นนี้ ฉัน SSH ใน UDM Pro และรันคำสั่งเหล่านี้:


iptables -t nat -A PREROUTING -i br0 ! -s 192.168.1.52 ! -d 192.168.1.52 -p tcp --dport 53 -j DNAT --to 192.168.1.52
iptables -t nat -A PREROUTING -i br0 ! -s 192.168.1.52 ! -d 192.168.1.52 -p udp --dport 53 -j DNAT --to 192.168.1.52

iptables -t nat -A PREROUTING -i br3 ! -s 192.168.3.52 ! -d 192.168.3.52 -p tcp --dport 53 -j DNAT --to 192.168.3.52
iptables -t nat -A PREROUTING -i br3 ! -s 192.168.3.52 ! -d 192.168.3.52 -p udp --dport 53 -j DNAT --to 192.168.3.52

iptables -t nat -A POSTROUTING -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -p udp --dport 53 -j MASQUERADE

ฉันทดสอบสิ่งเหล่านี้โดยใช้สองวิธีหลัก: ขุด และผ่านอุปกรณ์ WLAN (เช่น iPad):

ใช้ ขุด วิธีการ ฉันทดสอบการค้นหา DNS โดยตรงก่อน จากนั้นจึงทดสอบหนึ่งไปยังเซิร์ฟเวอร์ DNS ของ Google ฉันเรียกใช้ทั้งสองคำสั่งบนโฮสต์จริงสำหรับเซิร์ฟเวอร์ DNS ของฉัน (ซึ่งเป็นสมาชิกของทุก VLAN ผ่าน Debian วแลน บรรจุุภัณฑ์):

  1. ขุด linux.org '@ 192.168.3.52' -b '192.168.3.52'
  2. ขุด linux.org '@8.8.8.8' -b '192.168.3.52'

คำสั่งแรกด้านบนทำงานได้ดี อันที่สองทำให้ฉันมีเวลานอก ฉันคาดว่าอันที่สองจะยังคงใช้งานได้ ยกเว้นจะถูกส่งผ่าน 192.168.3.52.

ถ้าวิ่งเหมือนกัน ขุด คำสั่งด้านบนแต่บน LAN หลัก ทั้งสองทำงานได้ดีและฉันเห็นทั้งสองคำสั่งบนเซิร์ฟเวอร์ DNS ในเครื่องของฉัน

ฉันไม่แน่ใจว่าทำไม VLAN 3 ไม่ทำงานในกรณีเปลี่ยนเส้นทาง แต่ LAN หลักของฉันทำงาน ใครสามารถช่วยฉันเข้าใจว่าทำไมสิ่งนี้ถึงใช้งานไม่ได้และแสดงวิธีแก้ปัญหาที่ใช้งานได้

in flag
หากคุณเรียกใช้คำสั่งเหล่านี้จาก `.52` คำสั่งนั้นจะไม่รวมอยู่ในการเปลี่ยนเส้นทาง ตรวจสอบและยืนยันว่ากฎได้รับการตี (ตัวนับ iptables มีประโยชน์) จากนั้นใช้ tcpdump เพื่อดูว่าทราฟฟิกใดไปที่ใด ฉันเดาว่ากฎ MASQUERADE อาจไม่ทำงานหรือทำให้เกิดปัญหา แต่ tcpdump จะบอกคุณหากเป็นเช่นนั้น .
in flag
ฉันคิดเกี่ยวกับการเรียกใช้จาก .52 ที่ทำให้เกิดปัญหา แต่ฉันคาดว่า `8.8.8.8` จะยังตอบกลับมา เพียงแต่ไม่เปลี่ยนเส้นทางผ่านเซิร์ฟเวอร์ DNS ในเครื่องของฉัน แต่คำขอหมดเวลาโดยสิ้นเชิง นอกจากนี้ FWIW การทดสอบผ่าน iPad บน VLAN นั้น ฉันยังเห็นการหมดเวลาอยู่ ฉันไม่ใช่ผู้เชี่ยวชาญที่ iptables, tcpdump คุณสามารถให้ตัวอย่างคำสั่งเพื่อเรียกใช้และตำแหน่งที่จะเรียกใช้ได้หรือไม่ ขอขอบคุณ!

โพสต์คำตอบ

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