DHCP服务相关知识

DHCP服务概述

  DHCP,英文全称Dynamic Host Configuration Protocol ,中文译为动态主机配置协议。顾名思义,利用DHCP协议可以为每一台连接网络的机器提供IP地址的分配与回收任务,动态地管理网络中每台机器的IP地址。
  DHCP服务同样采用客户机/服务器工作模式,服务器具有固定的IP地址,扮演者IP地址分配大的角色,而客户机通过与服务器的通信,最终获得一个动态分配的IP地址。
  除了为客户机提供IP地址分配的功能外,DHCP服务器还具有为客户机提供网络环境配置的功能。如DNS配置、WINS配置、Gateway配置。也就是说,客户端IP地址及与IP地址相关的配置工作都可由DHCP服务器自动完成,这大大减轻了网络管理员的工作量。

IP地址租约和更新

  DHCP客服端以地址租约的形式从DHCP服务器处中获得服务,地址租约主要分布两种类型,分别是限期租约和不限期租约。所谓限期租约,就是DHCP服务器提供给DHCP客服机一个具有租期限制的IP地址,该租约到期如果没有更新,服务器便收回地址。而与之相对的是不限期租约,即服务器不会随意收回分配的客户端的IP地址,除非没有足够的IP地址分配了。
  在租约到期之前,客户端会先后两次(50%及87.5%租约期限)向服务器发出DHCP请求,如果服务器收到请求,则会发送DHCP确认以更新租用期。反之,如果DHCP更新租用期失败,则会重新进入初始化状态,重新向服务器申请新的IP地址,签订新的租约,继而重复整个过程。
  在以下两种情况下可以解除租约;租约到期或者客户端离线。解除租约后,服务器会将回收的IP地址重新放入IP地址池,以便下次分配使用。

DCHP服务器分配给客户端的IP地址类型

  DHCP服务器分配的IP地址分为动态地址和固定地址。固定地址往往作为服务器使用的IP地址,如DNS服务器,samba服务器,FTP服务器,等等。动态地址则作为分配给普通客户端的IP地址。这样做既方便服务器的使用,有提高了IP地址的使用率。设置固定地址可以通过绑定MAC地址和IP地址的方法来实现

DHCP知识库

  为了使读者可以更好地理解DHCP的配置流程,下面简单介绍一下DHCP服务器的工作流程。
  (1)客户端以广播形式向服务器申请IP地址
  (2)服务器收到请求后,首先根据MAC地址查看dhcp.conf文件是否为客户机设置了固定IP地址。
  (3)服务器根据具体情况将固定IP或者IP地址池中的IP发送给客户机。
  (4)客户机应答服务器,告知其已经使用了分配的IP。
  (5)服务器将相关租约信息存入租约数据库文件。


实验环境:

VMware版本:VMware Workstation16
镜像版本:CentOS-7-x86_64-DVD-1611

实验目的 :

1、了解DHCP服务相关知识
2、掌握DHCP服务的安装
3、掌握DHCP服务的配置

实验基本配置命令: 启动、停止、重启及自启DHCP服务

1、查询DHCP服务状态

  如果需要查询DHCP服务状态,那么可以使用如下命令:

[root@localhost~]#service dhcpd status

[root@localhost~]#systemctl status dhcpd

 上述命令有两种执行结果,分别表示DHCP服务是启动还是停止状态

第一种状态:Active: inactive (dead) //dhcpd停止了

● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)Active: inactive (dead)     //dhcpd停止了Docs: man:dhcpd(8)man:dhcpd.conf(5)

第二种状态:Active: active (running) //dhcpd运行中

● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)Active: active (running)since 三 2021-04-21 10:00:00 CST;ls ago    //dhcpd运行中Docs: man:dhcpd(8)man:dhcpd.conf(5)

2、查询dhcp 版本

 如果要查询DHCP是否安装,那么可以用如下命令:

