让我们首先了解一下 DHCP 的工作流程:
DHCP服务器可以通过两种方法向客户机提供配置信息:
绑定MAC地址法
和地址池法
。
一个比较简陋的图片:
这个图片可以看出DHCP服务器与DHCP客户端的关系
如果再来一张图说明DHCP的作用,我认为下图再合适不过了:
如果你使用的是WIFI,那就对无线再熟悉不过了。
当你去一个公共场所,张嘴就来:“请问,你们这wifi密码是多少”
给你密码之后,你输入wifi的密码,然后建立连接
后来发生了什么?没错,去请求了AP,也就是去请求了无线路由器,AP去找相关的策略。如果是DHCP的话,就请求DHCP服务器。然后你才会得到一个临时的地址。最终才可以上网了。
使用yum进行安装
[root@localhost ~]# yum -y install dhcp
配置文件在/etc/dhcp/
目录下
主要配置就是/etc/dhcp/dhcpd.conf
文件
[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
这个文件的内容:
发现里面除了注释,就是注释 其实提示的这个就是咱们需要的一个模板
[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 ~]#
为了防止出错,备份一下原文件
[root@localhost ~]# cp -p /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
[root@localhost ~]#
拷贝模板替换原来的:
[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 ~]#
由于里面包含了大量的注释,为了方便大家好看,就过滤掉注释:
[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 ~]#
子网代码块说明:
静态地址分配:
#分配静态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;表示
}
虚拟机下:
使用Centos7安装并配置一个DHCP服务器,然后使用Win10测试机进行获取DHCP地址。
DHCP地址池为:192.168.9.200-192.168.9.230 24位地址
编辑dhcpd.conf配置文件
[root@localhost ~]#
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
配置如下:
# 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服务器
如果没有问题就成功了
[root@localhost ~]#
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]#
首选确定一下DHCP服务器的网卡和win10测试机的网卡是否在同一个网络下
然后把网卡设置成dhcp自动获取
和实战一的环境一样
查看一下dhcp客户端的网卡地址:
可以看到物理地址,这个物理地址就是MAC地址。
此图为证,现在获取的地址是192.168.9.200
。
咱们给分配一个``192.168.9.212`。
注意此地方,这个
host zhenghui_win10 {}
代码块中的zhenghui_win10
,其实就是我自己随便起的。 可以自定义,为了更好的方便后期查看,可以设置成比较好记的名字
如果重启没有问题就成功了
右击禁用网卡,然后重新打开
使用ipconfig /renew
命令重新获取
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,然后重新获取:
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>