作者:Rob Turner译者: LCTTivo_wang
| 2015-12-25 13:29收藏: 3
动态主机控制合同(Dynamic Host Control Protocol)(DHCP)给网路管理员提供了一种方便的方法,为不断变化的网路主机或是动态网路提供网络层地址。其中最常用的 DHCP 服务工具是 ISC DHCP Server。DHCP 服务的目的是给主机提供必要的网路信息便于才能和其他联接在网路中的主机相互通讯。DHCP 服务提供的信息包括:DNS 服务器信息,网络地址(IP),子网掩码,默认网段信息,主机名等等。
本教程介绍运行在 Debian 7.7 上 4.2.4 版的 ISC-DHCP-Server 如何管理多个虚拟局域网(VLAN),也可以十分容易应用到单一网路上。
测试用的网路是通过思科路由器使用传统的方法来管理 DHCP 租约地址的。目前有 12 个 VLAN 需要通过集中式服务器来管理。把 DHCP 的任务转移到一个专用的服务器上,路由器可以收回相应的资源,把资源用到更重要的任务上linux网络配置 bond0linux操作系统界面,比如路由主存,访问控制列表,流量检测以及网路地址转换等。
另一个将 DHCP 服务转移到专用服务器的益处,以后会提到,它可以构建动态域名服务器(DDNS),这样当主机从服务器恳求 DHCP 地址的时侯,这样新主机的主机名都会被添加到 DNS 系统上面。
安装和配置 ISC DHCP 服务器
1、使用 apt 工具拿来安装 Debian 软件库房中的 ISC 软件,来创建这个多寄主服务器。与其他教程一样须要使用 root 或者 sudo 访问权限。请适当的更改,以便使用下边的。(LCTT 译注:下面中括号上面是注释linux嵌入式开发,使用的时侯请删掉,#表示使用的 root 权限)
# apt-get install isc-dhcp-server [安装 the ISC DHCP Server 软件]
# dpkg --get-selections isc-dhcp-server [确认软件已经成功安装]
# dpkg -s isc-dhcp-server [用另一种方式确认成功安装]
2、 确认服务软件早已安装完成,现在须要提供网路信息来配置服务器,这样服务器就能够按照我们的须要来分发网路信息。作为管理员最至少须要了解的 DHCP 信息如下:
其他一些服务器动态分配的有用信息包括:
这只是能让 ISC DHCP 服务器处理的选项中特别少的一部分。如果你想查看所有选项及其描述须要在安装好软件后输入以下:
# man dhcpd.conf
3、 一旦管理员早已确定了这台服务器分发的所有必要信息,那么是时侯配置服务器而且分配必要的地址池了。在配置任何地址池或服务器配置之前,必须配置 DHCP 服务器侦听这台服务器里面的一个插口。
在这台特定的服务器上,设置好网卡后,DHCP 会侦听名称名为'bond0'的插口。请适按照你的实际情况来修改服务器以及网路环境。下面的配置都是针对本教程的。
这行指定的是 DHCP 服务侦听插口(一个或多个)上的 DHCP 流量。修改主配置文件,分配适宜的 DHCP 地址池到所须要的网路上。主配置文件在 /etc/dhcp/dhcpd.conf。用文本编辑器打开这个文件
# nano /etc/dhcp/dhcpd.conf
这个配置文件可以配置我们所须要的地址池/主机。文件底部有 ‘ddns-update-style‘ 这样一句,在本教程中它设置为 ‘none‘。在之后的教程中会提到动态 DNS,ISC-DHCP-Server 将会与 BIND9 集成,它还能使主机名更新指向到 IP 地址。
4、 接下来的部份是管理员配置全局网路设置,如 DNS 域名,默认的租期时间,IP地址,子网的网段,以及其它。如果你想了解所有的选项,请阅读 man 手册中的 dhcpd.conf 文件,如下:
# man dhcpd.conf
对于这台服务器,我们须要在配置文件底部配置一些全局网路设置,这样就不用到每位地址池中去单独设置了。
我们花一点时间来解释一下这种选项,在本教程中尽管它们是一些全局设置,但是也可以单独的为某一个地址池进行配置。
5、 文件中下边一行是权威 DHCP 所在行。这行的意义是假如服务器是为文件中所配置的网路分发地址的服务器,那么取消对该权威关键字(authoritative stanza)的注释。
通过去除关键字 authoritative 前面的 ‘#’,取消注释全局权威关键字。这台服务器将是它所管理网路上面的惟一权威。
默认情况下服务器被假设为不是网路上的权威服务器。之所以这样做是出于安全考虑。如果有人由于不了解 DHCP 服务的配置,导致配置不当或配置到一个不该出现的网路上面,这都将带来十分严重的联接问题。这行还可用在每位网路中单独配置使用。也就是说倘若这台服务器不是整个网路的 DHCP 服务器,authoritative 行可以用在每位单独的网路中,而不是像前面截图中那样的全局配置。
6、 这一步是配置服务器即将管理的所有 DHCP 地址池/网络。简短起见,本教程只提到配置的地址池之一。作为管理员须要搜集一些必要的网路信息(比如域名,网络地址,有多少地址就能被分发等等)
以下这个地址池所用到的信息都是管理员搜集整理的:网络 ID 172.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
当前这个事例是给用 VMWare 创建的虚拟服务器分配 IP 地址。第一行显示是该网路的子网掩码。括号里边的内容是 DHCP 服务器应当提供给网路里面主机的所有选项。
第一行, range 172.27.60.50 172.27.60.254; 这一行显示的是,DHCP 服务在这个网路上才能给主机动态分发的地址范围。
第二行,option routers 172.27.60.1; 这里显示的是给网路上面所有的主机分发的默认网段地址。
最后一行, option broadcast-address 172.27.60.255; 显示当前网路的广播地址。这个地址不能被包含在要分领取的地址范围内,因为广播地址不能分配到一个主机前面。
必须要指出的是每行的结尾必须要用(;)来结束,所有创建的网路必须要在 {} 里面。
7、 如果要创建多个网路,继续创建完它们的相应选项后保存文本文件即可。配置完成之后假如有修改,ISC-DHCP-Server 进程须要重启来使新的修改生效。重启进程可以通过下边的命令来完成:
# service isc-dhcp-server restart
这条命令将重启 DHCP 服务,管理员才能使用几种不同的方法来检测服务器是否早已可以处理 dhcp 请求。最简单的方式是通过 lsof 命令来查看服务器是否在侦听67端口,命令如下:
# lsof -i :67
这里输出的结果表明 dhcpd(DHCP 服务守护进程)正在运行而且侦听67端口。由于在 /etc/services 文件中67端口的映射,所以输出中的67端口实际上被转换成了 “bootps”。
在大多数的系统中这是十分常见的,现在服务器应当早已为网路联接做好准备linux系统网络配置 bond0,我们可以将一台主机接入网路恳求DHCP地址来验证服务是否正常。
测试客户端联接
8、 现在许多系统使用网络管理器来维护网路联接状态,因此这个设备应当预先配置好的,只要对应的插口处于活跃状态才能够获取 DHCP。
然而当一台设备没法使用网络管理器时,它可能须要自动获取 DHCP 地址。下面的几步将演示如何自动获取以及怎样查看服务器是否早已按须要分发地址。
‘ifconfig‘工具就能拿来检测插口的配置。这台被拿来测试的 DHCP 服务器的设备,它只有一个网络适配器(网卡),这块网卡被命名为 ‘eth0‘。
# ifconfig eth0
从输出结果上看,这台设备目前没有 IPv4 地址,这样很以便测试。我们把这台设备联接到 DHCP 服务器并发出一个恳求。这台设备上早已安装了一个名为 ‘dhclient‘ 的DHCP客户端工具。因为操作系统各不相同,所以这个客户端软件也是互不一样的。
# dhclient eth0
当前 'inet addr:' 字段中显示了属于 172.27.60.0 网络地址范围内的 IPv4 地址。值得欣喜的是当前网路还配置了正确的子网掩码而且分发了广播地址。
到这儿看起来还都不错,让我们来测试一下,看看这台设备收到新 IP 地址是不是由服务器发出的。这里我们参照服务器的日志文件来完成这个任务。虽然这个日志的内容有几十万条,但是上面只有几条是拿来确定服务器是否正常工作的。这里我们使用一个工具 ‘tail’,它只显示日志文件的最后几行,这样我们就可以不用拿一个文本编辑器去查看所有的日志文件了。命令如下:
# tail /var/log/syslog
OK!服务器记录表明它分发了一个地址给这台主机 (HRTDEBXENSRV)。服务器按预期运行,给它充当权威服务器的网路分发了适宜的网路地址。至此 DHCP 服务器搭建成功而且运行。如果有须要你可以继续配置其他的网路,排查故障,确保安全。
在之后的Debian教程中我会讲一些新的 ISC-DHCP-Server 功能。有时间的话我将写一篇关于 Bind9 和 DDNS 的教程,融入到这篇文章上面。
via:
作者:Rob Turner 译者:ivo-wang 校对:wxy
本文由 LCTT 原创翻译,Linux中国 荣誉推出
本文原创地址://gulass.cn/dsbdirhgldgx.html编辑:刘遄,审核员:暂无