ค้นหาเว็บไซต์

วิธีการตั้งค่าเซิร์ฟเวอร์ DHCP และไคลเอนต์บน CentOS และ Ubuntu


DHCP (ย่อมาจาก Dynamic Host Configuration Protocol) คือโปรโตคอลไคลเอ็นต์/เซิร์ฟเวอร์ที่ช่วยให้เซิร์ฟเวอร์สามารถกำหนดที่อยู่ IP และพารามิเตอร์การกำหนดค่าอื่นๆ ที่เกี่ยวข้องได้โดยอัตโนมัติ (เช่น ซับเน็ตมาสก์ และเกตเวย์เริ่มต้น) ไปยังไคลเอนต์บนเครือข่าย

DHCP มีความสำคัญเนื่องจากจะป้องกันไม่ให้ผู้ดูแลระบบหรือผู้ดูแลระบบเครือข่ายกำหนดค่าที่อยู่ IP ด้วยตนเองสำหรับคอมพิวเตอร์ใหม่ที่เพิ่มในเครือข่ายหรือคอมพิวเตอร์ที่ย้ายจากเครือข่ายย่อยหนึ่งไปยังอีกเครือข่ายย่อย

ที่อยู่ IP ที่กำหนดโดยเซิร์ฟเวอร์ DHCP ให้กับไคลเอ็นต์ DHCP อยู่ใน “การเช่า ” โดยปกติเวลาการเช่าจะแตกต่างกันไปขึ้นอยู่กับระยะเวลาการเช่า คอมพิวเตอร์ไคลเอนต์มีแนวโน้มที่จะต้องมีการเชื่อมต่อหรือการกำหนดค่า DHCP

ในบทความนี้ เราจะอธิบายวิธีกำหนดค่าเซิร์ฟเวอร์ DHCP ในการกระจาย CentOS และ Ubuntu Linux เพื่อกำหนดที่อยู่ IP ให้กับเครื่องไคลเอ็นต์โดยอัตโนมัติ

การติดตั้งเซิร์ฟเวอร์ DHCP ใน CentOS และ Ubuntu

แพ็คเกจเซิร์ฟเวอร์ DCHP มีอยู่ในคลังอย่างเป็นทางการของ Linux กระแสหลัก การติดตั้งทำได้ค่อนข้างง่าย เพียงเรียกใช้คำสั่งต่อไปนี้

yum install dhcp		        #CentOS
sudo apt install isc-dhcp-server	#Ubuntu

เมื่อการติดตั้งเสร็จสมบูรณ์ ให้กำหนดค่าอินเทอร์เฟซที่คุณต้องการให้ DHCP daemon ตอบสนองคำขอในไฟล์การกำหนดค่า /etc/default/isc-dhcp-server หรือ >/etc/sysconfig/dhcpd

vim /etc/sysconfig/dhcpd		 #CentOS
sudo vim /etc/default/isc-dhcp-server	 #Ubuntu

ตัวอย่างเช่น หากคุณต้องการให้ DHCPD daemon ฟังบน eth0 ให้ตั้งค่าโดยใช้คำสั่งต่อไปนี้

DHCPDARGS=”eth0”

บันทึกไฟล์และออก

การกำหนดค่าเซิร์ฟเวอร์ DHCP ใน CentOS และ Ubuntu

ไฟล์การกำหนดค่า DHCP หลักอยู่ที่ /etc/dhcp/dhcpd.conf ซึ่งควรมีการตั้งค่าว่าจะทำอย่างไร สถานที่ใดที่จะทำบางสิ่งบางอย่าง และพารามิเตอร์เครือข่ายทั้งหมดที่จะระบุ ให้กับลูกค้า

โดยพื้นฐานแล้วไฟล์นี้ประกอบด้วยรายการคำสั่งที่แบ่งออกเป็นสองประเภทกว้างๆ:

  • พารามิเตอร์ส่วนกลาง: ระบุวิธีดำเนินงาน ไม่ว่าจะดำเนินงาน หรือพารามิเตอร์การกำหนดค่าเครือข่ายใดที่จะมอบให้กับไคลเอ็นต์ DHCP
  • การประกาศ: กำหนดโทโพโลยีเครือข่าย ระบุว่ามีไคลเอ็นต์อยู่ เสนอที่อยู่สำหรับไคลเอ็นต์ หรือใช้กลุ่มของพารามิเตอร์กับกลุ่มของการประกาศ

ตอนนี้ ให้เปิดและแก้ไขไฟล์การกำหนดค่าเพื่อกำหนดค่าเซิร์ฟเวอร์ DHCP ของคุณ

------------ On CentOS ------------ 
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf	
vi /etc/dhcp/dhcpd.conf	

------------ On Ubuntu ------------
sudo vim /etc/dhcp/dhcpd.conf				

