ในบทความนี้ ผมจะแสดงให้คุณเห็นถึงวิธีการใช้ dnsmasq เพื่อกำหนดค่าเซิร์ฟเวอร์ DNS ในเครื่อง, การแคชเซิร์ฟเวอร์ DNS และเซิร์ฟเวอร์ DHCP มาเริ่มกันเลยดีกว่า
โทโพโลยีเครือข่าย:
นี่คือโทโพโลยีเครือข่ายของบทความนี้ ที่นี่ฉันจะกำหนดค่า เราเตอร์ เป็นเซิร์ฟเวอร์ DNS และ DHCP ที่มี dnsmasq เราเตอร์ มี 2 อินเทอร์เฟซเครือข่ายหนึ่ง ( ens33 ) เชื่อมต่อกับ อินเทอร์เน็ต และอื่น ๆ ( ens38 ) เชื่อมต่อกับ a เครือข่าย . โฮสต์อื่น ๆ ทั้งหมด ( host1 , host2 , host3 ) บนเครือข่ายใช้เซิร์ฟเวอร์ DHCP ที่กำหนดค่าไว้บน เราเตอร์ สำหรับการกำหนดที่อยู่ IP โดยอัตโนมัติและเซิร์ฟเวอร์ DNS สำหรับการแก้ไขชื่อ
การกำหนดค่า IP แบบคงที่:
ในโครงสร้างเครือข่ายของฉัน คุณเห็น my เราเตอร์ มีสองอินเตอร์เฟส ens33 และ ens38 . ens33 เชื่อมต่อเราเตอร์กับอินเทอร์เน็ตและ ens38 เชื่อมต่อกับ a เครือข่ายสวิตช์ ซึ่งคอมพิวเตอร์เครื่องอื่นในเครือข่ายเชื่อมต่อด้วย ฉันจะต้องใช้ DHCP เพื่อรับที่อยู่ IP สำหรับ ens33 อินเทอร์เฟซจาก ISP ของฉันสำหรับการเชื่อมต่ออินเทอร์เน็ต แต่ ens38 อินเทอร์เฟซต้องกำหนดค่าด้วยตนเอง
มาใช้เครือข่ายกันเถอะ 192.168.10.0/24 สำหรับอินเทอร์เฟซ ens38 และคอมพิวเตอร์เครื่องอื่นบนเครือข่าย ถ้าฉันใช้เครือข่าย 192.168.10.0/24 ดังนั้นที่อยู่ IP ของ ens38 อินเทอร์เฟซของเราเตอร์ควรเป็น 192.168.10.1/24 นี่คือที่อยู่ IP ของเซิร์ฟเวอร์ DNS dnsmasq และเซิร์ฟเวอร์ DHCP
บันทึก: ชื่ออินเทอร์เฟซเครือข่ายของคุณอาจแตกต่างกัน คุณสามารถค้นหาสิ่งที่ใช่สำหรับคุณด้วย ip a สั่งการ.
บน Ubuntu Server 18.04 LTS คุณสามารถใช้ เน็ตแพลน เพื่อกำหนดค่าอินเทอร์เฟซเครือข่าย ไฟล์คอนฟิกูเรชัน netplan เริ่มต้นคือ /etc/netplan/50-cloud-init.yaml .
ขั้นแรก เปิดไฟล์การกำหนดค่า /etc/netplan/50-cloud-init.yaml ด้วยคำสั่งดังนี้
$sudo นาโน /ฯลฯ/เน็ตแพลน/ห้าสิบ-cloud-init.yaml
ตอนนี้พิมพ์ในบรรทัดต่อไปนี้และบันทึกไฟล์โดยกด + NS ติดตามโดย และ และ .
ตอนนี้ รีบูต your เราเตอร์ ด้วยคำสั่งดังนี้
$sudoรีบูต
เมื่อ เราเตอร์ บูตควรกำหนดที่อยู่ IP ตามที่คาดไว้
การติดตั้ง dnsmasq:
dnsmasq มีอยู่ในที่เก็บแพ็คเกจอย่างเป็นทางการของ Ubuntu ดังนั้น คุณสามารถติดตั้งได้อย่างง่ายดายโดยใช้ตัวจัดการแพ็คเกจ APT
อูบุนตูใช้ ระบบแก้ไข โดยค่าเริ่มต้นเพื่อจัดการเซิร์ฟเวอร์ DNS และการแคช DNS ก่อนที่คุณจะติดตั้ง dnsmasq คุณต้องหยุดและปิดใช้งาน ระบบแก้ไข บริการ มิฉะนั้น คุณจะไม่สามารถเรียกใช้ dnsmasq ได้เลย
เพื่อหยุด ระบบแก้ไข บริการรันคำสั่งต่อไปนี้:
$sudosystemctl หยุด systemd- แก้ไขแล้ว
เพื่อปิดการใช้งาน ระบบแก้ไข บริการรันคำสั่งต่อไปนี้:
$sudosystemctl ปิดการใช้งาน systemd- แก้ไขแล้ว
โดยค่าเริ่มต้น the /etc/resolv.conf ไฟล์เชื่อมโยงกับไฟล์การกำหนดค่า systemd อื่นตามที่คุณเห็นในภาพหน้าจอด้านล่าง แต่เราไม่ต้องการมันอีกต่อไป
ดังนั้น ให้เอา . ออก /etc/resolv.conf เชื่อมโยงด้วยคำสั่งต่อไปนี้:
$sudo rm -v /ฯลฯ/แก้ไข.conf
ตอนนี้สร้างใหม่ /etc/resolv.conf ไฟล์และตั้งค่าเซิร์ฟเวอร์ google DNS เป็นเซิร์ฟเวอร์ DNS เริ่มต้นด้วยคำสั่งต่อไปนี้:
$โยนออก 'เนมเซิร์ฟเวอร์ 8.8.8.8' | sudo ที /ฯลฯ/แก้ไข.conf
ตอนนี้ อัพเดตแคชที่เก็บแพ็คเกจ APT ด้วยคำสั่งต่อไปนี้:
$sudoapt update
ตอนนี้ ติดตั้ง dnsmasq ด้วยคำสั่งต่อไปนี้:
$sudoฉลาดติดตั้งdnsmasq
ควรติดตั้ง dnsmasq
การกำหนดค่าเซิร์ฟเวอร์ DNS dnsmasq:
ไฟล์คอนฟิกูเรชันของ dnsmasq is /etc/dnsmasq.conf . ในการกำหนดค่า dnsmasq เป็นเซิร์ฟเวอร์ DNS คุณต้องแก้ไขไฟล์นี้
ค่าเริ่มต้น /etc/dnsmasq.conf ไฟล์มีเอกสารจำนวนมากและตัวเลือกการแสดงความคิดเห็น ดังนั้นฉันคิดว่าควรเปลี่ยนชื่อ .ดีกว่า /etc/dnsmasq.conf ไฟล์ไปยัง /etc/dnsmasq.conf.bk และสร้างใหม่
คุณสามารถเปลี่ยนชื่อไฟล์การกำหนดค่าด้วยคำสั่งต่อไปนี้:
$sudo mv -v /ฯลฯ/dnsmasq.conf/ฯลฯ/dnsmasq.conf.bk
ตอนนี้สร้างไฟล์กำหนดค่า /etc/dnsmasq.conf ดังนี้
$sudo นาโน /ฯลฯ/dnsmasq.conf
ตอนนี้พิมพ์ในบรรทัดต่อไปนี้และบันทึกไฟล์โดยกด + NS ติดตามโดย และ และ .
#การกำหนดค่า DNSท่า=53
โดเมนที่จำเป็น
bogus-priv
เคร่งครัด
expand-hosts
โดเมน=example.com
บันทึก: เปลี่ยน example.com ไปยังชื่อโดเมนของคุณเอง
ตอนนี้ เริ่มบริการ dnsmasq ใหม่ด้วยคำสั่งต่อไปนี้:
$sudosystemctl รีสตาร์ท DNSmasq
ไม่มีข้อผิดพลาด ยอดเยี่ยม!
ตอนนี้คุณต้องตั้งค่า 192.168.10.1 เป็นที่อยู่เซิร์ฟเวอร์ DNS เริ่มต้นใน /etc/resolv.conf .
ในการทำเช่นนั้น เปิด /etc/resolv.conf ไฟล์ด้วยคำสั่งต่อไปนี้:
$sudo นาโน /ฯลฯ/แก้ไข.conf
ตอนนี้พิมพ์ เนมเซิร์ฟเวอร์ 192.168.10.1 ก่อนสาย เนมเซิร์ฟเวอร์ 8.8.8.8 ตามที่แสดงในภาพหน้าจอด้านล่าง จากนั้นบันทึกไฟล์.
แค่นั้นแหละ.
การเพิ่มระเบียน DNS:
ตอนนี้คุณสามารถเพิ่มรายการ DNS ของคุณไปที่ /etc/hosts ไฟล์.
ก่อนอื่นให้เปิด /etc/hosts ไฟล์ด้วยคำสั่งต่อไปนี้:
$sudo นาโน /ฯลฯ/เจ้าภาพตอนนี้พิมพ์รายการ DNS ของคุณในรูปแบบต่อไปนี้:
IP_ADDR DOMAIN_NAMEฉันได้เพิ่ม 4 รายการ router.example.com (192.168.10.1) , host1.example.com (192.168.10.51) , host2.example.com (192.168.10.52) , และ host3.example.com (192.168.10.53) ตามที่ระบุไว้ในภาพหน้าจอด้านล่าง คุณสามารถเพิ่มรายการ DNS ได้มากเท่าที่คุณต้องการ
เมื่อเสร็จแล้วให้บันทึกไฟล์โดยกด + NS ติดตามโดย และ และ .
ตอนนี้ เริ่มบริการ dnsmasq ใหม่ด้วยคำสั่งต่อไปนี้:
$sudosystemctl รีสตาร์ท DNSmasq
การทดสอบเซิร์ฟเวอร์ DNS:
อย่างที่คุณเห็น การแก้ปัญหา DNS ในเครื่องใช้งานได้
$คุณrouter.example.com
การแก้ไขชื่ออินเทอร์เน็ตยังใช้งานได้
$คุณGoogle com
การกำหนดค่าเซิร์ฟเวอร์ DHCP:
ในการกำหนดค่าเซิร์ฟเวอร์ DHCP ให้เปิดไฟล์การกำหนดค่า dnsmasq /etc/dnsmasq.conf อีกครั้ง ดังนี้
$sudo นาโน /ฯลฯ/dnsmasq.conf
ตอนนี้ เพิ่มบรรทัดที่ทำเครื่องหมายไว้ที่ส่วนท้ายของไฟล์ จากนั้นบันทึกไฟล์.
# การกำหนดค่า DHCPdhcp-range=192.168.10.50,192.168.10.240,255.255.255.0,24ชม.
dhcp-option=option:router,192.168.10.1
dhcp-option=option:dns-server,192.168.10.1
dhcp-option=option:netmask,255.255.255.0
dhcp-host=00:0C:29:A5:BD:4A,192.168.10.51
dhcp-host=00:0C:29:A5:BD:5B,192.168.10.52
dhcp-host=00:0C:29A5:BD:6C,192.168.10.53
ที่นี่, dhcp-range ใช้เพื่อกำหนดช่วงของที่อยู่ IP ที่เซิร์ฟเวอร์ DHCP จะกำหนดให้กับโฮสต์
ตัวเลือก dhcp ใช้สำหรับตั้งค่าเกตเวย์ ( ตัวเลือก:เราเตอร์ ), ที่อยู่เซิร์ฟเวอร์ DNS ( ตัวเลือก:dns-เซิร์ฟเวอร์ ) และเน็ตมาสก์ ( ตัวเลือก: netmask )
dhcp-host ใช้เพื่อตั้งค่าที่อยู่ IP เฉพาะให้กับโฮสต์โดยขึ้นอยู่กับที่อยู่ MAC ที่ระบุ
ตอนนี้ เริ่มบริการ dnsmasq ใหม่ด้วยคำสั่งต่อไปนี้:
$sudosystemctl รีสตาร์ท DNSmasq
การทดสอบเซิร์ฟเวอร์ DHCP:
อย่างที่คุณเห็น คอมพิวเตอร์ host1 ได้รับที่อยู่ IP 192.168.10.51/24 จากเซิร์ฟเวอร์ DHCP
ความละเอียด DNS ยังใช้งานได้จาก host1 .
ในทำนองเดียวกัน host2 และ host3 ยังได้รับที่อยู่ IP ที่ถูกต้องจากเซิร์ฟเวอร์ DHCP และการแก้ปัญหา DNS ทำงานได้กับแต่ละรายการ
จะไปที่ไหนต่อไป:
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ dnsmasq ให้ชำระเงินที่ไฟล์การกำหนดค่าเริ่มต้น /etc/dnsmasq.conf (ตอนนี้เปลี่ยนชื่อเป็น /etc/dnsmasq.conf.bk ). มันมีคำอธิบายโดยละเอียดของตัวเลือกการกำหนดค่าทั้งหมดของ dnsmasq
$น้อย /ฯลฯ/dnsmasq.conf.bk
ไฟล์กำหนดค่าเริ่มต้น dnsmasq ของ Ubuntu Server 18.04 LTS
นั่นคือวิธีที่คุณกำหนดค่า dnsmasq บน Ubuntu Server 18.04 LTS ขอบคุณที่อ่านบทความนี้