Linux--网络服务--DHCP服务,理论+实验(了解DHCP服务,DHCP工作原理,DHCP服务器的配置,DHCP客户端使用方法,以及DHCP配置实验详解)

Linux--网络服务--DHCP服务,理论+实验(了解DHCP服务,DHCP工作原理,DHCP服务器的配置,DHCP客户端使用方法,以及DHCP配置实验详解)

一:了解DHCP服务

1.1:DHCP概述

  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
  • DHCP一般作用在局域网中,若在广域网中使用DHCP,需要在路由器上面配置
  • DHCP服务避免了因手动设置IP地址所产生的的错误,同时也避免了把一个IP地址分配给多台工作站所造成的地址冲突。
  • DHVP提供了安全、可靠且简单的TCP/IP网络设置,降低了配置IP地址的负担。
    在这里插入图片描述

1.2:使用DHCP好处

  • Internet的用户数量众多,所以不可能给每个用户固定一个IP地址,同时也为了避免浪费,我们使用DHCP服务来解决这个问题。具有以下好处:

  • 减少管理员的工作量

  • 避免IP地址冲突

  • 当网络更改IP地址段时,不需要再重新配置每个用户的IP地址

  • 提高了IP地址的利用率

  • 方便客户端的配置

1.3:DHCP的分配方式

  • DHCP的典型应用模式

    • 在网络中假设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址,子网掩码,广播地址,默认网关地址,DNS服务器地址)

    • 其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程

    • 这就产生了三种分配方式:自动分配,手动分配,动态分配

1.3.1:自动分配

  • 分配到一个IP地址后永久使用

  • 当DHCP客户机第一次成功的从DHCP服务器获取到一个IP地址后,就永久的使用这个IP地址

  • 例如:局域网中的打印机,局域网中的座机

1.3.2:手动分配

  • 由DHCP服务器管理员专门指定IP地址

1.3.3:动态分配

  • 使用完后释放该IP,供其他客户机使用
    • 当DHCP客户机第一次从DHCP服务器获得IP地址后,并非永久的使用该地址,而是在每次使用完后,DHCP客户机就会释放这个IP地址,供其他客户机使用
IP地址的获取和释放的命令
Windows 获取IP地址命令: ipconfig /renew
        释放IP地址命令: ipconfig /release
        查看所有IP地址信息:ipconfig /all
Linux 获取IP地址命令: ifconfig /renew

二:DHCP的工作原理

2.1:租约过程概述

  • 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
  • 租约过程分为四个步骤

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vFccwY0g-1593921393770)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200704101434324.png)]

  • discover:请求IP地址,客户端在网络中发送discover广播,以此来搜索DHCP服务器

  • offer:服务器回应可用IP信息(可用IP地址、子网掩码、网关、DNS、租约期限),DHCP服务器接收到广播后,因不知道客户端的IP地址,所以同样以广播的形式将offer发送,来响应主机

  • request:客户机请求确认可用IP,客户机收到offer后,开始发出request广播

  • ack:服务器确认IP可用,DHCP收到广播后,依旧不知道客户机IP地址,发送回复request的ACK确认广播

特殊情况:如果offer阶段中的IP被先占用,直接会回应noack,客户机又会回到discover阶段。

2.1.1:租约过程详解4-1

  • 客户机请求IP地址:发送DHCP discover广播
  1. 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址

  2. 此时DHCP客户机以广播方式发送DHCP discover发现信息来寻找DHCP服务器

  3. 因为自己没有IP地址,所以源IP地址为:0.0.0.0

    同时也不知道DHCP服务器地址,所以发送广播255.255.255.255

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eXWcyENV-1593921393772)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200704102744986.png)]

2.1.2:租约过程详解4-2

  • 服务器响应:发送DHCP offer广播
  1. 当DHCP服务器接收到来自客户机请求IP地址的信息时,他就在自己的IP地址池中查找是否有合法的IP地址提供给客户机,如果有,DHCP服务器就将此IP地址做上标记,加入到DHCP offer的消息中,然后DHCP服务器就广播一则DHCP offer消息
  2. 客户机仍没有IP地址,所以发送广播
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-81XBGWbD-1593921393773)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200704102753433.png)]

2.1.3:租约过程详解4-3

  • 客户机选择IP地址:发送DHCP request广播
  1. DHCP客户机从接收到的第一个DHCP offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
  2. 第一个DHCP offer表示:若局域网中同时存在两个DHCP,那么客户机根据收到DHCP offer的顺序来确定使用哪个DHCP服务器的地址
  3. 客户机发送DHCP request 广播,选择IP地址,并附上租约期限信息(默认8天)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qMp3Mdk1-1593921393775)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200704102853075.png)]

