การติดตั้ง DHCP server ด้วยโปรแกรม dhcp
วิธีติดตั้ง DHCP server ด้วยโปรแกรม dhcp
*** แหล่งข้อมูลต้นฉบับ dhcp คือ http://www.isc.org/sw/dhcp
- ติดตั้งโปรแกรม dhcp ด้วยคำสั่ง
apt-get install dhcp
ในกรณีที่ใช้ yum ให้เปลี่ยนคำว่า apt-get เป็น yum ดังตัวอย่าง
yum install dhcp
- แก้ไขให้ทำงานทุกครั้งที่บูทเครื่อง
chkconfig dhcpd on
- ตัวอย่างข้อกำหนดของระบบ dhcp server
- ติดตั้งบน server หมายเลข IP คือ 10.0.0.5
- ใช้งานบน network หมายเลข 10.0.0.0 mask 255.255.255.0
- ปล่อยหมายเลข IP ตั้งแต่ 10.0.0.20 ถึง 10.0.0.50
- default gateway คือ 10.0.0.1
ให้สร้างแฟ้ม /etc/dhcpd.conf ที่มีการกำหนดค่าตัวอย่างดังนี้
- *** ค่าบังคับจำเป็นต้องมีสำหรับ dhcp เวอร์ชั่น 3.x นี้
ddns-update-style ad-hoc;
- *** ค่า domain-name-servers ตั้งให้เป็น ip ที่ถูกต้อง
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.20 10.0.0.50;
option domain-name-servers a.b.c.d;
option routers 10.0.0.1;
}
- สั่งให้ทำงานด้วยคำสั่งว่า
/etc/init.d/dhcpd start
Starting dhcpd: [ OK ]
- หากแก้ไขแฟ้ม /etc/dhcpd.con แล้วให้ระบบอ่านค่าที่ปรับใหม่ได้ด้วยคำสั่ง
/etc/init.d/dhcpd reload
Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ]
- กรณีที่มีการใช้บน server เดี่ยวกันร่วมกับโปรแกรม shorewall
ต้องแก้ไขแฟ้ม /etc/shorewall/interfaces
ที่ให้ interface ของ zone ที่มีเป็น dhcp server ให้เพิ่มคำว่า dhcp เข้าไปด้วย
ดังตัวอย่าง
net eth0 detect dhcp
แล้วต้อง reload โปรแกรม shorewall ใหม่ ด้วยคำสั่ง /etc/init.d/shorewall reload
- ตัวอย่างการปรับปรุงแก้ไขแฟ้ม /etc/dhcpd.conf
- ต้องการ fix หมายเลข ip เข้ากับ MAC ของ lan card
host ip1684-26 {
hardware ethernet 00:01:03:18:BB:4E;
fixed-address 192.168.4.26;
}
- ต้องการอนุญาติให้เฉพาะ lan card ที่ได้ fix หมายเลข ip เข้าใช้งานเท่านั้น
deny unknown-clients;
- การจัดทำแบบให้บางส่วนต้อง fix และบางส่วนเป็น dynamic
host ncd2 { hardware ethernet 0:c0:c3:88:2d:81; }
host ncd3 { hardware ethernet 0:c0:c3:00:14:11; }
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.254;
# Unknown clients get this pool.
pool {
option domain-name-servers bogus.example.com;
max-lease-time 300;
range 10.0.0.200 10.0.0.253;
allow unknown-clients;
}
# Known clients get this pool.
pool {
option domain-name-servers ns1.example.com,ns2.example.com;
max-lease-time 28800;
range 10.0.0.5 10.0.0.199;
deny unknown-clients;
}
}