Redhat Linux DHCP服务器的安装:
首先插入Redhat的安装光盘,加载光驱
[root@linux-a ~]# mount /dev/cdrom /media/
mount: block device /dev/cdrom is write-protected, mounting read-only
安装DHCPD服务软件
[root@linux-a ~]# rpm -ivh /media/Server/dhcp-3.0.5-3.el5.i386.rpm
warning: /media/Server/dhcp-3.0.5-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:dhcp ########################################### [100%]
[root@linux-a ~]#
DHCP服务的配置
dhcpd.conf 是DHCP服务的配置文件,DHCP服务所有参数都是通过修改dhcpd.conf 文件来实现,安装后dhcpd.conf 是没有做任何配置的,将/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample 复制为dhcpd.conf 文件进行配置:
[root@linux-a ~]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
cp:是否覆盖“/etc/dhcpd.conf”? y
[root@linux-a ~]#
复制好之后对/etc/dhcpd.conf文件修改,配置DHCP服务参数
[root@linux-a ~]# vim /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;option nis-domain "liusuping.com";
option domain-name "liusuping.com";
option domain-name-servers 192.168.1.1;option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;# we want the nameserver to appear at a fixed address
host www {
next-server www.liusuping.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
dhcpd.conf参数说明
/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。
1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户
ddns-update-style 配置DHCP-DNS 互动更新模式。
default-lease-time 指定确省租赁时间的长度,单位是秒。
max-lease-time 指定最大租赁时间长度,单位是秒。
hardware 指定网卡接口类型和MAC地址。
server-name 通知DHCP客户服务器名称。
get-lease-hostnames flag 检查客户端使用的IP地址。
fixed-address ip 分配给客户端一个固定的地址。
authritative 拒绝不正确的IP地址的要求。
2.DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等
shared-network 用来告知是否一些子网络分享相同网络。
subnet 描述一个IP地址是否属于该子网。
range 起始IP 终止IP 提供动态分配IP 的范围。
host 主机名称 参考特别的主机。
group 为一组参数提供声明。
allow unknown-clients;deny unknown-client 是否动态分配IP给未知的使用者。
allow bootp;deny bootp 是否响应激活查询。
allow booting;deny booting 是否响应使用者查询。
filename 开始启动文件的名称. 应用于无盘工作站。
next-server 设置服务器从引导文件中装如主机名,应用于无盘工作站。
3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始
subnet-mask 为客户端设定子网掩码。
domain-name 为客户端指明DNS名字。
domain-name-servers 为客户端指明DNS服务器IP地址。
host-name 为客户端指定主机名称。
routers 为客户端设定默认网关。
broadcast-address 为客户端设定广播地址。
ntp-server 为客户端设定网络时间服务器IP地址。
time-offset 为客户端设定和格林威治时间的偏移时间,单位是秒。
注意:如果客户端使用的是视窗操作系统,不要选择"host-name"选项,即不要为其指定主机名称
多网卡的配置
有时你需要在一台安装了两块网卡(作防火墙或网关)的机器上安装DHCP服务,下面的例子指出一台防火墙机器上的一种DHCP设置,因为对外的网卡(internet)不需要提供DHCP服务。
因此这样设置如下:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.4;
default-lease-time 86400;
max-lease-time 259200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.254;
}
subnet 192.168.0.102 netmask 255.255.255.255 {
}
DHCP服务IP分配查看
dhcpd.leases是记录DHCP服务分配IP地址的数据库,第一次运行DHCP服务器时dhcpd.leases是一个空文件,也不用手工建立。可以通过查看dhcpd.leases文件来查看IP地址的分配情况。
lease 192.168.1.1 {
starts 0 2010/07/30 08:02:54;
ends 5 2010/07/04 08:02:54;
hardware ethernet 00:50:04:53:D5:57;
uid 01:00:50:04:53:D5:57;
client-hostname "redhat-b";
}
启动和检查DHCP服务器
使用命令启动DHCP服务器:
#service dhcpd start
关闭DHCP服务器:
#service dhcpd stop
重启DHCP服务器:
#service dhcpd restart
使用ps命令检查dhcpd进程:
#ps -ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
使用检查dhcpd运行的端口:
# netstat -nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
配置DHCP客户端
通常网管员使用选择手工配置 DHCP 客户,需要修改 /etc/sysconfig/network 文件来启用联网;并修改 /etc/sysconfig/network-scripts 目录中每个网络设备的配置文件。在该目录中,每个设备都有一个叫做 ifcfg-eth? 的配置文件,eth?是网络设备的名称。 如eth0等。如果你想在引导时启动联网,NETWORKING 变量必须设为 yes。 除了此处之外/etc/sysconfig/network 文件应该包含以下行:
NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes