大家知道,DHCP(动态主机配置协议)可以使客户端自动从服务器得到一个IP地址。如何配置DHCP服务器,在Windows 2000 Server中很容易实现。那在Linux中能否实现呢?答案是肯定的,大家知道Linux是非常好的网络操作系统,使用它可以很轻松的搭建一台高性能的DHCP服务器。本文就使用红旗Linux Server 2.0搭建DHCP的过程讲述一下。
首先,我们来看DHCP工作的过程,看一下客户端是通过哪些手段得到IP地址的。当DHCP启动时,TCP/IP初始化并且由客户端发送一个DHCP DISCOVER的报文向DHCP服务器申请一个IP。DHCP服务器收到DHCP DISCOVER后,它将从客户端主机的地址池中为它提供一个尚未被分配的IP地址。该报文信息被返回到上述主机。客户端随后发出一个包含有DHCP服务器提供IP地址的DHCP REQUEST的报文。DHCP服务器向客户端发回一个含有原先被发出IP地址及其分配方案的应答报文。DHCP服务器提供给客户端的IP地址是有时间限制的,DHCP客户端要想继续使用这个IP地址,必须在租期到来时对它进行更新和续借。
下面就我如何配置DHCP服务器的过程叙述一下:
DHCP服务是通过程序/usr/sbin/dhcpd提供的。在DHCP服务器启动时,dhcpd要读取dhcpd.conf文件的内容(dhcpd.conf保存的是DHCP服务器的配置信息)。dhcpd将客户端租用的信息保存在dhcpd.lease文件中。在DHCP服务器为客户提供IP地址之前,将在这个文件中记录租用的信息。新的租用信息会添加到dhcpd.leases的尾部。为了向一个子网提供DHCP服务,dhcpd需要知道子网的网络号码和子网掩码。还有地址范围等等。
下面就我的DHCP服务器配置文件内容叙述一下。
文件名:
/etc/dhcpd.conf
内容:
[code] subnet 192.168.0.0 netmask 255.255.255.0{ range 192.168.0.10 192.168.0.30; default-lease-time 86400; max-lease-time 604800; option subnet-mask 255.255.255.0; option routers 192.168.0.2; option domain-name "cy.com"; option broadcast-address 192.168.0.255; option domain-name-servers 192.168.0.3; }[/code]
cxtt228 于 2006-09-17 09:38:00发表:
其中subnet x.x.x.x netmask x.x.x.x 说明IP地址是否属于该子网上,提供子网的一些参数;range x.x.x.x x.x.x.x 是DHCP服务器可以分配的IP地址范围; default-lease-time 设置缺省的IP租用时间,常用的是86400秒(一天);max-lease-time 最大租用时间。常用的是604800(一周);option subnet-mask 设置IP地址的子网掩码;option routers 设置在DHCP发布IP地址的同时,把网关发布出去,这一项是用来指明网关的;option domain-name-servers 设置在DHCP发布IP地址的同时,把DNS发布出去,这一项用来指明DNS服务器的IP地址;option broadcast-address 设置该子网的广播地址;option doamin-name 设置DNS域名。
dhcpd还可以把主机的MAC地址和IP捆绑在一起,防止IP地址的乱用。具体方法是,在/etc/dhcpd.conf中输入:
[code] host pc1{ hardware ethernet xx.xx.xx.xx.xx.xx fixed-address 192.168.0.9; }[/code]
host pc1中的pc1是指定主机的名字;hardware ethernet 指定要捆绑IP地址主机的MAC地址;fixed-address 指定捆绑后的IP地址。
现在配置文件已经有了,但还是不能启动dhcpd,为什么呢?因为我们还没有创建关于dhcpd的租用文件。
现在我们创建dhcpd.leases文件:
[code] #toouch /var/state/dhcp/dhcpd.leases[/code]
然后就可以启动dhcpd了:
[code] #/etc/rc.d/init.d/dhcpd start[/code]
如果希望在每次启动系统的时候也启动dhcpd,请执行命令:
[code] #/sbin/chkconfig --level 3 dhcpd on[/code]
chkconfig 命令是检查、设置系统的各种服务。参数 --level <等级代号>指定该系统服务要在哪一个执行等级中开启或关闭,范围是0-7。然后,在Linux客户端的设置netconf在网络设置中把IP地址的获得设置为DHCP。 这样,我们DHCP服务器的配置就完成了。