[root@localhost~]#rpm -qa|grep dhcp
 rpm 软件包的管理工具
 -q 查看
  -qa查看所有
 |查看类似结果
 grep :正则表达式匹配

如果有以下提示,那么表示已经安装了DHCP

dhcp-libs-4.2.5-82.el7.centos.x86_64
dhcp-4.2.5-82.el7.centos.x86_64
dhcp-common-4.2.5-82.el7.centos.x86_64

3、查看DHCP配置文件

查看dhcp配置文件路径

[root@localhost~]#rpm -ql dhcp

4、启动DHCP服务

安装完毕后,可以通过以下方式启动DHCP服务:

[root@localhost~]#service dhcpd start

[root@localhost~]#systemctl start dhcpd

注意:刚开始完成安装的时候,是无法启动DHCP服务的,因为没有配置DHCP文件,所以会出现如下报错
 详情请看 “0x03 配置DHCP服务器”

[root@Dai ~]# service dhcpd start
Redirecting to /bin/systemctl start  dhcpd.service
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details.

5、停止DHCP服务器

启动DHCP服务后,可以通过以下方式启动DHCP服务器;

[root@localhost~]#service dhcpd stop

[root@localhost~]#systemctl stop dhcpd

6、重启DHCP服务器

要重启DHCP服务,可以采用如下命令:

[root@localhost~]#service dhcpd restart

[root@localhost~]#systemctl restart dhcpd

7、开机自动加载DHCP服务

  如果需要查询DHCP服务是否为开机自动加载,请使用以下命令

[root@localhost~]#service list-unit-files|grep dhcpd

  上述命令有两种执行结果,分别表示DHCP服务是否随Linux一起自动启动

dhcpd.service         disabled   //dhcpd开机不自动启动dhcpd.service         enabled    //dhcpd开机自动启动

  如果需要设置DHCP服务为自动加载,请使用以下命令:

[root@localhost~]#systemctl enable dhcpd

  如果需要取消自动加载DCHP服务,请使用以下命令:

[root@localhost~]#systemctl disable dhcpd

0x00:实验开始

拍摄快照

开始之前建议拍摄快照,这样即使虚拟机被玩坏了或者出现无法逆转的操作,可以还原到原始状态。

1、虚拟机→快照→拍摄快照
2、管理快照 "CTRL+M"
3、点击“拍摄快照"后,建议不要做任何操作,等待虚拟机左下角 “正在保存”完成后,即可


0x01 CentOS7 连接网络

1、先通过虚拟机的NAT模式或者桥接模式 ,连接网络安装DHCP服务

虚拟机→设置→网络适配器→NAT模式

2、正常来说现在应该可以ping通 外网了。


3、当然,也有很多不正常的情况,出现ping不同的情况。这个时候还原 “虚拟网络编辑器”,也许就O了。

编辑→设置→虚拟网络编辑器→还原默认设置
注:目前了解到windows 10,进入“虚拟网络编辑器”后,需要点击右下角“更改设置”,才能修改网络配置


0x02 安装DHCP服务

1、yum方法

使用yum安装DHCP服务可以使用命令:

[root@locahost~]#yum install dhcp -y //安装DHCP服务

如果成功安装,会有如下提示:

已安装:dhcp.x86_64 12:4.2.5-82.el7.centos
完毕!

如果提示 状态:休眠中,进程IP。直接用kill查杀掉

kill -s 9 进程ID

2、图形化方法

1、应用程序→ 系统工具→软件
2、在搜索框中 搜索“dhcp”
3、勾选“Dynamic host configuration Protocol software”→应用更改

以下 案例,需要完成安装DHCP服务才能 进行
注:这里建议拍摄一个快照,拍摄一个还原的节点。


0x03 配置DHCP服务器

案例1——简单配置DHCP

案例描述

  某企业有80台计算机,所使用的IP地址段为192.168.10.100~192.168.10.200,子网掩码为255.255.255.0,网关为192.168.10.2。

实训开始:

