一、了解DHCP以及相关概念(一)DHCP如何工作的?让我们首先了解一下 DHCP 的工作流程:
当已连接到网络的客户端计算机(配置为使用 DHCP)启动时,它会发送一个 DHCPDISCOVER 消息到 DHCP 服务器。当 DHCP 服务器接收到 DHCPDISCOVER 请求消息时,它会回复一个 DHCPOFFER 消息。客户端收到 DHCPOFFER 消息后,它再发送给服务器一个 DHCPREQUEST 消息,表示客户端已准备好获取 DHCPOFFER 消息中提供的网络配置。最后,DHCP 服务器收到客户端的 DHCPREQUEST 消息,并回复 DHCPACK 消息,表示允许客户端使用分配给它的 IP 地址。
(二)DHCP的优点(1) 减少人为配置管理。使用DHCP服务器可以大大降低用于配置和重新配置计算机的时间。(2) 可靠配置。DHCP避免了因手动在每台计算机上输入IP地址而引起的IP冲突。(三)DHCP工作过程(1) IP地址请求阶段。(2) IP地址提供阶段。(3) IP地址选择阶段。(4) IP地址确认阶段。(四)DHCP提供信息方法 DHCP服务器可以通过两种方法向客户机提供配置信息:绑定MAC地址法和地址池法。
二、DHCP在生活中常用的情景一个比较简陋的图片:
这个图片可以看出DHCP服务器与DHCP客户端的关系
如果再来一张图说明DHCP的作用,我认为下图再合适不过了:
如果你使用的是WIFI,那就对无线再熟悉不过了。
当你去一个公共场所,张嘴就来:“请问,你们这wifi密码是多少”
给你密码之后,你输入wifi的密码,然后建立连接
后来发生了什么?没错,去请求了AP,也就是去请求了无线路由器,AP去找相关的策略。如果是DHCP的话,就请求DHCP服务器。然后你才会得到一个临时的地址。最终才可以上网了。
三、安装使用yum进行安装
代码语言:javascript复制[root@localhost ~]# yum -y install dhcp(一)配置文件以及目录介绍配置文件在/etc/dhcp/目录下
主要配置就是/etc/dhcp/dhcpd.conf文件
代码语言:javascript复制[root@localhost ~]# cd /etc/dhcp/
[root@localhost dhcp]# ll
总用量 8
drwxr-xr-x. 2 root root 23 5月 9 10:21 dhclient.d
-rw-r--r-- 1 root root 120 4月 2 09:29 dhcpd6.conf
-rw-r--r-- 1 root root 117 4月 2 09:29 dhcpd.conf
drwxr-x--- 2 root dhcpd 28 5月 12 01:56 scripts
[root@localhost dhcp]# 查看一下/etc/dhcp/dhcpd.conf这个文件的内容:
发现里面除了注释,就是注释
其实提示的这个就是咱们需要的一个模板
代码语言:javascript复制[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
[root@localhost ~]# 为了防止出错,备份一下原文件
代码语言:javascript复制[root@localhost ~]# cp -p /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
[root@localhost ~]# 拷贝模板替换原来的:
代码语言:javascript复制[root@localhost ~]#
[root@localhost ~]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost ~]# 由于里面包含了大量的注释,为了方便大家好看,就过滤掉注释:
代码语言:javascript复制[root@localhost ~]#
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf |grep -Ev "^#"
option domain-name "example.org"; #为客户机指定解析主机名时的默认搜索域
option domain-name-servers ns1.example.org, ns2.example.org; #域名服务器
default-lease-time 600; #默认租约时间
max-lease-time 7200; #最大的租约时间
log-facility local7;
#子网
#子网网络 #子网掩码
subnet 10.152.187.0 netmask 255.255.255.0 {
}
#子网
subnet 10.254.239.0 netmask 255.255.255.224 {
range 10.254.239.10 10.254.239.20; #地址池
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}
#子网
subnet 10.254.239.32 netmask 255.255.255.224 {
range dynamic-bootp 10.254.239.40 10.254.239.60;
option broadcast-address 10.254.239.31;
option routers rtr-239-32-1.example.org;
}
# 单独拿出来这个比较全的来说明
subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
}
#分配静态IP
host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95; #需要分配给的主机的网卡的MAC地址
filename "vmunix.passacaglia";
server-name "toccata.fugue.com"; #分配的IP地址
}
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}
class "foo" {
match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}
shared-network 224-29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr-224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
option routers rtr-29.example.org;
}
pool {
allow members of "foo";
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of "foo";
range 10.0.29.10 10.0.29.230;
}
}
[root@localhost ~]# 子网代码块说明:
静态地址分配:
代码语言:javascript复制#分配静态IP
host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95; #需要分配给的主机的网卡的MAC地址
filename "vmunix.passacaglia";
server-name "toccata.fugue.com"; #分配的IP地址,默认是用域名表示的,可以使用:server-name 192.168.8.112;表示
}四、实战一(DHCP地址池分配IP法)(一)环境虚拟机下:
一台Centos7的操作系统一台Win10的测试机使用Centos7安装并配置一个DHCP服务器,然后使用Win10测试机进行获取DHCP地址。
DHCP地址池为:192.168.9.200-192.168.9.230 24位地址
(二)配置编辑dhcpd.conf配置文件
代码语言:javascript复制[root@localhost ~]#
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf配置如下:
代码语言:javascript复制# A slightly different configuration for an internal subnet.
subnet 192.168.9.0 netmask 255.255.255.0 {
range 192.168.9.200 192.168.9.230;
option domain-name-servers 192.168.9.222;
option domain-name "dns.zhenghui.com";
option routers 192.168.9.1;
option broadcast-address 255.255.255.255;
default-lease-time 600;
max-lease-time 7200;
}启动dhcp服务器
如果没有问题就成功了
代码语言:javascript复制[root@localhost ~]#
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# (三)dhcp客户端测试首选确定一下DHCP服务器的网卡和win10测试机的网卡是否在同一个网络下
然后把网卡设置成dhcp自动获取
五、实战二(绑定MAC地址分配法:静态分配)(一) 环境和实战一的环境一样
(二)配置查看一下dhcp客户端的网卡地址:
可以看到物理地址,这个物理地址就是MAC地址。
此图为证,现在获取的地址是192.168.9.200。
咱们给分配一个``192.168.9.212`。
注意此地方,这个host zhenghui_win10 {}代码块中的zhenghui_win10,其实就是我自己随便起的。
可以自定义,为了更好的方便后期查看,可以设置成比较好记的名字
如果重启没有问题就成功了
(三)测试右击禁用网卡,然后重新打开
使用ipconfig /renew命令重新获取
代码语言:javascript复制C:\Users\80429>ipconfig /renew
Windows IP 配置
以太网适配器 以太网:
连接特定的 DNS 后缀 . . . . . . . : dns.zhenghui.com
本地链接 IPv6 地址. . . . . . . . : fe80::c530:d0d4:17f2:1757%6
IPv4 地址 . . . . . . . . . . . . : 192.168.9.212
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.9.1
C:\Users\80429>如果获取的地址还是之前的话,可以使用ipconfig /release释放掉当前的IP,然后重新获取:
代码语言:javascript复制C:\Users\80429>ipconfig /release
Windows IP 配置
以太网适配器 以太网:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::c530:d0d4:17f2:1757%6
默认网关. . . . . . . . . . . . . :
C:\Users\80429>ipconfig
Windows IP 配置
以太网适配器 以太网:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::c530:d0d4:17f2:1757%6
默认网关. . . . . . . . . . . . . :
C:\Users\80429>
C:\Users\80429>ipconfig /renew #重新获取
Windows IP 配置
以太网适配器 以太网:
连接特定的 DNS 后缀 . . . . . . . : dns.zhenghui.com
本地链接 IPv6 地址. . . . . . . . : fe80::c530:d0d4:17f2:1757%6
IPv4 地址 . . . . . . . . . . . . : 192.168.9.212
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.9.1
C:\Users\80429>