ວິທີການຕັ້ງຄ່າ DNS/DHCP Server ໂດຍໃຊ້ dnsmasq ໃນ CentOS/RHEL 8/7


ໂປແກຼມ Server Configuration Protocol (DHCP) ແບບເຄື່ອນໄຫວແບບເຄື່ອນໄຫວມອບ ໝາຍ ທີ່ຢູ່ IP ແລະຕົວ ກຳ ນົດການຕັ້ງຄ່າເຄືອຂ່າຍອື່ນໆໃຫ້ແຕ່ລະອຸປະກອນໃນເຄືອຂ່າຍ. ຜູ້ສົ່ງຕໍ່ DNS ໃນ LAN ຕໍ່ ໜ້າ ການສອບຖາມ DNS ສຳ ລັບຊື່ໂດເມນທີ່ບໍ່ແມ່ນຊື່ທ້ອງຖິ່ນເຖິງເຄື່ອງແມ່ຂ່າຍ DNS ທີ່ຢູ່ເບື້ອງນອກ (ນອກເຄືອຂ່າຍນັ້ນ). ເຊີຟເວີຖານຄວາມ ຈຳ DNS ຕອບ ຄຳ ຖາມທີ່ຮຽກຮ້ອງມາຈາກລູກຄ້າເພື່ອໃຫ້ ຄຳ ຖາມ DNS ສາມາດແກ້ໄຂໄດ້ໄວຂື້ນ, ສະນັ້ນ, ປັບປຸງຄວາມໄວໃນການຊອກຫາ DNS ໃຫ້ກັບສະຖານທີ່ທີ່ໄດ້ເຂົ້າຊົມກ່ອນ ໜ້າ ນີ້.

dnsmasq ແມ່ນເບົາ, ງ່າຍຕໍ່ການຕັ້ງຄ່າ DNS forwarder, ຊອບແວ DHCP server ແລະລະບົບຍ່ອຍ ສຳ ລັບໂຄສະນາ router ສຳ ລັບເຄືອຂ່າຍນ້ອຍ. Dnsmasq ຮອງຮັບ Linux, * BSD, Mac OS X ພ້ອມທັງ Android.

ມັນມີລະບົບຍ່ອຍຂອງລະບົບ DNS ທີ່ສະ ໜອງ ເຄື່ອງແມ່ຂ່າຍ DNS ຂອງທ້ອງຖິ່ນ ສຳ ລັບເຄືອຂ່າຍ, ໂດຍມີການສົ່ງຕໍ່ທຸກປະເພດການສອບຖາມໄປຫາເຄື່ອງແມ່ຂ່າຍ DNS ທີ່ລວບລວມແລະການເກັບຂໍ້ມູນປະເພດບັນທຶກທົ່ວໄປ. ລະບົບຍ່ອຍຂອງ DHCP ສະ ໜັບ ສະ ໜູນ DHCPv4, DHCPv6, BOOTP, PXE, ແລະ TFTP server. ແລະລະບົບຍ່ອຍໂຄສະນາຂອງ router ໄດ້ສະ ໜັບ ສະ ໜູນ ການປັບແຕ່ງລະບົບພື້ນຖານ ສຳ ລັບເຈົ້າພາບ IPv6.

ໃນບົດຂຽນນີ້, ພວກເຮົາຈະຍ່າງທ່ານຜ່ານ ຄຳ ແນະ ນຳ ກ່ຽວກັບວິທີຕິດຕັ້ງແລະຕິດຕັ້ງ DNS/DHCP Server ໂດຍໃຊ້ dnsmasq ໃນ CentOS/RHEL 8/7.

ຕິດຕັ້ງ dnsmasq ໃນ CentOS ແລະ RHEL Linux

1. ຊຸດ dnsmasq ມີຢູ່ໃນຫໍສະມຸດໃນຕອນຕົ້ນແລະສາມາດຕິດຕັ້ງໄດ້ງ່າຍໂດຍໃຊ້ຜູ້ຈັດການຊຸດ YUM ດັ່ງທີ່ສະແດງໄວ້.

# yum install dnsmasq

2. ເມື່ອການຕິດຕັ້ງຊຸດ dnsmasq ສຳ ເລັດແລ້ວ, ທ່ານຕ້ອງການເລີ່ມຕົ້ນໃຫ້ບໍລິການ dnsmasq ສຳ ລັບດຽວນີ້ແລະໃຫ້ມັນເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໃນລະບົບ boot system. ນອກຈາກນີ້, ກວດເບິ່ງສະຖານະພາບຂອງມັນເພື່ອຮັບປະກັນວ່າມັນຂື້ນແລະແລ່ນໂດຍໃຊ້ ຄຳ ສັ່ງ systemctl ຕໍ່ໄປນີ້.