1、添加一个虚拟网络

编辑→虚拟网络编辑器→添加网络→选择要添加的网络“VMnet2”→确定
□ 将主机虚拟适配器连接到此网络
□使用本地DHCP服务将IP地址分配给虚拟器

如图

2、修改网络连接

将 网络适配器 自定义 VMnet2

虚拟机→设置→网络适配器→自定义→Vmnet2→确定

如图:


以下内容比较繁杂,需要有足够的耐心和清晰的思维

3、配置CentOS 7 网卡文件

编辑名为 ifcfg-ens33 的网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33 

“i”进入编辑模式

修改:
BOOTPROTO="static" //设置为静态
添加:
IPADDR=192.168.10.101 //设置IP地址
NETMASK=255.255.255.0 //设置子网掩码
GATEWAY=192.168.10.2 //设置网关
DNS1=192.168.10.2 //设置DNS
修改:
ONBOOT="yes" //在引导时获取这个IP地址

Esc  //退出编辑模式
:wq //保存并退出

如图所示:

配置完毕后,必须必须必须重启网卡
才能加载修改的配置

如下命令:

[root@Dai ~]# systemctl restart network.service

4、配置DHCP主配置文件dhcpd.conf

配置DHCP主配置文件dhcpd.conf

  配置dhcpd.conf 时,上面配置的IP地址,必须要在 dhcp所给的 地址范围内

1、复制样例文件到 /etc/dhcp/ 目录下

[root@Dai ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

如图所示:

2、配置 /etc/dhcp/dhcpd.con 文件

[root@Dai ~]# vim /etc/dhcp/dhcpd.conf添加:subnet 192.168.10.0 netmask 255.255.255.0 { // 子网 和子网range 192.168.10.100 192.168.10.200;  //IP地址范围option routers 192.168.10.2;   //网关地址option domain-name-servers 114.114.114.114;  //域名地址
}

如图所示:

关于dhcpd.conf 的语法格式,需要注意以下几点;

单词拼写区分大小写。
以“#”性开始的行为为注释行
参数和选项必须以“;”结束。

5、重启虚拟机

1、命令方法

[root@Dai ~]$ reboot

2、图形化方法

点击右上角“电源键”→“电源键”→“关机”

6、启动DHCP服务

启动DHCP服务

[root@Dai ~]# systemctl start dhcpd


检验配置结果:

1、添加虚拟网卡

添加一个虚拟网卡,并且网络连接更改为 “VMnet 2”看看DHCP是否能够分配地址

虚拟机→设置→添加→网络适配器→完成
网络适配器2→自定义 Vmnet 2 →确定


2、重启DHCP服务

重启前可以看到,ens37网卡是没有IP地址的

[root@Dai ~]# ip add

如图所示:

重启DHCP服务
重启后,可以看见第二张网卡获取到了地址

[root@Dai ~]# systemctl restart dhcpd

3、无论添加了多少张网卡,都可以获取到地址


此上案例1 完成


案例2——DHCP中继代理

实验之前,请自行安装DHCP
使用以下命令查看dhcp是否安装

[root@localhost ~]# rpm -qa|grep dhcp
dhcp-libs-4.2.5-82.el7.centos.x86_64
dhcp-common-4.2.5-82.el7.centos.x86_64
dhcp-4.2.5-82.el7.centos.x86_64

案例描述

  某单位具有两个子网,两个子网需要一台DHCP服务器分配地址。配置DHCP服务中继代理,使子网A内的DHCP服务器能够同时为子网A和B提供DHCP服务,子网A参数及子网B参数如下:
子网A参数:
(1)IP地址段:192.168.11.10~192.168.11.100
(2)子网掩码:255.255.255.0
(3)网关地址:192.168.10.4
(4)域名服务器:192.168.0.1
(5)子网所属域的名称:shixun.com
(6)默认租约有效期:1天
(7)最大租约有效期:3天