เริ่มต้นด้วยการกำหนด พารามิเตอร์ส่วนกลาง ซึ่งใช้ร่วมกับเครือข่ายที่รองรับทั้งหมดที่ด้านบนของไฟล์ พวกเขาจะนำไปใช้กับการประกาศทั้งหมด:

option domain-name "tecmint.lan";
option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
default-lease-time 3600; 
max-lease-time 7200;
authoritative;

ถัดไป คุณต้องกำหนดเครือข่ายย่อยสำหรับเครือข่ายย่อยภายใน เช่น 192.168.1.0/24 ดังที่แสดง

subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers                  192.168.1.1;
        option subnet-mask              255.255.255.0;
        option domain-search            "tecmint.lan";
        option domain-name-servers      192.168.1.1;
        range   192.168.10.10   192.168.10.100;
        range   192.168.10.110   192.168.10.200;
}

โปรดทราบว่าโฮสต์ที่ต้องการตัวเลือกการกำหนดค่าพิเศษสามารถแสดงอยู่ใน คำสั่งโฮสต์ (ดูหน้าคู่มือ dhcpd.conf)

เมื่อคุณกำหนดค่า DHCP server daemon แล้ว คุณต้องเริ่มบริการในช่วงเวลาดังกล่าว และเปิดใช้งานให้เริ่มโดยอัตโนมัติจากการบูตระบบครั้งถัดไป และตรวจสอบว่าบริการทำงานอยู่หรือไม่โดยใช้คำสั่งต่อไปนี้

------------ On CentOS ------------ 
systemctl start dhcpd
systemctl enable dhcpd
systemctl enable dhcpd

------------ On Ubuntu ------------
sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server
sudo systemctl enable isc-dhcp-server

จากนั้น อนุญาตคำขอไปยัง DHCP daemon บนไฟร์วอลล์ ซึ่งรับฟังบนพอร์ต 67/UDP โดยการเรียกใช้

------------ On CentOS ------------ 
firewall-cmd --zone=public --permanent --add-service=dhcp
firewall-cmd --reload 

#------------ On Ubuntu ------------
sudo ufw allow 67/udp
sudo ufw reload

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

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

แก้ไขไฟล์การกำหนดค่าที่เหมาะสมสำหรับอินเทอร์เฟซที่ไคลเอนต์จะได้รับที่อยู่ IP โดยอัตโนมัติ

การตั้งค่าไคลเอ็นต์ DHCP บน CentOS

บน CentOS ไฟล์กำหนดค่าอินเทอร์เฟซจะอยู่ที่ /etc/sysconfig/network-scripts/

vim /etc/sysconfig/network-scripts/ifcfg-eth0

เพิ่มตัวเลือกด้านล่าง:

DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes

บันทึกไฟล์และเริ่มบริการเครือข่ายใหม่ (หรือรีบูตระบบ)

systemctl restart network

การตั้งค่าไคลเอ็นต์ DHCP บน Ubuntu

บน Ubuntu 16.04 คุณสามารถกำหนดค่าอินเทอร์เฟซทั้งหมดในไฟล์กำหนดค่า /etc/network/interfaces

   
sudo vi /etc/network/interfaces

เพิ่มบรรทัดเหล่านี้ลงไป:

auto  eth0
iface eth0 inet dhcp

บันทึกไฟล์และรีสตาร์ทบริการเครือข่าย (หรือรีบูตระบบ)

sudo systemctl restart networking

บน Ubuntu 18.04 เครือข่ายจะถูกควบคุมโดยโปรแกรม Netplan คุณต้องแก้ไขไฟล์ที่เหมาะสมภายใต้ไดเร็กทอรี /etc/netplan/ เป็นต้น

sudo vim /etc/netplan/01-netcfg.yaml 

จากนั้นเปิดใช้งาน dhcp4 ภายใต้อินเทอร์เฟซเฉพาะ เช่น ภายใต้ อีเธอร์เน็ต, ens0 และใส่ความคิดเห็นเกี่ยวกับการกำหนดค่า IP แบบคงที่:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens0:
      dhcp4: yes

บันทึกการเปลี่ยนแปลงและรันคำสั่งต่อไปนี้เพื่อให้การเปลี่ยนแปลงมีผล

sudo netplan apply 

สำหรับข้อมูลเพิ่มเติม โปรดดูหน้าคู่มือ dhcpd และ dhcpd.conf

man dhcpd
man dhcpd.conf

ในบทความนี้ เราได้อธิบายวิธีกำหนดค่าเซิร์ฟเวอร์ DHCP ในระบบปฏิบัติการ CentOS และ Ubuntu Linux หากคุณต้องการคำชี้แจงเพิ่มเติมเกี่ยวกับประเด็นใดๆ คุณสามารถถามคำถามผ่านแบบฟอร์มคำติชมด้านล่าง หรือเพียงแบ่งปันความคิดเห็นของคุณกับเรา