动态主机控制合同(DynamicHostControlProtocol)(DHCP)给网路管理员提供了一种方便的方法,为不断变化的网路主机或是动态网路提供网路层地址。其中最常用的DHCP服务工具是ISCDHCPServer。DHCP服务的目的是给主机提供必要的网路信息便于才能和其他联接在网路中的主机互相通信。DHCP服务提供的信息包括:DNS服务器信息,网路地址(IP),子网网段,默认网段信息,主机名等等。
本教程介绍运行在Debian7.7上4.2.4版的ISC-DHCP-Server怎样管理多个虚拟局域网(VLAN),也可以十分容易应用到单一网路上。
测试用的网路是通过思科路由器使用传统的方法来管理DHCP租期地址的。目前有12个VLAN须要通过集中式服务器来管理。把DHCP的任务转移到一个专用的服务器上,路由器可以收回相应的资源,把资源用到更重要的任务上,例如路由主存,访问控制列表,流量检测以及网路地址转换等。
另一个将DHCP服务转移到专用服务器的益处,之后会提到,它可以构建动态域名服务器(DDNS),这样当主机从服务器恳求DHCP地址的时侯,这样新主机的主机名都会被添加到DNS上面。
安装和配置ISCDHCP服务器
1、使用apt工具拿来安装Debian软件库房中的ISC软件linux系统网络配置 bond0,来创建这个多寄主服务器。与其他教程一样须要使用root或则sudo访问权限。请适当的更改,便于使用下边的。(LCTT评注:下边中括弧上面是注释,使用的时侯请删掉,#表示使用的root权限)
#apt-getinstallisc-dhcp-server[安装theISCDHCPServer软件]#dpkg--get-selectionsisc-dhcp-server[确认软件早已成功安装]#dpkg-sisc-dhcp-server[用另一种形式确认成功安装]
InstallISCDHCPServerinDebian
2、确认服务软件早已安装完成,如今须要提供网路信息来配置服务器,这样服务器才才能依据我们的须要来分发网路信息。作为管理员最至少须要了解的DHCP信息如下:
其他一些服务器动态分配的有用信息包括:
这只是能让ISCDHCP服务器处理的选项中特别少的一部份。假如你想查看所有选项及其描述须要在安装好软件后输入以下:
#mandhcpd.conf
3、一旦管理员早已确定了这台服务器分发的所有必要信息,这么是时侯配置服务器而且分配必要的地址池了。在配置任何地址池或服务器配置之前,必须配置DHCP服务器侦听这台服务器里面的一个插口。
在这台特定的服务器上,设置好网卡后,DHCP会侦听名称名为'bond0'的插口。请适按照你的实际情况来修改服务器以及网路环境。下边的配置都是针对本教程的。
ConfigureISCDHCPNetwork
这行指定的是DHCP服务侦听插口(一个或多个)上的DHCP流量。更改主配置文件,分配适宜的DHCP地址池到所须要的网路上。主配置文件在/etc/dhcp/dhcpd.conf。用文本编辑器打开这个文件
#nano/etc/dhcp/dhcpd.conf
这个配置文件可以配置我们所须要的地址池/主机。文件底部有‘ddns-update-style‘这样一句,在本教程中它设置为‘none‘。在之后的教程中会提到动态DNSlinux系统网络配置 bond0,ISC-DHCP-Server将会与BIND9集成,它还能使主机名更新指向到IP地址。
4、接出来的部份是管理员配置全局网路设置,如DNS域名,默认的租期时间,IP地址,子网的网段,以及其它。假如你想了解所有的选项,请阅读man指南中的dhcpd.conf文件,如下:
#mandhcpd.conf
对于这台服务器,我们须要在配置文件底部配置一些全局网路设置,这样就不用到每位地址池中去单独设置了。
ConfigureISCDDNS
我们花一点时间来解释一下这种选项,在本教程中尽管它们是一些全局设置,并且也可以单独的为某一个地址池进行配置。
5、文件中下边一行是权威DHCP所在行。这行的意义是假如服务器是为文件中所配置的网路分发地址的服务器,这么取消对该权威关键字(authoritativestanza)的注释。
通过去除关键字authoritative后面的‘#’,取消注释全局权威关键字。这台服务器将是它所管理网路上面的惟一权威。
EnableISCAuthoritative
默认情况下服务器被假设为不是网路上的权威服务器。之所以这样做是出于安全考虑。假如有人由于不了解DHCP服务的配置,致使配置不当或配置到一个不该出现的网路上面,这都将带来十分严重的联接问题。这行还可用在每位网路中单独配置使用。也就是说假如这台服务器不是整个网路的DHCP服务器,authoritative行可以用在每位单独的网路中,而不是像前面截图中那样的全局配置。
6、这一步是配置服务器即将管理的所有DHCP地址池/网路。简略起见,本教程只提到配置的地址池之一。作为管理员须要搜集一些必要的网路信息(例如域名,网路地址,有多少地址就能被分发等等)
以下这个地址池所用到的信息都是管理员搜集整理的:网路ID172.27.60.0,子网网段255.255.255.0或/24,默认子网网段172.27.60.1,广播地址172.27.60.255.0。
以上这种信息对于建立dhcpd.conf文件中新网路十分重要。使用文本编辑器更改配置文件添加新网路进去,这儿我们须要使用root或sudo访问权限。
#nano/etc/dhcp/dhcpd.conf
ConfigureDHCPPoolsandNetworks
当前这个反例是给用VMWare创建的虚拟服务器分配IP地址。第一行显示是该网路的子网网段。括弧上面的内容是DHCP服务器应当提供给网路里面主机的所有选项。
第一行,range172.27.60.50172.27.60.254;这一行显示的是,DHCP服务在这个网路上才能给主机动态分发的地址范围。
第二行,optionrouters172.27.60.1;这儿显示的是给网路上面所有的主机分发的默认网段地址。
最后一行红旗 linux,optionbroadcast-address172.27.60.255;显示当前网路的广播地址。这个地址不能被包含在要分领取的地址范围内,由于广播地址不能分配到一个主机前面。
必需要指出的是每行的结尾必需要用(;)来结束,所有创建的网路必需要在{}上面。
7、如果要创建多个网路,继续创建完它们的相应选项后保存文本文件即可。配置完成之后假如有修改,ISC-DHCP-Server进程须要重启来使新的修改生效。重启进程可以通过下边的命令来完成:
#serviceisc-dhcp-serverrestart
这条命令将重启DHCP服务,管理员才能使用几种不同的方法来检测服务器是否早已可以处理dhcp恳求。最简单的方式是通过lsof命令来查看服务器是否在侦听67端口linux 发邮件,命令如下:
#lsof-i:67
CheckDHCPListeningPort
这儿输出的结果表明dhcpd(DHCP服务守护进程)正在运行而且侦听67端口。因为在/etc/services文件中67端口的映射,所以输出中的67端口实际上被转换成了“bootps”。
在大多数的系统中这是十分常见的,如今服务器应当早已为网路联接做好打算,我们可以将一台主机接入网路恳求DHCP地址来验证服务是否正常。
测试顾客端联接
8、现在许多系统使用网路管理器来维护网路联接状态,因而这个设备应当预先配置好的,只要对应的插口处于活跃状态就能否获取DHCP。
但是当一台设备难以使用网路管理器时,它可能须要自动获取DHCP地址。下边的几步将演示如何自动获取以及怎样查看服务器是否早已按须要分发地址。
‘ifconfig‘工具才能拿来检测插口的配置。这台被拿来测试的DHCP服务器的设备,它只有一个网路适配器(网卡),这块网卡被命名为‘eth0‘。
#ifconfigeth0
CheckNetworkInterfaceIPAddress
从输出结果上看,这台设备目前没有IPv4地址,这样很易于测试。我们把这台设备联接到DHCP服务器并发出一个恳求。这台设备上早已安装了一个名为‘dhclient‘的DHCP顾客端工具。由于操作系统各不相同,所以这个顾客端软件也是互不一样的。
#dhclienteth0
RequestIPAddressfromDHCP
当前'inetaddr:'数组中显示了属于172.27.60.0网路地址范围内的IPv4地址。值得欣喜的是当前网路还配置了正确的子网网段而且分发了广播地址。
到这儿看上去还都不错,让我们来测试一下,瞧瞧这台设备收到新IP地址是不是由服务器发出的。这儿我们参照服务器的日志文件来完成这个任务。其实这个日志的内容有几十万条,而且上面只有几条是拿来确定服务器是否正常工作的。这儿我们使用一个工具‘tail’,它只显示日志文件的最后几行,这样我们就可以不用拿一个文本编辑器去查看所有的日志文件了。命令如下:
#tail/var/log/syslog
CheckDHCPLogs
OK!服务器记录表明它分发了一个地址给这台主机(HRTDEBXENSRV)。服务器按预期运行,给它充当权威服务器的网路分发了适宜的网路地址。至此DHCP服务器搭建成功而且运行。假如有须要你可以继续配置其他的网路,排查故障,确保安全。
在之后的Debian教程中我会讲一些新的ISC-DHCP-Server功能。有时间的话我将写一篇关于Bind9和DDNS的教程,融入到这篇文章上面。
本文永久更新链接地址:
本文原创地址://q13zd.cn/yxzdsbdirhgl.html编辑:刘遄,审核员:暂无