# systemctl start dnsmasq
# systemctl enable dnsmasq
# systemctl status dnsmasq

ການຕັ້ງຄ່າ dnsmasq Server ໃນ CentOS ແລະ RHEL Linux

3. ເຊີຟເວີ dnsmasq ສາມາດຕັ້ງຄ່າໄດ້ຜ່ານແຟ້ມ /etc/dnsmasq.conf (ເຊິ່ງມີຕົວເລືອກທີ່ໃຫ້ ຄຳ ເຫັນແລະອະທິບາຍໄດ້ດີ), ແລະໄຟລ໌ການຕັ້ງຄ່າທີ່ ກຳ ນົດໂດຍຜູ້ໃຊ້ຍັງສາມາດຖືກເພີ່ມເຂົ້າໃນໄດເລກະທໍລີ /etc/dnsmasq.d.

DNS ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ, ສະນັ້ນກ່ອນທີ່ຈະມີການປ່ຽນແປງໃດໆ, ໃຫ້ແນ່ໃຈວ່າທ່ານຈະສ້າງໄຟລ໌ ສຳ ຮອງ /etc/dnsmasq.conf.

# cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4. ຕອນນີ້ເປີດເອກະສານ /etc/dnsmasq.conf ໂດຍໃຊ້ຕົວແກ້ໄຂຂໍ້ຄວາມທີ່ທ່ານມັກແລະເຮັດການຕັ້ງຄ່າການຕັ້ງຄ່າທີ່ແນະ ນຳ ຕໍ່ໄປນີ້.

# vi /etc/dnsmasq.conf 

ຕົວເລືອກ ຟັງທີ່ຢູ່ ຖືກໃຊ້ເພື່ອ ກຳ ນົດທີ່ຢູ່ IP, ເຊິ່ງ dnsmasq ຈະຟັງ. ເພື່ອ ນຳ ໃຊ້ເຊີບເວີ CentOS/RHEL ຂອງທ່ານເພື່ອຟັງ ຄຳ ຮ້ອງຂໍ DHCP ແລະ DNS ໃນ LAN, ກຳ ນົດຕົວເລືອກ ຟັງທີ່ຢູ່ ກັບທີ່ຢູ່ IP LAN ຂອງມັນ (ຈື່ ຈຳ ລວມເອົາ 127.0.0.1) ດັ່ງທີ່ສະແດງ. ຈົ່ງສັງເກດວ່າ IP ຂອງເຄື່ອງແມ່ຂ່າຍຕ້ອງສະຖິດ.

listen-address=::1,127.0.0.1,192.168.56.10

ກ່ຽວຂ້ອງກັບສິ່ງທີ່ກ່າວມາຂ້າງເທິງ, ທ່ານສາມາດ ຈຳ ກັດການໂຕ້ຕອບ dnsmasq ຟັງໃນການ ນຳ ໃຊ້ຕົວເລືອກການໂຕ້ຕອບ (ເພີ່ມຫລາຍສາຍ ສຳ ລັບຫລາຍກວ່າ ໜຶ່ງ ອິນເຕີເຟດ).

interface=eth0

5. ຖ້າທ່ານຕ້ອງການທີ່ຈະມີໂດເມນ (ເຊິ່ງທ່ານສາມາດຕັ້ງຄ່າຕາມທີ່ສະແດງຕໍ່ໄປ) ຈະເພີ່ມໃສ່ຊື່ງ່າຍໆໂດຍອັດຕະໂນມັດໃນບັນດາເອກະສານໂຮດ, ບໍ່ເຮັດໃຫ້ຕົວເລືອກ expand-hosts ຍົກເລີກ.

expand-hosts

6. ເພື່ອ ກຳ ນົດໂດເມນ ສຳ ລັບ dnsmasq, ເຊິ່ງ ໝາຍ ຄວາມວ່າລູກຄ້າ DHCP ຈະມີຊື່ໂດເມນທີ່ມີເງື່ອນໄຂຄົບຖ້ວນຕາບໃດທີ່ໂດເມນທີ່ ກຳ ນົດໄວ້ນັ້ນຖືກຈັບຄູ່, ແລະ ກຳ ນົດ DHCP ສຳ ລັບລູກຄ້າທຸກຄົນ.

