DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
由Internet工作任务小组设计开发
专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
自动分配是当DHCP客户端第一次成功的从DHCP服务器获取一个IP地址后,就永久的使用这个IP地址。
手动分配是由DHCP服务器管理员专门指定的IP地址
动态分配是当客户端第一次从DHCP服务器获取到IP地址后,并非永久使用该地址,每次使用完后,DHCP客户端就需要释放这个IP,供其他客户端使用。
第三种是最常见的使用形式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4wKdjpZO-1594034274459)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200705235354228.png)]
1)discover 请求IP地址 客户端 》服务端 广播
如果局域网中有两个DNS服务器,谁先发给客户端offer,就用谁的DNS
2)offer 服务器回应可用IP信息 (可用IP,子网掩码,网关,DNS,租约期限) 服务器》》 客户端 广播
3 )request 客户端请求确认可用IP 客户端》》服务端 广播
特殊情况:如果OFFER中的IP被占用,直接回应NOACK,然后重新开始
4 )ACK 服务端确认IP可用 服务端》》 客户 广播
租约期限,租约期限过半,续约。如租期8天,在第5天开始续约
如果DHCP宕机了,会继续使用直到到期,到期会还找不到,会自动获取169.254.0.0/24网络地址(不能用)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YtmuSaYl-1594034274470)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706000212636.png)]
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCP discover发现信息来寻找DHCP服务器
因为自己没有IP地址,所以源IP地址为:0.0.0.0 也不知道DHCP的IP地址就发送255.255.255.255广播去寻找
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A3xjvT4s-1594034274474)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706000241218.png)]
当DHCP服务器接收到来自客户机请求IP地址的信息时,他就在自己的IP地址池中查找是否有合法的IP地址提供给客户机.
如果有,DHCP服务器就将此IP地址做上标记,加入到DHCP offer的消息中,然后DHCP服务器就广播一则DHCP offer消息(服务端是固定静态IP,客户端没有地址就会发送广播给客户端)
客户机仍没有IP地址,所以发送广播
DHCP客户机从接收到的第一个DHCP offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
第一个DHCP offer表示:若局域网中同时存在两个DHCP,那么客户机根据收到DHCP offer的顺序来确定使用哪个DHCP服务器的地址
客户机发送DHCP request 广播,选择IP地址,并附上租约期限信息(默认8天) 一般是剩余一般的时间就会自动续约
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hLmD8wdC-1594034274485)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706000321443.png)]
DHCP服务器接收到DHCP request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的消息
当客户机收到DHCP ACK消息时,他就配置了IP地址,完成TCP/IP的初始化
此时服务器发出的仍旧是广播,因为客户机还没有IP地址
DHCP客户机每次重新登录网络时,不需要在发送DHCP的discover信息,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息
DHCP服务器收到请求后,检查IP地址资源池
1.发现客户机请求中的IP地址仍旧存在,便发送ACK,将IP地址分配给客户机
2.发现客户机请求中的IP地址已被占用,便返回一个Noack否认信息,然后客户机重新开始请求IP地址的步骤。
网卡IP地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址
DHCP服务器软件
centos镜像中的dhcp…rpm
dhcp软件包的主要文件
主配置文件:/etc/dhcpd.conf
执行程序:/usr/sbin/dhcpd,/usr/sbin/dhcrelay
执行参数配置:/etc/sysconfig/dhcpd
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGIldTVN-1594034274490)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706001410779.png)]
range 参数:设置用于分配的IP地址池
option subnet-mask 参数:设置客户机的子网掩码
option routers 参数:设置客户机的默认网关地址
subnet 是子网段,子网段中优先级更高
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5K9BhzqW-1594034274496)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706002006497.png)]
host主机声明,作用于单个主机
查看租约文件
启动DHCP
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# netstat -naup|grep":67"
查看租约文件 /var/lib/dhcpd/dhcpd.lease
实验环境
在VMware workstation上,一台centos7.6 虚拟机,一台win10虚拟机
[root@localhost ~]# setenforce 0
[root@localhost ~]# setenforce ?
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@localhost ~]# iptables -F
[root@localhost ~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 二 2020-06-16 09:03:20 CST; 2 weeks 5 days ago
Docs: man:firewalld(1)
Main PID: 8706 (firewalld)
Tasks: 2
CGroup: /system.slice/firewalld.service
└─8706 /usr/bin/python -Es /usr/sbin/firewalld --n...
6月 16 09:03:19 localhost.localdomain systemd[1]: Starting f...
6月 16 09:03:20 localhost.localdomain systemd[1]: Started fi...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# yum -y install dhcp*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.njupt.edu.cn
* extras: mirrors.njupt.edu.cn
* updates: mirrors.njupt.edu.cn
base | 3.6 kB 00:00
extras | 2.9 kB 00:00
updates | 2.9 kB 00:00
updates/7/x86_64/primary_db | 3.0 MB 00:01
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-79.el7.centos 将被 安装
--> 正在处理依赖关系 libisc-export.so.169()(64bit),它被软件包 12:dhcp-4.2.5-79.el7.centos.x86_64 需要
--> 正在处理依赖关系 libdns-export.so.1102()(64bit),它被软件包 12:dhcp-4.2.5-79.el7.centos.x86_64 需要
--9
已安装:
dhcp.x86_64 12:4.2.5-79.el7.centos
dhcp-devel.x86_64 12:4.2.5-79.el7.centos
作为依赖被安装:
bind-export-libs.x86_64 32:9.11.4-16.P2.el7_8.6
更新完毕:
dhcp-common.x86_64 12:4.2.5-79.el7.centos
dhcp-libs.x86_64 12:4.2.5-79.el7.centos
作为依赖被升级:
dhclient.x86_64 12:4.2.5-79.el7.centos
完毕!
一台机器centos7.6,一台机器win10
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Tyjhp8E-1594034274501)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706005617229.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hgUtLOdU-1594034274506)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706005716828.png)]
命令:rpm -q dhcp
[root@localhost ~]# rpm -q dhcp
dhcp-4.2.5-79.el7.centos.x86_64
命令:cat /etc/dhcp/dhcpd.conf
文件中要求参考/usr/share/doc/dhcp*/dhcpd.conf.example
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
#
DHCP Server Configuration file.
see /usr/share/doc/dhcp*/dhcpd.conf.example 这是dhcp的路径模板 ,复制一下
see dhcpd.conf(5) man page
[root@localhost dhcp]# vim dhcpd.conf
[root@localhost dhcp]# cp /usr/share/doc/dhcp-/dhcpd.conf.example
cp: 在"/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example" 后缺少了要操作的目标文件 复制提示的dhcp包
Try 'cp --help' for more information.
[root@localhost dhcp]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp
命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sSAa6hxd-1594034274512)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706013749094.png)]
命令:vi /etc/dhcp/dhcpd.con
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y0n6tFXD-1594034274517)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706015231821.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89sgyDOs-1594034274522)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706183950565.png)]
[root@localhost ~]# systemctl start dhcpd ##重启dhcpd服务
[root@localhost ~]# netstat -nuap ##查看服务相关进程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xwWCwjXp-1594034274537)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706021551465.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gGMSc1WF-1594034274543)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706021805637.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JHmEFl7e-1594034274548)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706022154957.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CAAdlZgc-1594034274554)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706022427061.png)]
命令:ipconfig /all
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ru3yrwK1-1594034274559)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706022827450.png)]
命令:vi /etc/dhcp/dhcpd.conf
00:0C:29:67:D5:78
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-reeBknBI-1594034274564)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706024524625.png)]
[root@localhost dhcp]# systemctl restart dhcpd 重启dhcp服务
重新获取DHCP绑定物理网卡的固定IP地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Sc5atjR-1594034274568)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706185024005.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWVIOs32-1594034274576)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706191142848.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tYxORrqo-1594034274580)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706191553456.png)]
.2编辑DHCP配置文件
命令:vi /etc/dhcp/dhcpd.conf
00:0C:29:67:D5:78
[外链图片转存中…(img-reeBknBI-1594034274564)]
[root@localhost dhcp]# systemctl restart dhcpd 重启dhcp服务
重新获取DHCP绑定物理网卡的固定IP地址
[外链图片转存中…(img-8Sc5atjR-1594034274568)]
[外链图片转存中…(img-NWVIOs32-1594034274576)]
[外链图片转存中…(img-tYxORrqo-1594034274580)]
对比得出,子项级别高