2.1.4:租约过程详解4-4

  • 服务器确定租约:发送DHCP ACK广播
  1. DHCP服务器接收到DHCP request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的消息
  2. 当客户机收到DHCP ACK消息时,他就配置了IP地址,完成TCP/IP的初始化
  3. 此时服务器发出的仍旧是广播,因为客户机还没有IP地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GsnzEQPT-1593921393778)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200704102948579.png)]

2.2:租约过程详解-重新登录情况

  • 重新登录
  1. DHCP客户机每次重新登录网络时,不需要在发送DHCP的discover信息,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息
  2. DHCP服务器收到请求后,检查IP地址资源池

发现客户机请求中的IP地址仍旧存在,便发送ACK,将IP地址分配给客户机

发现客户机请求中的IP地址已被占用,便返回一个Nack否认信息,然后客户机重新开始请求IP地址的步骤。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KCu9Yu0Q-1593921393778)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200704103123598.png)]

2.3:租约过程详解–更新租约

  • 更新租约
  1. 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
  2. 客户机直接向提供租约的服务器发送DHCP request包,要求更新现有的地址租约
  • 若DHCP服务器宕机,客户机租约到期后,会自动释放地址,然后使用169.254.0.0–169.254.255.255网段的地址

三:DHCP服务器的配置

3.1:DHCP服务

  • 为大量客户机自动分配地址,提供集中管理
  • 减轻管理和维护成本,提高网络配置效率

3.2:可分配的地址信息主要包括

  • 网卡的IP地址,子网掩码
  • 对应的网络地址,广播地址
  • 默认网关地址
  • DNS服务器地址

3.3:安装DHCP服务器

  • DHCP服务器软件
    centos镜像中的dhcp…rpm
  • dhcp软件包的主要文件
    主配置文件(功能):/etc/dhcpd.conf
    执行程序(命令):/usr/sbin/dhcpd,/usr/sbin/dhcrelay
    执行参数配置(启动):/etc/sysconfig/dhcpd

3.4:DHCP主配置文件详解

  • 3.4.1:dhcpd.conf的内容构成

ddns-update-style interim;  '全局配置参数,针对所有子网段'
...省略内容
subnet 10.152.187.0 netmask 255.255.255.0 {'网段声明'
  option routers 10.5.5.1;	 '配置选项,网关'
  ...
  default-lease-time 600;		'配置参数,租约,单位S'
   ...
  host ns{
        ...
        fixed-address 207.175.42.254; '主机声明,固定的主机地址'
    }
}

3.4.2:全局设置,作用于整个DHCP服务器

配置 解释
ddns-update-style none; 禁止dns动态更新
default-lease-time 21600; 默认租约期限
max-lease-time 43200; 最大租约期限
option domain-name"domain.org"; 指定域名
option domain-name-servers 202.106.0.20; 指定分配dns地址

3.4.3:subnet网段声明,作用于整个子网段

  • range参数:设置用于分配的IP地址池
  • option subnet-mask 参数: 设置客户机的子网掩码
  • option routers 参数: 设置客户机的默认网关地
[root@localhost dhcp]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.4.128 192.168.4.131;
  option broadcast-address    255.255.255.0;
  option routers                     192.168.4.1;
}

3.4.4:host主机声明,作用于单个主机

  • hardware ethernet 参数:指定对应主机的MAC地址
  • fixed-address参数:指定为该主机保留的IP地址
host prtsvr {
hardware ethernet 00:c0:c3:22:46:81;
fixed-address 192.168.4.100;
}

3.4.5:查看租约文件

  • 启动DHCP
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# netstat -anpu | grep ":67"
udp  0  0 0.0.0.0:67  0.0.0.0:*  5684/dhcpd
  • 查看租约文件 /var/lib/dhcpd/dhcpd.lease
[root@localhost ~]# vim /var/lib/dhcpd/dhcpd.leases 
或者
[root@localhost ~]# less /var/lib/dhcpd/dhcpd.leases 
或者其他的
[ root@localhost ~]# less Ivar/lib/dhcpd/dhcpd.leases
lease 192.168.4.131 {                   分配的客户端IP
starts 4 2017/05/11 17:27:15; 
ends 4 2017/05/11 23:27:15;              租期时间
cltt 4 2017/05/11 17:27:15;
binding state active;                 
hardware ethernet 00:0c:29:3b:ff:76;      客户端MAC地址
}

