การติดตั้ง DHCP Server บน Fedora Core Linux
DHCP มาจาก Dynamics Host Configuration Protocol เป็นกระบวนการจัดสรรคุณสมบัติต่างๆ เพื่อใช้ในการเชื่อมต่อเครือข่าย ให้กับเครื่องภายในเครือข่ายแบบอัตโนมัติ ซึ่งคุณสมบัติต่างๆ นั้นมีทั้งหมายเลขไอพี (IP address) , เกตเวย์ (Gateway) , DNS เซิร์ฟเวอร์ และอื่นๆ
ขั้นตอนการติดตั้ง DHCP Server
ขั้นตอนที่ 1
ใส่แผ่น CD/DVD ของ Fedora Core Linux แล้วทำการเมาท์ แล้วไปยังพาธที่เก็บไฟล์สำหรับติดตั้งซอฟต์แวร์ ดังนี้
# mount /dev/cdrom /mnt/cdrom
# cd /mnt/cdrom/Fedora/RPMS/
ขั้นตอนที่ 2
ทำการติดตั้งโดยใช้คำสั่ง rpm ซึ่งซอฟต์แวร์สำหรับติดตั้ง DHCP เซิร์ฟเวอร์ในแผ่น Fedora Core มีชื่อไฟล์เป็น dhcp-xxx-yy.zzz.i386.rpm มีวิธีการดังนี้
[root@netserv RPMS]# rpm -ihv dhcp-xxx-yy.zzz.i386.rpm
warning: dhcp-xxx-yy.zzz.i386.rpm: Header V3 DSA signature:
NOKEY, key ID zzz
Preparing... ######################### [100%]
1:dhcp ######################### [100%]
[root@netserv RPMS]#
ขั้นตอนการปรับแต่ง DHCP Server
โดยปกติแล้วคอนฟิกกูเรชั่นไฟล์หลักๆ ที่ใช้ในการปรับแต่ง DHCP Server จะอยู่ที่ /etc/dhcpd.conf เราสามารถคัดลอกไฟล์ตัวอย่างของ dhcpd.conf ไปไว้ที่ /etc ได้ ซึ่งไฟล์ตัวอย่างนี้จะอยู่ที่ /usr/share/doc/dhcp-<version>/dhcpd.conf.sample เราสามารถคัดลอกได้ ดังนี้
# cp /usr/share/doc/dhcp-xxx/dhcpd.conf.sample /etc/dhcpd.conf
cp: overwrite `/etc/dhcpd.conf'? Y
ก่อนการปรับแต่ง DHCP Server ให้ทำการตรวจสอบก่อนว่า เราจะแจกจ่ายหมายเลขไอพีสำหรับเครือข่ายกลุ่มไหน มีซับเน็ตเป็นอย่างไร เครื่องไหนเป็นโดเมนเนมเซิร์ฟเวอร์ (DNS Server) ซึ่งในการปรับแต่ง สามารถทำได้ดังนี้
ขั้นตอนที่ 1
ทำการแก้ไขค่าของ subnet ให้เป็นเครือข่ายวงที่เราจะแจกจ่ายไป ซึ่งมีค่า subnet เป็น 192.168.2.0 และใช้ netmask เป็น 255.255.255.0 ดังนี้
จาก
subnet 192.168.0.0 netmask 255.255.255.0 {
เป็น
subnet 192.168.2.0 netmask 255.255.255.0 {
ขั้นตอนที่ 2
ทำการตั้งค่าของ default gateway ที่จะแจกไปให้กับเครื่องในเครือข่าย ซึ่งในที่นี้จะใช้คำว่า routersโดยแก้ไขให้เป็นหมายเลขไอพีของการ์ดแลนใบที่เป็นเครือข่ายภายใน ในที่นี้คือ eth1 ซึ่งมีหมายเลขไอพีเป็น 192.168.2.1 โดยแก้ไข ดังนี้
จาก
option routers 192.168.0.1;
เป็น
option routers 192.168.2.1;
ขั้นตอนที่ 3
ค่าของ subnet-mask ที่จะแจกจ่ายไปให้กับเครื่องลูกข่ายใช้งานในที่นี้ใช้ค่ามาตรฐาน ดังนี้
option subnet-mask 255.255.255.0;
ขั้นตอนที่ 4
ปิดการแจกจ่าย nis-domain ผ่านทาง DHCP Server เนื่องจากว่า NIS เป็นเซอร์วิสสำหรับการแชร์ public key ในระบบเครือข่ายที่ใช้ลินุกซ์ด้วยกัน ดังนี้
จาก
option nis-domain "domain.org";
เป็น
#option nis-domain "domain.org";
ขั้นตอนที่ 5
ทำการตั้งค่าของโดเมนที่จะแจกจ่ายให้กับเครื่องลูกข่าย ในที่นี้ตั้งเป็น linux-server-1.com ดังนี้
จาก
option domain-name "domain.org";
เป็น
option domain-name "linux-server-1.com";
ขั้นตอนที่ 6
ทำการตั้งค่าของโดเมนเนมเซิร์ฟเวอร์ (Domain Name Server) ในที่นี้ตั้งเป็นหมายเลขไอพีของเครื่องเซิร์ฟเวอร์ที่ตั้งขึ้นมา หรือตั้งเป็นไอพีของโดเมนเนมเซิร์ฟเวอร์อื่นก็ได้เช่นกัน ซึ่งสามารถมีได้หลายตัว คั่นด้วยเครื่องหมายคอมม่า (,) ดังนี้
จาก
option domain-name-servers 192.168.1.1;
เป็น
option domain-name-servers 192.168.2.1 , 202.47.249.4;
ขั้นตอนที่ 7
ทำการปรับแต่งช่วงของหมายเลขไอพี ที่จะแจกจ่ายไปยังเครื่องในเครือข่ายภายใน ตัวอย่างเช่น ต้องการแจกจ่ายไปยังเครือข่าย 192.168.2.0 โดยเริ่มต้นตั้งแต่หมายเลข 192.168.2.11 ไปจนถึง 192.168.2.250 ซึ่งหมายเลขไอพีที่เหลือ ที่ไม่ได้แจกจ่ายไป เนื่องจากสำรองไว้สำหรับเครื่องเซิร์ฟเวอร์อื่นๆ ซึ่งสามารถทำได้ดังนี้
จาก
range dynamic-bootp 192.168.0.128 192.168.0.254;
เป็น
range 192.168.2.11 192.168.2.250;
การปรับแต่งในไฟล์ /etc/dhcpd.conf เสร็จเรียบร้อย ค่าอื่นๆ ที่ไม่ได้กล่าวถึงให้ใช้ค่ามาตรฐานที่ระบบตั้งมาให้ ซึ่งค่าที่สำคัญมีดังนี้
- default-lease-time เป็นค่าที่กำหนดระยะเวลาปกติที่เครื่องลูกข่ายจะใช้หมายเลขไอพีเดิมได้ ตราบใดที่ยังร้องขอภายในช่วงเวลานี้ หน่วยเป็นวินาที
- max-lease-time เป็นค่าที่กำหนดระยะเวลาสูงสุดที่เครื่องลูกข่ายจะใช้หมายเลขไอพีเดิมได้ ตราบใดที่ยังร้องขอภายในช่วงเวลานี้ หน่วยเป็นวินาที
ตรวจสอบการทำงาน
ขั้นตอนที่ 1
หลังจากทำการปรับแต่งข้อมูลในไฟล์ /etc/dhcpd.conf เสร็จเรียบร้อยแล้ว ให้ทำการเปิดการใช้งานเซอร์วิส dhcpd , ปิดการใช้งาน และรีสตาร์ทเซอร์วิส ดังนี้
[root@netserv ~]# /etc/init.d/dhcpd start
Starting dhcpd: [ OK ]
[root@netserv ~]# /etc/init.d/dhcpd stop
Shutting down dhcpd: [ OK ]
[root@netserv ~]# /etc/init.d/dhcpd restart
Shutting down dhcpd: [FAILED]
Starting dhcpd: [ OK ]
ขั้นตอนที่ 2
จากนั้นให้ตรวจสอบที่เครื่องลูกข่าย ว่าได้รับหมายเลขไอพีหรือไม่

ขั้นตอนที่ 3
ที่ฝั่งเซิร์ฟเวอร์ สามารถตรวจสอบการใช้หมายเลขไอพีได้จากไฟล์ /var/lib/dhcpd/dhcpd.leases
โดยใช้คำสั่ง cat , less , more อ่านข้อมูลในไฟล์ ดังนี้
[root@netserv ~]# cat /var/lib/dhcpd/dhcpd.leases
...
lease 192.168.2.249 {
starts 6 2007/05/19 16:25:29;
ends 6 2007/05/19 22:25:29;
binding state active;
next binding state free;
hardware ethernet 00:16:d3:96:69:6f;
uid "\001\000\026\323\226io";
client-hostname "CP";
}
...
ขั้นตอนที่ 4
เมื่อระบบทำงานได้ถูกต้องแล้ว ให้เรากำหนดให้เซอร์วิส dhcpd ทำงานทุกครั้งเมื่อเปิดเครื่องเข้าสู่ระบบ
[root@netserv ~]# chkconfig dhcpd on