domain=tecmint.lan

7. ຕໍ່ໄປ, ຍັງ ກຳ ນົດເຄື່ອງແມ່ຂ່າຍ DNS ທີ່ຢູ່ເບື້ອງເທິງ ສຳ ລັບໂດເມນທີ່ບໍ່ຢູ່ໃນທ້ອງຖິ່ນໂດຍໃຊ້ຕົວເລືອກ server (ໃນ server server ແບບຟອມ = dns_server_ip) ດັ່ງທີ່ສະແດງ.

# Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. ຫຼັງຈາກນັ້ນທ່ານສາມາດບັງຄັບໃຊ້ໂດເມນທ້ອງຖິ່ນຂອງທ່ານໄປທີ່ຢູ່ IP ໂດຍໃຊ້ຕົວເລືອກທີ່ຢູ່ດັ່ງທີ່ສະແດງໄວ້.

address=/tecmint.lan/127.0.0.1 
address=/tecmint.lan/192.168.56.10

9. ບັນທຶກເອກະສານແລະກວດສອບເອກະສານການຕັ້ງຄ່າຂອງເອກະສານການຕັ້ງຄ່າ ສຳ ລັບຂໍ້ຜິດພາດຕ່າງໆດັ່ງທີ່ສະແດງໄວ້.

# dnsmasq --test

10. ໃນຂັ້ນຕອນນີ້, ທ່ານ ຈຳ ເປັນຕ້ອງເຮັດແບບສອບຖາມທຸກຢ່າງທີ່ຖືກສົ່ງໄປທີ່ dnsmasq ໂດຍການເພີ່ມທີ່ຢູ່ຂອງ localhost ເປັນພຽງແຕ່ nameservers ໃນເອກະສານ /etc/resolv.conf ເທົ່ານັ້ນ.

# vi /etc/resolv.conf

11. ເອກະສານ /etc/resolv.conf ແມ່ນຖືກຮັກສາໄວ້ໂດຍ daemon ທ້ອງຖິ່ນໂດຍສະເພາະແມ່ນ NetworkManager, ສະນັ້ນການປ່ຽນແປງທີ່ສ້າງຂື້ນໂດຍຜູ້ໃຊ້ຈະຖືກຂຽນທັບ. ເພື່ອປ້ອງກັນສິ່ງນີ້, ຂຽນ - ປົກປ້ອງມັນໂດຍການຕັ້ງຄ່າຄຸນລັກສະນະຂອງໄຟລ໌ທີ່ບໍ່ສາມາດປ່ຽນແປງໄດ້ (ເຮັດໃຫ້ການເຂົ້າເຖິງການຂຽນເອກະສານບໍ່ໄດ້) ໂດຍໃຊ້ ຄຳ ສັ່ງ chattr ດັ່ງທີ່ສະແດງໄວ້.

# chattr +i /etc/resolv.conf
# lsattr /etc/resolv.conf

12. Dnsmasq ອ່ານຊື່ DNS ແລະຊື່ທັງ ໝົດ ຈາກແຟ້ມ/etc/hosts, ສະນັ້ນຕື່ມທີ່ຢູ່ IP ຂອງທ່ານແລະຊື່ຄູ່ຕາມທີ່ສະແດງ.

127.0.0.1       dnsmasq
192.168.56.10 	dnsmasq 
192.168.56.1   	gateway
192.168.56.100	maas-controller 
192.168.56.20 	nagios
192.168.56.25 	webserver1

ສິ່ງທີ່ ສຳ ຄັນ: ຊື່ DNS ໃນທ້ອງຖິ່ນຍັງສາມາດຖືກ ກຳ ນົດໂດຍ ນຳ ເຂົ້າຊື່ຈາກລະບົບຍ່ອຍຍ່ອຍ DHCP, ຫຼືໂດຍການ ກຳ ນົດຄ່າຂອງປະເພດບັນທຶກທີ່ມີປະໂຫຍດຫຼາຍ.

13. ເພື່ອປະຕິບັດການປ່ຽນແປງຂ້າງເທິງ, ໃຫ້ບໍລິການ dnsmasq ຄືນ ໃໝ່ ດັ່ງທີ່ສະແດງໄວ້.

# systemctl restart dnsmasq