四:DHCP客户端的使用方法

4.1:修改网卡配置文件(如ifcfg-ens33)

  • 其中BOOTPROTO=dhcp
[root@localhost dhcpd]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
...省略内容

4.2:使用dhclient命令

命令基本格式
dhclient [-d] [网络接口名]
例如
[root@localhost ~]# dhclient -d ens33
[root@localhost dhcpd]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
...省略内容

五:DHCP实验

5.1:实验目的

1.客户机通过DHCP获取IP地址
2.比较子网段优先级与全局优先级
3.配置指定IP地址

5.2:实验环境

两台虚拟机,一台centos7作为DHCP服务器,一台windows7作为客户机

5.3:实验步骤

5.3.1:先关闭Linux系统的核心防护功能,和清空防火墙规则,安装dhcp工具包

[root@localhost ~]# setenforce 0              关闭核心防护
[root@localhost ~]# iptables -F                 清空防火墙规则
[root@localhost ~]# systemctl status firewalld.service  查看防火墙状态信息

在这里插入图片描述

[root@localhost ~]# systemctl stop firewalld.service  关闭防火墙
[root@localhost ~]# systemctl status firewalld.service 

在这里插入图片描述

[root@localhost ~]# yum -y install dhcp*  安装dhcp相关软件包

在这里插入图片描述

5.3.2:为了实现实验效果将两个虚拟机都绑定到VM1网卡上,仅主机模式,这时VMnet1相当于一个交换机,而centos7作为DHCP服务器,win7作为客户机

在这里插入图片描述
Windows 7系统也选择仅主机模式配置
在这里插入图片描述

5.3.3:查看dhcp是否安装成功,修改dhcp配置文件

[root@localhost ~]# rpm -q dhcp         查看dhcp安装
[root@localhost ~]# rpm -qc dhcp         查看dhcp配置文件

在这里插入图片描述

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf  修改dhcp配置文件发现里面有个引导dhcp模板

在这里插入图片描述

5.3.4:修改网卡配置信息

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# service network restart    重启网卡

在这里插入图片描述
在这里插入图片描述

5.3.5:将dhcp-4.2.5文件拷贝到dhcp.conf文件中

[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
按照指引的路径将dhcp模板复制到dhcp配置文件中,注意的是*改为下载的版本

在这里插入图片描述

5.3.6:配置DNS地址8.8.8.8,注意结尾加;其他不需要动

在这里插入图片描述

5.3.7:配置实验所需的IP地址池和网关

在这里插入图片描述

5.3.8:查看服务端口,发现DHCP端口没开,图中端口是dns的

[root@localhost ~]# netstat -nuap

在这里插入图片描述

5.3.9:启动dhcp服务,服务端口号才会开启

[root@localhost ~]# systemctl start dhcpd       开启dhcp服务
[root@localhost ~]# netstat -nuap

在这里插入图片描述

5.3.10:这时打开同是仅主机模式中的windows7系统,输入ipconfig /renew获取IP地址,发现获取成功

在这里插入图片描述
通过输入ipconfig /all命令可以查看网卡所有信息
在这里插入图片描述

5.3.11:这时我们DNS地址宣告子网段,验证优先是执行子网段DNS服务地址还是全局DNS服务地址,再次编辑dhcpd文件,添加子网端的DNS地址为9.9.9.9,保存退出

在这里插入图片描述
添加完后要记得重启dhcp服务才会生效
在这里插入图片描述

5.3.12:这时切换至win7虚拟机记得先释放地址再重新获取地址,这时我们用ipconfig /all 发现子段宣告成功

在这里插入图片描述

5.3.13:给win7固定分配一个IP地址,先获取对方的mac地址,我们复制win7系统的MAC地址

在这里插入图片描述
再次修改dhcp文件在里面加入我们向配置的IP地址
在这里插入图片描述

5.3.14:重启dhcp服务后,再次到win7系统中查看,发现获取成功

在这里插入图片描述

5.4:实验总结

1.在配置文件时,注意;的使用。
2.当子网段的地址与全局地址相冲突时,子网段的优先级比全局的优先级高,客户机会先选择子网段中的
3.在使用虚拟机时,注意将虚拟网路编辑器中的自动获取DHCP的勾选取消掉

猜你喜欢

转载自blog.csdn.net/m0_47219942/article/details/107136993