如何在Debian Linux上安装配置ISC DHCP服务器

2023-05-16

动态主机控制协议(DHCP)给网络管理员提供了一种便捷的方式,为不断变化的网络主机或是动态网络提供网络层地址,其中最常用的 DHCP 服务工具是 ISC DHCP Server。DHCP 服务的目的是给主机提供必要的网络信息以便能够和其他连接在网络中的主机互相通信。DHCP 服务提供的信息包括:DNS 服务器信息,网络地址(IP),子网掩码,默认网关信息,主机名等等。

本教程介绍运行在 Debian 7.7 上 4.2.4 版的 ISC-DHCP-Server 如何管理多个虚拟局域网(VLAN),也可以非常容易应用到单一网络上。

测试用的网络是通过思科路由器使用传统的方式来管理 DHCP 租约地址的。目前有 12 个 VLAN 需要通过集中式服务器来管理。把 DHCP 的任务转移到一个专用的服务器上,路由器可以收回相应的资源,把资源用到更重要的任务上,比如路由寻址,访问控制列表,流量监测以及网络地址转换等。

另一个,将 DHCP 服务转移到专用服务器的好处,以后会讲到,它可以建立动态域名服务器(DDNS),这样当主机从服务器请求 DHCP 地址的时候,这样新主机的主机名就会被添加到 DNS 系统里面。