14. ຖ້າທ່ານມີການບໍລິການ firewalld ແລ່ນ, ທ່ານ ຈຳ ເປັນຕ້ອງເປີດບໍລິການ DNS ແລະ DHCP ໃນການຕັ້ງຄ່າ firewall, ເພື່ອໃຫ້ການຮ້ອງຂໍຈາກເຈົ້າຂອງໃນ LAN ຂອງທ່ານສົ່ງຜ່ານ server dnsmasq.

# firewall-cmd --add-service=dns --permanent
# firewall-cmd --add-service=dhcp --permanent
# firewall-cmd --reload

15. ເພື່ອທົດສອບວ່າເຄື່ອງແມ່ຂ່າຍຂອງ DNS ຫຼືການສົ່ງຕໍ່ຢູ່ໃນທ້ອງຖິ່ນເຮັດວຽກໄດ້ດີ, ທ່ານຕ້ອງໃຊ້ເຄື່ອງມືເຊັ່ນ: dig ຫຼື nslookup ສຳ ລັບການປະຕິບັດການສອບຖາມ DNS. ເຄື່ອງມືເຫຼົ່ານີ້ແມ່ນສະ ໜອງ ໃຫ້ໂດຍຊຸດ bind-utils ເຊິ່ງອາດຈະບໍ່ໄດ້ຖືກຕິດຕັ້ງໄວ້ໃນ CentOS/RHEL 8, ແຕ່ທ່ານສາມາດຕິດຕັ້ງໄດ້ຕາມທີ່ສະແດງໄວ້.

# yum install bind-utils

16. ເມື່ອທ່ານຕິດຕັ້ງແລ້ວ, ທ່ານສາມາດ ດຳ ເນີນການສອບຖາມງ່າຍໆໃນໂດເມນທ້ອງຖິ່ນຂອງທ່ານດັ່ງທີ່ສະແດງໄວ້.

# dig tecmint.lan
OR
# nslookup tecmint.lan

17. ທ່ານຍັງສາມາດທົດລອງສອບຖາມ FQDN ຂອງ ໜຶ່ງ ຂອງເຊີບເວີ.

# dig webserver1.tecmint.lan
OR
# nslookup webserver1.tecmint.lan

18. ເພື່ອທົດສອບການຊອກຫາ IP ແບບປີ້ນກັບກັນ, ດໍາເນີນການຄໍາສັ່ງທີ່ຄ້າຍຄືກັນ.

# dig -x 192.168.56.25
OR
# nslookup 192.168.56.25

ເປີດໃຊ້ DHCP Server ໂດຍໃຊ້ dnsmasq

19. ທ່ານສາມາດເປີດໃຊ້ເຊີບເວີ DHCP ໂດຍການບໍ່ເລືອກເອົາຕົວເລືອກ dhcp-range ແລະສະ ໜອງ ຊ່ວງເວລາຂອງທີ່ຢູ່ທີ່ມີໃຫ້ ສຳ ລັບການເຊົ່າແລະທາງເລືອກເວລາເຊົ່າເຊັ່ນ e (ເຮັດ ໃໝ່ ຫຼາຍກວ່າ ໜຶ່ງ ເຄືອຂ່າຍ).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. ຕົວເລືອກຕໍ່ໄປນີ້ ກຳ ນົດວ່າ server DHCP ຈະເກັບຮັກສາຖານຂໍ້ມູນສັນຍາເຊົ່າຂອງມັນແນວໃດ, ນີ້ຈະຊ່ວຍໃຫ້ທ່ານສາມາດກວດສອບທີ່ຢູ່ IP ທີ່ມັນໄດ້ມອບ ໝາຍ ໃຫ້ໄດ້ງ່າຍ.

dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

21. ເພື່ອເຮັດໃຫ້ເຄື່ອງແມ່ຂ່າຍຂອງ DHCP ມີຮູບແບບທີ່ມີສິດ ອຳ ນາດ, ບໍ່ມີທາງເລືອກ.

dhcp-authoritative

22. ປະຢັດເອກະສານແລະເລີ່ມການບໍລິການ dnsmasq ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງທີ່ຜ່ານມາ.

# systemctl restart dnsmasq

ສິ່ງນັ້ນ ນຳ ພວກເຮົາໄປຮອດຈຸດສຸດທ້າຍຂອງ ຄຳ ແນະ ນຳ ນີ້. ເພື່ອເຂົ້າຫາພວກເຮົາ ສຳ ລັບ ຄຳ ຖາມຫຼືຄວາມຄິດທີ່ທ່ານຢາກແບ່ງປັນກ່ຽວກັບ ຄຳ ແນະ ນຳ ນີ້, ໃຫ້ໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.