设置dhcp服务的配置
1.DHCP服务
DHCP(Dynamic Host Configuration Protocol,动态主机设置协议),是一个局域网的网络协议,使用UDP协议工作。它是TCP/IP协议簇中的一种,
主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。
这些被分配的IP地址都是DHCP服务器预先保留的一个由多个地址组成的地址集,并且它们一般是一段连续的地址。
使用DHCP时必须在网络上有一台DHCP服务器,而其他机器执行DHCP客户端。当DHCP客户端程序发出一个信息,要求一个动态的IP地址时,
DHCP服务器会根据目前已经配置的地址,提供一个可供使用的IP地址和子网掩码给客户端。
2. DHCP工作原理
简述:
(1)客户机寻找服务器(DHCP Client发现阶段):广播发送discover包,寻找dhcp服务器
(2)服务器响应请求(DHCP Server 提供阶段):单播发送offer包,对客户机做出响应。提供客户端网络相关的租约以供选择其中服务器在收到客户端的请求后,会针对客户端的mac地址与本身的设定数据进行一下工作:
a)到服务器的登录文件中寻找该用户之前曾经使用过的ip,若有且该ip目前没有人使用,这提供此ip为客户机
b)若配置文件中有针对该mac提供额外的固定ip,且该ip没有被使用,则提供此ip给客户机
c)如果没有符合以上两个条件,则随机取用目前没有被使用的ip参数给客户机并记录到leases文件中。
(3)客户机发送ip请求(DHCP Client 选择阶段):广播request包,选择一个服务器提供的网络参数租约回报服务器。此外,客户机会发送一个广播封包给局域网内的所有主机,告知自己已经接受服务器的租约。
(4)服务器确认租约(DHCP Server确认阶段):单播Ack包,服务器与客户机确认租约关系并记录到服务器的leases文件中 。
DHCP获得ip地址的4步骤: discover--->offer--->request--->ack(nak)
DHCP刷新租期的步骤: request--->ack(nak)
DHCP释放ip的步骤: release
注意事项:
客户端传输广播包给整个物理网络段内的所有主句,如局域网内有DHCP服务器时,才会响应客户端的IP参数要求,
所以DHCP服务器与客户端应该在同一个物理网段内。
3.dhcp服务的搭建
实验环境:
dhcp服务端: desktop
dhcp客户端: server
安装包:
dhcp-4.2.5-27.el7.x86_64.rpm
(1).安装dhcp服务
rpm -ivh dhcp-4.2.5-27.el7.x86_64.rpm ##安装dhcp服务
具体参数的含义:
i: 安装(install)
v: 显示安装信息
h: hash解密
[root@node1 Desktop]# cd /mnt
[root@node1 mnt]# ls
dhcp-4.2.5-27.el7.x86_64.rpm etc.tar westos1 westos3 westos5
etc file westos2 westos4
##安装dhcp
[root@node1 mnt]# rpm -ivh dhcp-4.2.5-27.el7.x86_64.rpm
warning: dhcp-4.2.5-27.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... (100%################################# [100%]
Updating / installing...
1:dhcp-12:4.2.5-27.el7 ( 2%################################# [100%]
##此时dhcp服务无法打开
[root@node1 mnt]# systemctl start dhcpd
[root@node1 mnt]#systemctl status dhcpd
(2) .配置dhcp服务
@1.拷贝模板
[root@node1 mnt]# cd
[root@node1 ~]# cd /etc/dhcp
[root@node1 dhcp]# ls
dhclient.d dhcpd6.conf dhcpd.conf
[root@node1 dhcp]# vim dhcpd.conf
##################
/usr/share/doc/dhcp*/dhcpd.conf.example ##模板
##拷贝模板到 /etc/dhcp/dhcpd.conf 文件中
[root@node1 dhcp]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y ##确定覆盖原文件
@2.更改配置文件
[root@node1 dhcp]# vim dhcpd.conf
##################
7 option domain-name "westos.com"; ##域名(与公司名称相对应)
8 option domain-name-servers 172.25.254.250; ##dns地址(地址解析:将网址转换为ip)
10 default-lease-time 600; ##默认租约期
11 max-lease-time 7200; ##最长租约期
删除27 28 行
30 subnet 172.25.254.0 netmask 255.255.255.0 { ##网络位(子网) 子网掩码
31 range 172.25.254.60 172.25.254.70; #分配ip范围(地址池)
32 option routers 172.25.254.250; #网关(在企业中是已知的)
33 }
删除34行以后的所有内容
##只有做好了dhcp服务的配置,dhcp服务才能启动成功
[root@node1 dhcp]# systemctl restart dhcpd
(3).测试
##先重置虚拟机
[kiosk@foundation34 Desktop]$ rht-vmctl reset server
[kiosk@foundation34 Desktop]$ rht-vmctl view server
##在图形界面打开server;发现获得了一个ip
[root@localhost Desktop]# ifconfig eth0
##发现server主机的获取的ip来自于node1的dhcp;因为二者的mac地址相同
[root@node1 dhcp]# cat /var/lib/dhcpd/dhcpd.leases
答疑解惑:
1)如何知道客户机从哪个DNS Server获得ip地址?
客户端的租约文件在/var/lib/dhclient/dhclient.leases
服务端的租约文件在/var/lib/dhcpd/dhcpd.leases
2)服务器分配ip的顺序?
从小的ip开始分配
3)为何客户机在获得一个ip后,释放再获得ip时会获得以前使用的ip?
客户机内有一个租约文件存放自己曾经获得的ip地址,服务器端也有一个租约文件存放了自己已经分配的ip以及其对应的主机mac。
4)服务器会在哪些端口提供dhcp服务?
默认在任何端口提供dhcp服务。实际上只是在与dhcp同一网段的网卡上提供dhcp服务。
5)如果租约到期,而服务器并没有续约,该如何处理?
会向其他服务器寻找dhcp服务