子网B参数:
(1)IP地址段:192.168.10.10~192.168.10.100
(2)子网掩码:255.255.255.0
(3)网关地址:192.168.10.4
(4)域名服务器:192.168.0.2
(5)子网所属域的名称:dailuobo.com
(6)默认租约有效期:1天
(7)最大租约有效期:3天

为了更直观的表达如图:


实训开始:

一、添加、编辑虚拟网络编辑器

添加两个虚拟网络

添加网络→选择要添加的网络“VMnet2”→确定
□ 将主机虚拟适配器连接到此网络
□使用本地DHCP服务将IP地址分配给虚拟器 →应用

二、配置"DHCP服务器"

1、修改网络适配器

将“网络适配器” 的网络连接修改为“VMnet2”

虚拟机→设置→网络适配器→自定义(U):特定虚拟网络→VMnet2


2、设置 “网卡网络地址” 以及"网卡路由"

ens33 网卡网络地址
IP地址:192.168.10.1
子网掩码:255.255.255.0
网关:192.168.10.4
ens33 网卡路由
地址:192.168.11.0
子网掩码:255.255.255.0
网关:192.168.10.4

如图所示:

三、配置“DHCP中继代理”

1、添加虚拟网卡并更改网络连接模式

网络适配器    VMnet2
网络适配器2    VMnet3

如图所示:

2、设置 “网卡网络地址”

网卡一
地址:192.168.10.4
子网掩码:255.255.255.0
网关:192.168.10.4
网卡二
地址:192.168.11.4
子网掩码:255.255.255.0
网关:192.168.11.4

网卡一 步骤如下:
步骤一: 进入“网络”→“以太网(ens33)”→“设置”

步骤二:“IPv4”→“地址 手动”→填写地址→“应用”


网卡二:

查看ip地址:

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.10.4  netmask 255.255.255.0  broadcast 192.168.10.255inet6 fe80::f12:80db:2033:a3d3  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:ad:e5:57  txqueuelen 1000  (Ethernet)RX packets 16077  bytes 21206322 (20.2 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 4351  bytes 274650 (268.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.11.4  netmask 255.255.255.0  broadcast 192.168.11.255inet6 fe80::e173:6676:c27b:efaa  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:ad:e5:61  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 103  bytes 17280 (16.8 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

四、配置"DHCP服务器" 的dhcpd.conf 文件

配置内容如下:

default-lease-time 86400;  //默认租约有效期1天
max-lease-time 259200;  //最大租约有效期3天
subnet 192.168.10.0 netmask 255.255.255.0 {  //子网号和掩码range 192.168.10.10 192.168.10.100;  //IP地址范围option subnet-mask 255.255.255.0;  //子网掩码option routers 192.168.10.4;  //网关地址option domain-name "daili.com";  //域名option domain-name-servers 192.168.0.2; //域名服务器地址}
subnet 192.168.11.0 netmask 255.255.255.0 {range 192.168.11.10 192.168.11.100;option subnet-mask 255.255.255.0;option routers 192.168.10.4;option domain-name "shixun.com";option domain-name-servers 192.168.0.1;
}

步骤一:复制样例文件

[root@Dai ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@Dai ~]#


步骤二:编辑 dhcpd.conf 文件

[root@Dai ~]# vim /etc/dhcp/dhcpd.conf

给 ~复制粘贴的机会

default-lease-time 86400;
max-lease-time 259200;
subnet 192.168.10.0 netmask 255.255.255.0 {range 192.168.10.10 192.168.10.100;option subnet-mask 255.255.255.0;option routers 192.168.10.4;option domain-name "daili.com";option domain-name-servers 192.168.0.2;}
subnet 192.168.11.0 netmask 255.255.255.0 {range 192.168.11.10 192.168.11.100;option subnet-mask 255.255.255.0;option routers 192.168.10.4;option domain-name "shixun.com";option domain-name-servers 192.168.0.1;
}

五、重启DHCP服务

1、在"DHCP服务器"中 重启DHCP服务

[root@Dai ~]# systemctl restart dhcpd

2、 检查 DHCP状态

[root@Dai ~]# systemctl status dhcpd

如果命令屏幕打印信息中有" Active: active (running)",那么说明DHCP服务重启成功

六、配置"DHCP中继代理"的"/etc/sysctl.conf" 文件

[root@localhost ~]# vim /etc/sysctl.conf添加:
net.ipv4.ip_forward = 1

执行以下命令生效

[root@Dai ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@Dai ~]#

七、配置“DHCP中继代理”的"dhcrealy.service "文件

步骤一:复制样例文件

[root@Dai ~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system

步骤二:编辑dhcrelay.service 文件

[root@Dai ~]# vim /etc/systemd/system/dhcrelay.service


步骤三:设置中继代理 转发给指定DHCP服务器

[root@localhost ~]# dhcrelay 192.168.10.1
Dropped all unnecessary capabilities.
Internet Systems Consortium DHCP Relay Agent 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/ens37/00:0c:29:ad:e5:61
Sending on   LPF/ens37/00:0c:29:ad:e5:61
Listening on LPF/virbr0/52:54:00:71:d3:b5
Sending on   LPF/virbr0/52:54:00:71:d3:b5
Listening on LPF/ens33/00:0c:29:ad:e5:57
Sending on   LPF/ens33/00:0c:29:ad:e5:57
Sending on   Socket/fallback

步骤四:启动 "dhcrelay"服务,即DHCP中继服务

[root@localhost ~]# systemctl restart dhcrelay.service

如果命令屏幕打印信息中有" Active: active (running)",那么说明DHCP中继服务启动成功

  Active: active (running) since 四 2021-04-29 00:26:46 CST; 1min 11s ago

测试结果:

一、在“DHCP中继代理”中添加 网卡。

看看是否能够正常获取 192.168.11.0 网段地址

步骤一:添加网卡,修改网络连接

步骤二:新添加的网卡,可以正常获取地址


  这里我遇到一个问题:
  当DHCP中继代理有 四张网卡时,虽然能够正确获取地址,但无法ping通 DHCP服务器
  删除掉 新添加的两个网卡,就又可以ping通 DHCP服务器
   不保证一定会遇到这个问题,所以这里 博主陈述一下。

二、使用win 2003 做测试

看看是否能够正常获取 192.168.11.0 网段地址

步骤一:将网卡 设置成VMnet 3

步骤二:配置“win2003”网卡为“DHCP”

步骤三:发现可以获取到 192.168.11.0 网段地址

可ping通 DHCP服务器


由于博主目前还是大二学生,水平有限。文章中难免有疏漏或不当之处,敬请各位大神以及读者不吝赐教

CentOS7 配置与管理DHCP服务器及DHCP中继代理 DHCP服务实训整合相关推荐

  1. Centos7.4配置与管理DNS服务器

    ✨配置与管理DNS服务器 如果还没有安装Centos虚拟机的小伙伴可以参考此篇文章~ https://blog.csdn.net/qq_42818882/article/details/1235802 ...

  2. win10未能配置dhcp服务器,win10系统无法启动dhcp服务器怎么解决

    其他相关 dhcp,dhcp服务器_百度搜索if(window.bds&&bds.util&&bds.util.setContainerWidth){bds.util. ...

  3. Linux ENSP 搭建DHCP服务器并实现中继和Linux 下搭建DNS服务器(2个实验可跟做)

    文章目录 DHCP服务 了解DHCP服务 使用DHCP的好处 Linux 下搭建DNS服务器 实验环境 实验过程 修改DHCP配置文件 更改dns服务器名称 更改win10的IP地址 Linux &a ...

  4. 多DHCP服务器的作用域 及备用DHCP服务器(一)

    http://dev.firnow.com/course/6_system/linux/linuxjq/20100318/200250.html 创建.管理多个DHCP服务器的作用域 及备用DHCP服 ...

  5. 思科设备DHCP服务器option 82选项与DHCP中继代理的问题

    思科设备DHCP服务器option 82选项与DHCP中继代理的问题 实验目的: 1.无中继代理时,DHCP向客户端发送地址段和接收接口地址相同的网段,如果不存在相同网段,就会丢弃请求数据包. 2.有 ...

  6. linux web故障,网络故障处理与优化 linux服务器配置及故障排除 项目9 配置与管理web服务器.docx...

    配置与管理WEB服务器 准备工作: 先切换到root账号: 执行以下两条命令,临时关闭防火墙和selinux: systemctl stop firewalld.service setenforce ...

  7. 无线路由器怎么设置dhcp服务器,TP-LINK路由器如何当DHCP服务器方法

    当我们需要多个网络来做DHCP的时候,需要增加DHCP分发,这个时候可以使用家庭路由器来做, 那你知道TP-LINK路由器怎么做DHCP服务器吗? TP-LINK路由器当DHCP服务器的方法: 首先需 ...

  8. 配置与管理Samba服务器

    配置与管理Samba服务器 项目导入    是谁最先搭起Windows和Linux沟通的桥梁,并且提供不同系统间的共享服务,还能舞有强大的打印服务功能?答案就是Samba.Samba的应用环境非常广泛 ...

  9. redhat 7中配置与管理WEB服务器

    配置与管理WEB服务器 [实例1] 某公司新购一台服务器,服务器上已安装Linux操作系统,现要求将服务器配置成Apache服务器,IP地址为:192.168.1.100,给公司员工提供基本Web服务 ...

  10. option 82是dhcp报文中的中继代理

    option 82是dhcp报文中的中继代理信息选项(relay agent information option).当dhcp client发送请求报文到dhcp server时,若需要经过dhcp ...

最新文章

  1. const、static型数据在内存中如何存储?(变量存放位置)
  2. UVA 10196 Check The Check(模拟)
  3. java相对目录_java相对目录和绝对目录解析
  4. 知乎热议:杨辉团队公开否认抄袭,网友:避重就轻仍谎称「首创」
  5. idea database 添加字段不更新_如何借助IDEA数据库管理工具可视化使用TDengine?
  6. php读数据库json编码,php json编码和mysql数据库注意事项 定期更新
  7. 投资五大基本法则,助你在理财投资路上走得更平稳顺利
  8. c语言输入一个字符 对其进行归类,计算机二级C语言改错题归类 - 图文
  9. Transformer原理解析——一种Open AI和DeepMind都在用的神经网络架构
  10. 注意力测试软件系统,注意力综合评估训练系统
  11. ourplay插件_ourplay64位辅助包
  12. WPF 自定义分页控件TextBox分页页数只输入数字验证
  13. 北洋雷达UST-10LX基于ROS都安装使用测试小问题
  14. 【PowerPoint】如何在PPT幻灯片添加“当前页/总页数”格式的页码
  15. 修改Android“长按”的反应时间
  16. 关于矩形的边框,以及边框线偶尔不显示的问题
  17. mysql服务无法启动问题
  18. ORA-14402:更新分区关键字列将导致分区更改(分区表注意)
  19. 分布式锁——Redisson
  20. 国家开放大学计算机绘图边学边练答案,国家开放大学人文英语四1-8单元边学边练答案Microsoft Word 文档...

热门文章

  1. Longhorn入门级教程!轻松实现持久化存储!
  2. 搭建Longhorn
  3. python testng_自动化测试框架TestNG
  4. 风控ML[15] | 风控模型报告以及上线后需要监控的内容
  5. 欧拉函数为什么是积性函数
  6. java边界布局东南西北_第58节:Java中的图形界面编程-GUI
  7. 【Practical】线性空间
  8. 高等代数 线性空间(第8章)1 线性空间与子空间
  9. Hackintosh_guide黑苹果
  10. PHP微信公众号开发