DHCP 动态主机配置协议
作用:
给网络内的客户机自动分配ip地址
DHCP协议采用的是UDP作为传输协议
DHCP客户端发送请求消息给服务端的67号端口
DHCP服务端回应响应消息给客户端的68号端口
DHCP工作原理:![](https://img-blog.csdnimg.cn/direct/e95481399f6448c384ea4b1bd5fa501f.png)
1)客户端通过广播发送DHCP Discover报文寻找DHCP服务端
2)服务端通过广播发送DHcp offer报文向客户端提供从地址池中挑选的可用IP等网络信息
3)客户端只接收第一个收到的DHCPoffer报文并提取IP地址,然后向通过广播发送DHCPRequest报文告知服务端要使用该IP地址
4)服务端通过广播发送DHCPACK报文告知客户端该IP地址是合法可用的,并提供租约信息
[root@localhost ~]#
[root@localhost ~]# systemctl disable --now firewalld //关闭防火墙
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]#
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/selinux/config
[root@localhost ~]#
[root@localhost ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 1913548 0 1913548 0% /dev
tmpfs 1930624 0 1930624 0% /dev/shm
tmpfs 1930624 12812 1917812 1% /run
tmpfs 1930624 0 1930624 0% /sys/fs/cgroup
/dev/mapper/centos-root 36805060 4530528 32274532 13% /
/dev/sda1 1038336 191088 847248 19% /boot
tmpfs 386128 56 386072 1% /run/user/0
/dev/sr0 4635056 4635056 0 100% /mnt
[root@localhost ~]#
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls
CentOS_BuildTag images repodata
EFI isolinux RPM-GPG-KEY-CentOS-7
EULA LiveOS RPM-GPG-KEY-CentOS-Testing-7
GPL Packages TRANS.TBL
[root@localhost mnt]# cd Packages/
[root@localhost Packages]# ls | grep dhcp
dhcp-4.2.5-83.el7.centos.1.x86_64.rpm
dhcp-common-4.2.5-83.el7.centos.1.x86_64.rpm
dhcp-libs-4.2.5-83.el7.centos.1.x86_64.rpm
[root@localhost Packages]#
[root@localhost Packages]# yum install -y dhcp //用本地yum源安装dhcp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
local | 3.6 kB 00:00:00
(1/2): local/group_gz | 153 kB 00:00:00
(2/2): local/primary_db | 3.3 MB 00:00:00
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-83.el7.centos.1 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================================================================================================
Package 架构 版本 源 大小
================================================================================================================================================================
正在安装:
dhcp x86_64 12:4.2.5-83.el7.centos.1 local 515 k
事务概要
================================================================================================================================================================
安装 1 软件包
总下载量:515 k
安装大小:1.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 12:dhcp-4.2.5-83.el7.centos.1.x86_64 1/1
验证中 : 12:dhcp-4.2.5-83.el7.centos.1.x86_64 1/1
已安装:
dhcp.x86_64 12:4.2.5-83.el7.centos.1
安装好之后进行相关的配置管理
[root@localhost Packages]# rpm -qpc dhcp-4.2.5-83.el7.centos.1.x86_64.rpm
//查看这个qpc dhcp-4.2.5-83.el7.centos.1.x86_64.rpm软件包安装完他的配置文件放在哪个路径
警告:dhcp-4.2.5-83.el7.centos.1.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@localhost Packages]#
[root@localhost Packages]# cd /etc/dhcp/
[root@localhost dhcp]# ls
dhclient.d dhclient-exit-hooks.d dhcpd6.conf dhcpd.conf scripts
[root@localhost dhcp]#
[root@localhost dhcp]# vim dhcpd.conf
[root@localhost share]# cd /usr/share/doc/
[root@localhost doc]# ls dhcp*
dhcp-4.2.5:
dhcpd6.conf.example dhcpd.conf.example ldap
dhcp-common-4.2.5:
LICENSE README References.txt RELNOTES
[root@localhost doc]#
[root@localhost doc]# cd dhcp-4.2.5/
[root@localhost dhcp-4.2.5]#
[root@localhost dhcp-4.2.5]#
[root@localhost dhcp-4.2.5]# pwd
/usr/share/doc/dhcp-4.2.5
[root@localhost dhcp-4.2.5]# ls
dhcpd6.conf.example dhcpd.conf.example ldap
[root@localhost dhcp-4.2.5]#
[root@localhost dhcp-4.2.5]#
[root@localhost dhcp-4.2.5]# vim dhcpd.conf.example
[root@localhost dhcp-4.2.5]#
[root@localhost dhcp-4.2.5]#
[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf //复制到/etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@localhost dhcp-4.2.5]#
[root@localhost dhcp-4.2.5]# cd /etc/dhcp/
[root@localhost dhcp]# ls
dhclient.d dhclient-exit-hooks.d dhcpd6.conf dhcpd.conf scripts
[root@localhost dhcp]# vim dhcpd.conf
[root@localhost dhcp]#
设置
验证
[root@localhost ~]# systemctl restart dhcpd //重启
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details. //报错
[root@localhost ~]#
root@localhost ~]# vim /var/log/messages
[root@localhost ~]# systemctl restart dhcpd
[root@localhost ~]# netstat -naup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 192.168.122.1:53 0.0.0.0:* 1580/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 68813/dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 1580/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 730/rpcbind
udp 0 0 127.0.0.1:323 0.0.0.0:* 749/chronyd
udp 0 0 0.0.0.0:51958 0.0.0.0:* 783/avahi-daemon: r
udp 0 0 0.0.0.0:894 0.0.0.0:* 730/rpcbind
udp 0 0 0.0.0.0:5353 0.0.0.0:* 783/avahi-daemon: r
udp6 0 0 :::111 :::* 730/rpcbind
udp6 0 0 ::1:323 :::* 749/chronyd
udp6 0 0 :::894 :::* 730/rpcbind
[root@localhost ~]#
配置完毕
验证:
两台客户端虚拟机都得把网络状态设置为仅主机模式(一台linux 一台WIN)
win
自动获取到ip地址 ,掩码,网关,dhcp服务器,DNS服务器
linux系统
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]#
配置命令:
vim /etc/dhcp/dhcpd.conf
....
subnet IP网段 netmask 掩码 {
range 起始IP 终止IP;
option routes 网关IP;
}