安装和配置 ISC DHCP 服务器

     1、使用 apt 工具用来安装 Debian 软件仓库中的 ISC 软件,来创建这个多宿主服务器。与其他教程一样需要使用 root 或者 sudo 访问权限。请适当的修改,以便使用下面的命令。(#表示使用的 root 权限)


  
  1. # apt-get install isc-dhcp-server       [安装 the ISC DHCP Server 软件] 
  2. # dpkg --get-selections isc-dhcp-server     [确认软件已经成功安装] 
  3. # dpkg -s isc-dhcp-server           [用另一种方式确认成功安装] 

Install ISC DHCP Server in Debian

2、确认服务软件已经安装完成,现在需要提供网络信息来配置服务器,这样服务器才能够根据我们的需要来分发网络信息。作为管理员最起码需要了解的 DHCP 信息如下:

◆网络地址

◆子网掩码

◆动态分配的地址范围

其他一些服务器动态分配的有用信息包括:

◆默认网关

◆DNS 服务器 IP 地址

◆域名

◆主机名

◆网络广播地址

这只是能让 ISC DHCP 服务器处理的选项中非常少的一部分。如果你想查看所有选项及其描述需要在安装好软件后输入以下命令:


  
  1. # man dhcpd.conf 

3、 一旦管理员已经确定了这台服务器分发的所有必要信息,那么是时候配置服务器并且分配必要的地址池了。在配置任何地址池或服务器配置之前,必须配置 DHCP 服务器侦听这台服务器上面的一个接口。

在这台特定的服务器上,设置好网卡后,DHCP 会侦听名称名为'bond0'的接口。请适根据你的实际情况来更改服务器以及网络环境。下面的配置都是针对本教程的。

Configure ISC DHCP Network

这行指定的是 DHCP 服务侦听接口(一个或多个)上的 DHCP 流量。修改主配置文件,分配适合的 DHCP 地址池到所需要的网络上。主配置文件在 /etc/dhcp/dhcpd.conf。用文本编辑器打开这个文件


  
  1. # nano /etc/dhcp/dhcpd.conf 

这个配置文件可以配置我们所需要的地址池/主机。文件顶部有 ‘ddns-update-style‘ 这样一句,在本教程中它设置为 ‘none‘。在以后的教程中会讲到动态 DNS,ISC-DHCP-Server 将会与 BIND9 集成,它能够使主机名更新指向到 IP 地址。

4、 接下来的部分是管理员配置全局网络设置,如 DNS 域名,默认的租约时间,IP地址,子网的掩码,以及其它。如果你想了解所有的选项,请阅读 man 手册中的 dhcpd.conf 文件,命令如下:


  
  1. # man dhcpd.conf 

对于这台服务器,我们需要在配置文件顶部配置一些全局网络设置,这样就不用到每个地址池中去单独设置了。

Configure ISC DDNS

◆我们花一点时间来解释一下这些选项,在本教程中虽然它们是一些全局设置,但是也可以单独的为某一个地址池进行配置。

◆option domain-name “comptech.local”; – 所有使用这台 DHCP 服务器的主机,都将成为 DNS 域 “comptech.local” 的一员。

◆option domain-name-servers 172.27.10.6; DHCP 向所有配置这台 DHCP 服务器的的网络主机分发 DNS 服务器地址为 172.27.10.6。

◆option subnet-mask 255.255.255.0; – 每个网络设备都分配子网掩码 255.255.255.0 或 /24。

◆default-lease-time 3600; – 默认有效的地址租约时间(单位是秒)。如果租约时间耗尽,那么主机可以重新申请租约。如果租约完成,那么相应的地址也将被尽快回收。

◆max-lease-time 86400; – 这是一台主机所能租用的最大的租约时间(单位为秒)。

◆ping-check true; – 这是一个额外的测试,以确保服务器分发出的网络地址不是当前网络中另一台主机已使用的网络地址。

◆ping-timeout; – 在判断地址以前没有使用过前,服务器将等待 ping 响应多少秒。

◆ignore client-updates; 现在这个选项是可以忽略的,因为 DDNS 在前面已在配置文件中已经被禁用,但是当 DDNS 运行时,这个选项会忽略主机更新其 DNS 主机名的请求。

5、文件中下面一行是权威 DHCP 所在行。这行的意义是如果服务器是为文件中所配置的网络分发地址的服务器,那么取消对该权威关键字authoritative stanza的注释。

通过去掉关键字 authoritative 前面的 ‘#’,取消注释全局权威关键字。这台服务器将是它所管理网络里面的唯一权威。

Enable ISC 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 访问权限。


  
  1. # nano /etc/dhcp/dhcpd.conf 

Configure DHCP Pools and Networks

当前这个例子是给用 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 进程需要重启来使新的更改生效。重启进程可以通过下面的命令来完成:


  
  1. # service isc-dhcp-server restart 

这条命令将重启 DHCP 服务,管理员能够使用几种不同的方式来检查服务器是否已经可以处理 dhcp 请求。最简单的方法是通过lsof 命令来查看服务器是否在侦听67端口,命令如下:


  
  1. # lsof -i :67 
Check DHCP Listening Port 

Check DHCP Listening Port这里输出的结果表明 dhcpd(DHCP 服务守护进程)正在运行并且侦听67端口。由于在 /etc/services 文件中67端口的映射,所以输出中的67端口实际上被转换成了 “bootps”。

在大多数的系统中这是非常常见的,现在服务器应该已经为网络连接做好准备,我们可以将一台主机接入网络请求DHCP地址来验证服务是否正常。

测试客户端连接8、现在许多系统使用网络管理器来维护网络连接状态,因此这个设备应该预先配置好的,只要对应的接口处于活跃状态就能够获取 DHCP。

然而当一台设备无法使用网络管理器时,它可能需要手动获取 DHCP 地址。下面的几步将演示怎样手动获取以及如何查看服务器是否已经按需要分发地址。

‘ifconfig‘工具能够用来检查接口的配置。这台被用来测试的 DHCP 服务器的设备,它只有一个网络适配器(网卡),这块网卡被命名为 ‘eth0‘。


  
  1. # ifconfig eth0 

Check Network Interface IP Address从输出结果上看,这台设备目前没有 IPv4 地址,这样很便于测试。我们把这台设备连接到 DHCP 服务器并发出一个请求。这台设备上已经安装了一个名为 ‘dhclient‘ 的DHCP客户端工具。因为操作系统各不相同,所以这个客户端软件也是互不一样的。


  
  1. # dhclient eth0 

Request IP Address from DHCP当前 'inet addr:' 字段中显示了属于 172.27.60.0 网络地址范围内的 IPv4 地址。值得欣慰的是当前网络还配置了正确的子网掩码并且分发了广播地址。

到这里看起来还都不错,让我们来测试一下,看看这台设备收到新 IP 地址是不是由服务器发出的。这里我们参照服务器的日志文件来完成这个任务。虽然这个日志的内容有几十万条,但是里面只有几条是用来确定服务器是否正常工作的。这里我们使用一个工具 ‘tail’,它只显示日志文件的最后几行,这样我们就可以不用拿一个文本编辑器去查看所有的日志文件了。命令如下:


  
  1. # tail /var/log/syslog 

Check DHCP LogsOK!服务器记录表明它分发了一个地址给这台主机 (HRTDEBXENSRV)。服务器按预期运行,给它充当权威服务器的网络分发了适合的网络地址。至此 DHCP 服务器搭建成功并且运行。如果有需要你可以继续配置其他的网络,排查故障,确保安全。

在以后的Debian教程中我会讲一些新的 ISC-DHCP-Server 功能。有时间的话我将写一篇关于 Bind9 和 DDNS 的教程,融入到这篇文章里面。

作者:Rob Turner
来源:51CTO
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Debian Linux上安装配置ISC DHCP服务器 的相关文章

  • 极乐净土----Android实现图片转ascii码字符图的一些尝试

    掘金第一篇 xff0c 先转一个自己以前的帖子吧 xff0c 懒得重新写了 www jianshu com p 357af674a 转载于 https juejin im post 5c36df2cf265da616624abc6
  • idea中使用FindBugs-IDEA插件

    下载 安装 重启idea即可 xff1b 项目右键或者文件右键即可看到 FindBugs 选项 选择某个选项直接检测即可 检测结果如下图 xff1a 这里的Correctness是重点关注对象 这里面的错误往往是比较严重的 像空指针之类的错
  • pip,virtualenv,conda和anaconda的个人理解

    1 pip pip是python下的包管理工具 xff0c 主要用于从pypi下载所需的python包 xff0c 但是pip不会自动处理包之间的依赖关系 xff1b 在使用pip安装包时 xff0c 可以修改安装源为https pypi
  • Windows Server 2016-Hyper-V网络虚拟化概述

    在 Windows Server 2016 和虚拟机管理器中 xff0c Microsoft 提供的端到端网络虚拟化解决方案 有构成了 Microsoft 的网络虚拟化解决方案的五个主要组件 xff1a Windows Azure Wind
  • mac环境下安装pysvn

    可以从下载页下载对应版本的pysvn xff1a https pysvn sourceforge io downloads html 之后双击打开安装即可 xff0c 不需要再用pip安装 需要注意的是 xff0c 如果安装时提示chdir
  • 关于PHP中Session文件过多的问题

    PHP的默认机制 xff1a 每一次php请求 xff0c 会有1 100的概率 xff08 默认值 xff09 触发 session回收 如果 session回收 发生 xff0c 那就会检查 tmp sess 的文件 xff0c 如果最
  • RDO 远程 桌面无法复制

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 这里是列表文本这里是列表文本首先我们要检查 登录机在进程管理器中是否有rdpclipe exe这个进程 如果有则杀掉 xff0c 如果没有 xff0c 则在任务管理器中菜单
  • 如何在 Excel 中自定义菜单和菜单栏

    Microsoft 提供的编程示例只用于说明目的 xff0c 不附带任何明示或默示的保证 这包括但不限于对适销性或特定用途适用性的默示保证 本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具 Microsoft 的支持工程师可以帮助解
  • 轮环(Ouroboros)世界观介绍,摘自Guide Book

    基于现实的架空世界观 这个游戏的世界观是基于以现代人的眼光来看待自身长久以来的发展与盛衰交替的事实 xff0c 而在此基础上构想出的简化的因果逻辑 xff0c 以及其外在的表现形式 祭祀 游戏根据中国古代的以国家为单位的大规模殉 祭奴隶的事
  • css背景图等比例缩放,盒子随背景图等比例缩放

    很多时候我们给网站了一个大banner 但是随着屏幕的变化 xff0c 背景会变形 xff0c 我们知道background size可以实现背景图等比例缩放 xff0c 但是 xff0c 我们想让下面的盒子根据缩放后背景图的高度 xff0
  • 如何用PS快速的批量制作连续号码数字编号图解

    如何用PS快速的批量制作连续号码数字编号图解 大家好 xff0c 今天太原博飞设计培训小编就告诉大家如用 PS 快速的制作连续数字编号 xff0c 在工作中尤其是大型活动的有时候制作连续的号码牌 xff0c 少还好 xff0c 如果上百上千
  • 我们评测了5个主流跨端框架,这是它们的区别

    最近前端届多端框架频出 xff0c 相信很多有代码多端运行需求的开发者都会产生一些疑惑 xff1a 这些框架都有什么优缺点 xff1f 到底应该用哪个 xff1f 作为 Taro 开发团队一员 xff0c 笔者想在本文尽量站在一个客观公正的
  • 大牛直播SDK-Windows RTMP/RTSP/本地FLV播放器使用说明 ...

    大牛直播播放器SDK相对推送SDK来说 xff0c 接口没有那么多 xff0c 不过客户95 以上的常规需求均已覆盖 xff0c 目前支持RTMP和RTSP直播播放 xff0c 还有本地flv文件回放 xff1a 大牛直播SDK播放端提供C
  • 交换机的配置文件备份到TFTP和FTP服务器

    1 构建拓扑 2 配置地址 Switch gt Switch gt en Switch conf t Switch config hostname 666 修改交换机名字 666 config interface vlan 1 进入虚拟接口
  • 推荐几款常用的Socks5代理软件

    一 Sockscap 荐 SocksCap是目前对网络游戏兼容性最好的代理工具之一 SocksCap32 软件是由美国 NEC USA Inc 公司出品的代理服务器第三方支持软件 拥有功能强大的 SOCKS 调度 xff0c 使用它就可以让
  • Nginx根据post参数转发请求 (OpenResty)

    最近有个需求 xff0c 需要nginx根据POST参数将请求转发到不同的后端 xff0c 调研后决定使用OpenResty xff08 Nginx 43 Lua xff09 作为代理服务器 写个小Demo location span cl
  • Windows 10访问共享时提示“过时的SMB1协议”的修复办法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 公司有台Windows XP老版本系统的文件共享服务器 xff0c 前段时间好好的能正常访问 xff0c 今天访问时突然提示 因为文件共享不安全 xff0c 所以你不能连接
  • 关于Video Src 带有 blob:http的视频如何下载的问题

    我们如果使用爬虫 xff0c 想爬取一些视频的时候 xff0c 会发现一些网站提供的视频链接打开是 404 xff1b span class hljs tag lt span class hljs name video span span
  • Wcf 双工通信的应用

    概述 双工 xff08 Duplex xff09 模式的消息交换方式体现在消息交换过程中 xff0c 参与的双方均可以向对方发送消息 基于双工MEP消息交换可以看成是多个基本模式下 xff08 比如请求 回复模式和单项模式 xff09 消息
  • Foxit PDF Reader能有效升级日文包

    Foxit Reader 原名 Foxit PDF Reader xff0c 是一款 PDF文档阅读软件 xff0c 它具有比Adobe Reader更加小巧的身材 xff0c 更加快速的速度 xff0c 以及更加丰富的插件 xff0c 完

随机推荐

  • JIRA学习

    Jira是Atlassian公司出品的一款事务管理软件 无论是 需求 xff0c 还是 BUG xff0c 或是 任务 xff0c 都是 事务 的一种 xff0c 所以Jira可以胜任非常多的角色 xff1a 需求管理 缺陷跟踪 任务管理等
  • python 面向对象编程

    面向对象与面向过程 参考链接 xff1a https www liaoxuefeng com wiki 0014316089557264a6b348958f449949df42a6d3a2e542c000 0014318645694388f
  • pycharm调整代码长度分割线

    1 File gt Settings gt Code Style gt Right margin columns 的值为80 xff0c 大功告成 2 具体设置的数值可以根据个人电脑的屏幕大小而定 xff0c 如果屏幕比较大可以设置的长一些
  • ppt点击文字出现图片,再次点击消失

    实现效果 xff1a 在PPT一个页面的任意位置 xff0c 单击左键 xff0c 出现图片 xff1b 在图片上 xff0c 单击左键 xff0c 图片消失 实现思路 xff1a 给图片做两个动画 xff0c 一个进入 xff0c 文字作
  • OC中APPDelegate[[UIApplication shareApplication]delegate]]Swift实现

    直接上代码 xff1a var myDelegate AppDelegate myDelegate 61 UIApplication sharedApplication delegate as AppDelegate
  • 安装好Pycharm后如何配置Python解释器简易教程

    这两天有许多Python小白加入学习群 xff0c 并且问了许多关于Pycharm基本使用的问题 xff0c 今天小编就以配置Python解释器的问题给大家简单絮叨一下 1 一般来说 xff0c 当我们启动Pycharm xff0c 如果P
  • MySQL net start mysql 发生系统错误5 解决办法

    产生的原因是权限不够 用管理员权限打开命令提示符就OK 啦 Win10解决办法 xff1a 使用快捷键win 43 x xff0c 或右击开始图标 xff0c 打开命令提示符 xff08 管理员 xff09 就解决啦
  • Docker查看远端仓库的标签工具

    背景 最近入坑了docker xff0c 比如本地想要启动一个elastic容器的话 xff0c 直接通过以下命令即可快速启动一个elasticsearch的实例 docker run d p 9200 9200 p 9300 9300 n
  • 互斥锁mutex的简单实现

    mutex一般用于为一段代码加锁 xff0c 以保证这段代码的原子性 xff08 atomic xff09 操作 xff0c 即 xff1a 要么不执行这段代码 xff0c 要么将这段代码全部执行完毕 例如 xff0c 最简单的并发冲突问题
  • Exception in thread "main" java.lang.NoClassDefFoundError: XXX

    Exception in thread 34 main 34 java lang NoClassDefFoundError XXX编译时没有报错 xff0c 一运行就不听话 网上找了一大堆 xff0c 各种解决方案都不是适合我 xff0c
  • 分享几个免费IP地址查询API接口

    1 IP地址查询接口 xff1a http apis juhe cn ip ip2addr 要先去https www juhe cn docs api 申请APPKEY 2 新浪的IP地址查询接口 xff1a http int dpool
  • 解决Cannot read property 'range' of null 错误

    为什么80 的码农都做不了架构师 xff1f gt gt gt vue工程npm run serve start dev启动时 xff0c node modules文件报 xff1a Cannot read property 39 rang
  • Gitlab Pipelines一直无法通过的临时解决办法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 新Gitlab系统是自己搭建的 xff0c 为了使用pages功能 xff0c 因为少于8 8版本貌似就不能使用 xff01 下一篇我会补充 xff0c 毕竟是转发的 xf
  • Generate Parentheses

    Given n pairs of parentheses write a function to generate all combinations of well formed parentheses For example given
  • C++11新特性不完全测试

    摘要 Lambda auto 统一初始化 xff0c 智能指针 xff0c Regex Random function and bind xff0c hash map 右值引用和Move语义 并发 多线程库 发布 阅读全文 Richard
  • matlab练习程序(生成高斯图像)

    cl m 61 31 n 61 31 img 61 zeros m 43 1 n 43 1 img 61 double img pi 61 3 1415926 sigma 61 10 for i 61 m 2 m 2 for j 61 n
  • Ubuntu远程桌面xrdp方法

    xrdp方式 xff0c 该方法支持多用户登录并远程桌面 首先在Ubuntu上安装GNOME 界面 xff0c 在终端输入命令 xff1a sudo apt get install gnome panel 安装完成后注销用户 点击自己用户的
  • Linux通过ssh传输文件

    一 scp是什么 scp是secure copy的简写 xff0c scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令 用于在Linux下进行远程拷贝文件的命令 xff0c 和它类似的命令有cp xff0c 不过cp只是在本机
  • 认识CoreData-基础使用

    第一篇文章中并没有讲CoreData的具体用法 xff0c 只是对CoreData做了一个详细的介绍 xff0c 算是一个开始和总结吧 这篇文章中会主要讲CoreData的基础使用 xff0c 以及在使用中需要注意的一些细节 因为文章中会插
  • 如何在Debian Linux上安装配置ISC DHCP服务器

    动态主机控制协议 DHCP 给网络管理员提供了一种便捷的方式 xff0c 为不断变化的网络主机或是动态网络提供网络层地址 xff0c 其中最常用的 DHCP 服务工具是 ISC DHCP Server DHCP 服务的目的是给主机提供必要的