文章目录
Linux—网络服务—DHCP原理与配置
一:了解DHCP服务
1.1:DHCP概述
-
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
-
由Internet工作任务小组设计开发
-
专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
1.2:DHCP的优点
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不仅要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
1.3:DHCP分配方式
- 自动分配(Automatic allocation)
- 手动分配(Manual Allocation)
- 动态分配(Dynamic Allocation)
自动分配是当DHCP客户端第一次成功的从DHCP服务器获取一个IP地址后,就永久的使用这个IP地址。
手动分配是由DHCP服务器管理员专门指定的IP地址
动态分配是当客户端第一次从DHCP服务器获取到IP地址后,并非永久使用该地址,每次使用完后,DHCP客户端就需要释放这个IP,供其他客户端使用。
第三种是最常见的使用形式。
二:DHCP的工组原理
2.1:DHCP的租约过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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网络地址(不能用)
2.2:DHCP租约详解
2.2.1:客户机发送IP请求:发送DHCP discover广播
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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广播去寻找
2.22:服务器收到客户机的请求响应发送:DHCP offer广播
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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地址,所以发送广播
2.23:客户机选项IP地址:发送DHCP requsest广播[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ncUZ8O3t-1594034274480)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706000301684.png)]
DHCP客户机从接收到的第一个DHCP offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
第一个DHCP offer表示:若局域网中同时存在两个DHCP,那么客户机根据收到DHCP offer的顺序来确定使用哪个DHCP服务器的地址
客户机发送DHCP request 广播,选择IP地址,并附上租约期限信息(默认8天) 一般是剩余一般的时间就会自动续约
2.24:服务器确定租约:发送DHCP ACK广播
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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地址
2.25:重新登录
DHCP客户机每次重新登录网络时,不需要在发送DHCP的discover信息,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息
DHCP服务器收到请求后,检查IP地址资源池
1.发现客户机请求中的IP地址仍旧存在,便发送ACK,将IP地址分配给客户机
2.发现客户机请求中的IP地址已被占用,便返回一个Noack否认信息,然后客户机重新开始请求IP地址的步骤。
三:使用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:dhcpd.conf的内容构成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGIldTVN-1594034274490)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706001410779.png)]
3.5:DHCP主配置文件各属性
- 全局设置,作用于整个DHCP服务器
- ddns-update-style none;–代表DNS动态更新,none禁止
- default-lease-time 21600;–代表默认租约期限
- max-lease-time 43200;–最大租约期限
- option domain-name “domain.org”;–域名
- option domain-name-servers 202.106.0.20;–分配DNS服务器
3.6:配置Subnet网段声明,作用于整个子网段
range 参数:设置用于分配的IP地址池
option subnet-mask 参数:设置客户机的子网掩码
option routers 参数:设置客户机的默认网关地址
subnet 是子网段,子网段中优先级更高
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5K9BhzqW-1594034274496)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706002006497.png)]
3.7:主配置文件
host主机声明,作用于单个主机
- hardware ethernet参数:指定对应主机的MAC地址
- fixed-address参数:指定为该主机保留的IP地址
查看租约文件
-
启动DHCP
[root@localhost ~]# systemctl start dhcpd [root@localhost ~]# netstat -naup|grep":67"
-
查看租约文件 /var/lib/dhcpd/dhcpd.lease
四:配置DHCP实验
实验环境
在VMware workstation上,一台centos7.6 虚拟机,一台win10虚拟机
4.1设置DHCP服务端和客户端
4.1.1临时关闭防火墙 setenforce 0
[root@localhost ~]# setenforce 0
[root@localhost ~]# setenforce ?
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
4.1.2 清空防火墙
[root@localhost ~]# iptables -F
4.1.3 查看服务状态
[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.
4.2 安装DHCP包
[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
完毕!
4.2 两台机器绑定到同一个网卡上去,仅主机模式
一台机器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)]
4.2.1查询DHCP文件全名
命令:rpm -q dhcp
[root@localhost ~]# rpm -q dhcp
dhcp-4.2.5-79.el7.centos.x86_64
4.2.2 查看配置文件
命令: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
4.3 修改配置文件
4.3.1根据模板复制
[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
4.3.1修改网卡配置文件
命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sSAa6hxd-1594034274512)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706013749094.png)]
4.3.2修改/etc/dhcp/dhcpd.conf文件
命令: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)]
4.3.3查看网络是否连通
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gGMSc1WF-1594034274543)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706021805637.png)]
4.3.4客户端win10设置成dhcp方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JHmEFl7e-1594034274548)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706022154957.png)]
4.3.5DHCP获取地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CAAdlZgc-1594034274554)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706022427061.png)]
4.4DHCP配置指定的主机IP地址
4.4.1查询win10的MAC地址
命令:ipconfig /all
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ru3yrwK1-1594034274559)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20200706022827450.png)]
4.4.2编辑DHCP配置文件
命令: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)]
4.5:更改子选项的DHCP服务地址,对比全局和子项那个优先
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
4.5:更改子选项的DHCP服务地址,对比全局和子项那个优先
[外链图片转存中…(img-NWVIOs32-1594034274576)]
[外链图片转存中…(img-tYxORrqo-1594034274580)]
对比得出,子项级别高