【IT168专稿】这不是一篇介绍DHCP高级配置的文章,而是祥子在工作实践中认识到,在局域网中只有一台DHCP服务器是不安全的,为了保障网络的正常运行,应该至少保证一主一备两台DHCP服务器,这样在一台DHCP服务器出现故障的时候,另外一台就可以顶上去,从而在最短的时间内解决故障。实际前一段时间单位的一台DHCP服务器由于硬件故障无法启动了,造成了后院宿舍区的宽带用户上网故障,好在祥子以前有所技术储备,知道CISCO3550交换机也可以作为DHCP服务器,于是就在很短的时间内又建立起一台DHCP服务器,在很短的时间内就解决了问题,而且通过这一段时间对DHCP服务的研究,发现其实这项服务占用的系统资源很少,也就是说很多网络设备作为“副业”也可以提供DHCP服务,这就为我们打开了广阔的空间。那么在局域网中哪些设备可以作为DHCP服务器呢,主要有如下四种。
一、CISCO35系列的交换机
我们单位的核心交换机是CISCO3550,35系列的交换机均可以作为DHCP服务器,配置步骤很简单,按照下面的操作即可。
1、创建DHCP地址池
3550#conf t
Enter configuration commands, one per line. End with CNTL/Z.
3550(config)#ip dhcp pool test1027
2、指定网络或子网
network 10.66.0.0 255.255.0.0
3、指定要排除的IP地址
ip dhcp excluded-address 10.66.0.1 10.66.6.253
在这里我要在解释一下设置要排除地址的必要性,在一个局域网中如果同时存在静态IP地址和动态分配的IP地址,如果不设置排除地址,当一台静态IP地址的机器关机的时候,它的IP地址就有可能分配给一台DHCP的客户端,当静态IP地址的主机开机的时候,就形成IP地址冲突的局面了。
4、指定域名
这一步可以省略
5、指定DNS服务器的IP地址
3550(dhcp-config)#dns-server 202.102.152.3 202.96.199.132 ?
6、设置默认网关
3550(dhcp-config)#default-router 10.66.0.1
7、设置租用时间
3550(dhcp-config)#lease infinite
这一步如果不设置,则采用系统默认值
8、核实配置
ip dhcp excluded-address 10.66.0.1 10.66.6.253
ip dhcp pool test1027
network 10.66.0.0 255.255.0.0
dns-server 202.102.152.3 202.96.199.132
default-router 10.66.0.1
经验总结
(一)在CISCO3550里面启动DHCP服务
很多教程里写到这儿就完了,其实以上只是进行了DHCP服务器的配置,至此局域网中的用户还是无法通过DHCP获取到IP地址的,还要在CISCO3550交换机中启用DHCP服务,命令如下:
3550(config)#service dhcp
(二)启用DHCP服务后对对交换机的性能造成影响的问题
对于这个问题原来我有所担心,这也是我以前虽然知道CISCO3550交换机可以作为DHCP服务器,但是却一直没有在这交换机做配置的主要原因,但是看CISCO交换机的性能有没有受到影响,主要是通过两个技术指标,一是内存的使用情况,一是CPU的使用情况,启用了DHCP后,内存和CPU的使用情况如下所示,
3550#show mem
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor C1A2D8 54408488 7207688 47200800 45798788 47111776
I/O 80000000 8388608 1195452 7193156 7068920 7156504
3550#show proc cpu | i DHCP
47 2636 9558 275 0.00% 0.00% 0.00% 0 DHCPD Receive
71 0 1296 0 0.00% 0.00% 0.00% 0 DHCPD Timer
80 0 5 0 0.00% 0.00% 0.00% 0 Vegas DHCP glean
93 16 44022 0 0.00% 0.00% 0.00% 0 DHCPD Database
从中可以看出DHCP服务对交换机的内存和CPU占用都是非常少的。
另外一个就是实际的使用情况了,从这一个多月的使用情况来看,交换机启用了DHCP服务后,对于正常使用没有造成影响。
(三)启用VLAN间的路由
CISCO3550交换机作为我们单位的核心交换机,上面划分了很多的VLAN,即每个单位对应一个独立的VLAN,这也就意味着要为那个VLAN分配IP地址,就是建立相应的DHCP地址池,同时还要启动VLAN间的路由,命令如下:
3550(config)#ip routing
这样就可以同是为多个VLAN都进行DHCP服务了。
二、用WIN2003服务器 做DHCP服务器
如果局域网中的CISCO3550交换机不允许被配置为DHCP服务器,那么退而求其次,在局域网内找一台WIN2003服务器作DHCP服务器也是不错的选择。由于DHCP服务对于资源的占用很小,所以我们并不需要一台专门作DHCP的服务器,比如本次我们就是在一台杀毒软件服务器上实现的DHCP服务功能。
步骤如下:
新建一个作用域
1、作用域名,名称:66
2、ip地址范围
起始地址:10.66.7.1
结束地址:10.66.8.254
长度:16
子网掩码:255.255.0.0
3、添加排除
起始ip地址:10.66.7.1
结束ip地址:10.66.7.100
4、租约期限:8天
5、配置DHCP选项
6、路由器,IP地址:10.66.0.1
7、域名称和DNS服务,IP地址:202.102.152.3
8、WINS服务器,这一项可不填。
最后选择“是,我想现在激活此作用域”。至此一台DHCP服务器就配置好。
应用心得:
(一)利用WIN2003作DHCP服务器,可以轻松的为多个网段提供DHCP服务。
前面我提到过,本例中我们是使用的一台杀毒软件服务器兼做了DHCP服务器,它的IP地址为10.75.0.8(属于VLAN75),与宿舍区的局域网10.66/16(VLAN66)不属于同一个网段,那么我们就要在保证交换机可以实现VLAN间路由的基础上,再在VLAN66上设置ip helper地址即可,命令如下:
3550#conf t
Enter configuration commands, one per line. End with CNTL/Z.
3550(config)#inter vlan 66
3550(config-if)#ip helper-address 10.75.0.8
利用这个方法,我们就可以跟在交换机上实现的功能一样,一台DHCP服务器同时为局域内的多个VLAN提供DHCP服务,而且以上介绍的这两种实现DHCP服务功能的方法,设置步骤都很清晰,实现起来都很顺畅。CISCO三层交换机和WIN2003服务器都是做DHCP服务器很好的选择。
(二)网管员应该把自己的PC机打造成一台服务器
利用CISCO3550交换机和WIN2003服务器作为DHCP服务器,都具有稳定可靠,运行高效的特点,但是如果当时手头这两种设备都无法利用,就只好把自己用的PC机顶上去了。作为网管也真的很有意思,有时候手头上会有很多的服务器,可以随意的调配资源,但有的时候又一台服务器都抓不到,只好将自己的PC机当作服务器。从祥子的工作经验来看,即使是自己的PC机,也最好装个XP和WIN2003的双系统,再在XP中用虚拟机装一个LINUX操作系统,遇到紧急的时候,就可以随时切换,把相应的服务配好,然后顶上去做服务器。先把故障解决了,再为下一步的优化网络、排查故障争取时间。
三、将一台XP的机器做成DHCP服务器
首先要说明的是XP自身是不提供DHCP服务的,因此我们需要借助第三方的工具软件。祥子在这里要推荐的是TFTPD32这款软件。它是一款免费软件,在华军软件园即可下载。它的配置是相当的简单,打开软件就相当于启用了服务,这款软件的主要功能是做TFTP服务器,但是同时还可以兼做DHCP服务器。设置如图所示,即设置好网段、网关、DNS服务器地址后,它就可以工作,如图1所示:
图1 TFPTD32软件做DHCP服务器的配置界面
但是经过使用发现,它只能为一个网段提供DHCP服务,也就是说功能还是稍微弱了一点。不过利用TFTPD32这款软件,随便找一台XP就可以应急,还是很实用的。
四、用LINUX主机作为DHCP服务器
忙活了这么半天,现在局域网内的用户可以正常使用网络了,我们就可以腾出手来重新将LINUX的主机作成DHCP服务器。一直以来祥子都是使用红旗LINUX桌面版作为服务器,从第一次使用4.1桌面版起,当发现进入LINUX系统的桌面后可以流畅的使用中文,祥子就喜欢上了这个操作系统,虽然桌面版是免费的,很多服务都要自己安装,但是祥子发现了一个规律,即只要是红帽(redhat linux)下面可用的软件,按照相同的安装和配置在红旗下也是可行的,而且随着红旗桌面版的不断升级,其内置提供的服务也是越来越多了,比如我现在使用的6.0桌面版,其中就内置了DHCP功能,因此配置起来也更方便了。
配置文件没什么说的,我们先要在/usr/share/doc/dhcp-3.0.5这个目录中找到一个名为dhcpd.conf.sample的配置文件,将其拷贝到/etc目录下并重命名为dhcpd.conf,然后对其进行编辑,做出一个适合符合我们网络环境的配置来即可,我所做配置文件如下:
[root@localhost ~]# more /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
#subnet 192.168.0.0 netmask 255.255.255.0 {
subnet 10.65.0.0 netmask 255.255.0.0 {
# --- default gateway
option routers 10.65.0.1;
option subnet-mask 255.255.0.0;
option domain-name-servers 202.102.152.3,218.56.57.58;
option time-offset -18000; # Eastern Standard Time
range 10.65.188.1 10.65.188.128;
default-lease-time 21600;
max-lease-time 43200;
}
细心的朋友可能注意到了,这个配置文件只是实现为一个网段:10.65/16分配了IP地址,其实一台LINUX服务器可以做得跟CISCO三层交换机和WIN2003服务器一样好,而且它对硬件的要求更低,我再以一台红旗LINUX4.1桌面版为例(内核是2.4.26-1),完整的说明一下从源文件开始进行编译和配置的过程。
(一)DHCP软件的下载
https://www.isc.org/software/dhcp/
我本次下载的是3.1.3这个版本,具体的下载地址是http://ftp.isc.org/isc/dhcp/dhcp-3.1.3.tar.gz。
(二)安装
这此我要说一下LINUX下软件安装的方法,首先我们要进行解压缩操作,无非就是gunzip和tar xvf两步,然后我们进入相应的目录,怎么安装,先要看README文件,里面详细的说明了安装的过程,一般来说也就是./configure、make、make install三步。具体的软件会有些细微的差别,但是主要还是要看README文件,软件提供商提供了更详细准确的说明,比大部分网上的资料都要可靠的多。
(三)配置
说到配置,我们还是要先找到示例的配置文件,本例中这个文件位于/var/dhcp-3.1.3/server目录下,文件名就叫dhcpd.conf,将其拷贝到/etc目录下,这个dhcpd.conf文件的内容很丰富,但是我们做一个最简单的DHCP服务器只需要其中很少的一部分内容,我的配置文件如下:
[root@nwww server]# more /etc/dhcpd.conf
# dhcpd.conf
option domain-name "example.org";
option domain-name-servers 202.102.152.3;
default-lease-time 600;
max-lease-time 7200;
# Use this to enble / disable dynamic dns updates globally.
ddns-update-style none;
log-facility local7;
# This is a very basic subnet declaration.
subnet 192.168.5.0 netmask 255.255.255.0 {
range 192.168.5.3 192.168.5.10;
option routers 192.168.5.1;
}
subnet 10.65.0.0 netmask 255.255.0.0 {
range 10.65.8.1 10.65.8.8;
option routers 10.65.0.1;
}
关于在LINUX系统下配置DHCP服务器,我们同事之间也是经常交流,总的说起来,配置DHCP服务器,最关键的就是dhcpd.conf文件,这个文件主要分三部分,第一部分是公共的配置部分,主要是DNS服务器地址(option domain-name-servers 202.102.152.3;)、默认租用时间(default-lease-time 600;)这一部分,这部分完全可以照抄示例文件的,第二部分就是定义子网的部分了。为了好理解,我们可以从WIN2003服务器的配置做起,翻到前面,我们看看在WIN2003中都做了什么:定义网段、设置地址范围、设置路由器地址,是的,在LINUX下面也要实现这三项,就是如下三行:
subnet 192.168.5.0 netmask 255.255.255.0 {
range 192.168.5.3 192.168.5.10;
option routers 192.168.5.1;
}
有了以上这两部分,DHCP服务器就可以正常工作了,启动命令如下:
[root@nwww sbin]# cd /usr/sbin
[root@nwww sbin]# dhcpd eth0
后面跟了一个“eth0”的参数,表明是在eth0网卡上启动DHCP服务。
那么最后一部分就是为别的网段分配IP地址了,其实也很简单,准备为哪个网段分配IP地址,就照着上面的例子把那三行配置再写一遍即可。当然做完了以后还需要在交换机的相应VLAN上设置ip helper地址。
通过以上的介绍,我们可以发现在局域网中有很多设置都可以做DHCP服务器,熟练的掌握配置方法,可以在出现故障的时候及时解决问题,作为一名网管的素质就体现出来了。