Linux网络服务之——DHCP篇

一、了解DHCP服务

1.1DHCP定义

DHCP(动态主机配置协议)是一个局域网的网络协议,由Internet工作任务小组设计开发的。专门用于为tcp/ip网络中的计算机自动分配TCP/IP参数的协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。

DHCP采用C/S架构,C-client(客户机),S-server(服务器),客户机/服务器架构

DHCP服务对应传输层UDP协议,因为是C/S架构,所以客户机端口号是67,服务器端口号是68。DHCP的前身是BOOTP协议,DHCP比BOOTP复杂,功能更加强大。DHCP工作在应用层。

网络工程师任务小组 组织指定,用来简化主机地址分配管理
主要分配以下,入网参数
-IP地址/子网掩码/广播地址
-默认网关地址、DNS服务器地址
-PXE引导设置(TFTP服务器地址、引导文件名)

1.2 DHCP好处

由于上网时间的不确定性以及人员的技术水平不同,为每位用户分配一个固定的ip地址,不仅造成ip地址的浪费,也会为ISP服务商带来高额的维护成本。而使用DHCP服务则有以下好处:

  • 减少管理员的工作量

  • 避免输入错误的可能

  • 避免IP地址冲突【就像手动分配你也不知道别人的ip,有可能会产生冲突】

  • 当更改lP地址段时,不需要重新配置每个用户的IP地址

  • 提高了IP地址的利用率【只给需要上网的用户分配ip】

  • 方便客户端的配置和使用

1.3DHCP的分配方式

  • 自动分配: 分配到一个IP地址后永久使用

  • 手动分配: 由DHCP服务器管理员专门指定IP地址
    如何给一个组分配五个地址,手动分配:就是把1-5预留下来,给他们分配。

  • 动态分配: 使用完后释放该IP,供其它客户机使用 【eg:插了网线就能上网】,DHCP向服务端请求。

 动态分配ip   是每次插网线上网的时候  你的电脑的ip都是随机分配的  每次可能都不一样      静态分配 是每次都使用固定的ip 

1.4 为什么使用DHCP?

DHCP 服务避免了因手动设置 IP 地址所产生的错误,同时也避免了把一个 IP 地址分配给多台工作站所造成的地址冲突。DHCP 提供了安全、可靠且简单的 TCP/IP 网络设置,降低了配置 IP 地址的负担。

二、DHCP的租约过程

客户机从DHCP服务器获得ip地址的过程 称为DHCP的租约过程。
分为四个步骤:
1.客户端请求ip地址:当一个DHCP客户机启动时,客户机还没有ip地址,所以客户机要通过DHCP获取一个合法的地址。此时DHCP客户机以广播的形式发送DHCP discover发现信息来寻找DHCP服务器。
2.服务器响应:当DHCP服务器接收到来自客户机请求ip地址的信息时,它就在自己的ip地址池中 查找是否有合法的ip地址提供给客户机。如果有,DHCP服务器就将次ip地址做上标记,加入到DHCP offer提供的消息中,然后DHCP服务器就广播一则DHCP offer消息【有多条eg:222 333 444 555 666…】
3.客户机选择ip地址:DHCP客户机从接收到的第一个DHCP offer提供的消息中提取ip地址,发出ip地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机。【eg:你去租房看中了一套房源你准备预定它,你给了定金之后,中介就不能带其他人来看这间房子,预订保留了】
4.服务器确定租约DHCP服务器接收到的DHCP request请求消息后,以DHCP ACK回应消息的形式向客户机广播成功,该消息包含有ip地址的有效租约和其他可配置的信息。该客户机收到ACK消息时,它就配置了ip地址,完成了TCP/IP的初始化。【最后一步在会分发ip地址】
在这里插入图片描述
通俗易懂的了解DHCP的租约过程:
##租约过程就是租房过程吧

1)你先求租房
2)中介公司会给你响应,我有房源,我给你
3)我确定你这个房子了
4)签订合同

注:
1.关于重新登录的情况
DHCP 客户机每次重新登录网络时,不需要再发送 DHCP Discover 信息,而是直接发送包含前一次所分配的 IP 地址的 DHCP Request 请求信息。
2.更新租约
租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST请求报文,请求更新IP地址租期。【与房东签订合同】如果DHCP服务器回应的DHCP ACK响应报文,则租期更新成功(即租期从0开始计算)【还是之前的ip】;
如果收到DHCP NAK【NAK:没有应答的】报文,则重新发送DHCP DISCOVER【相当于又要从第一部开始做】报文请求新的IP地址。

当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址。

PS:

NAK:没有应答;NCK:有应答;REQUEST:请求
offer:提供  discover:发现

三、使用 DHCP动态配置主机地址

3.1DHCP服务优点

●为大量客户机自动分配地址,提供集中管理

●减轻管理和维护成本、提高网络配置效率

3.2可分配的地址信息主要包括

●网卡的IP地址、子网掩码
●对应的网络地址、广播地址
●默认网关地址
●DNS服务器地址

四、DHCP中继原理与配置

4.1DHCP配置文件中的参数


#1.设置全局配置参数
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf          //编辑配置文件
7 option domain-name "example.org";                    //指定默认搜索域,本地域名
8 option domain-name-servers ns1.example.org, ns2.example.org;    //指定 DNS 服务器地址,多台用逗号隔开
10 default-lease-time 600;   //默认租约为600秒
11max-lease-time 7200;     //最大租约为2小时,在客户端没有特殊的租约时间请求的时候,都会统一的指 派默认租约时间(多数情况)。 如果客户端请求了自定义的租约时间,服务器将会启用最大租约时间作为限制,客户端自己请求的租约时间不能大于该值
ddns-update-style none;           //禁用 DNS 动态更新,提高DHCP的效率,减少带宽的使用,默认注释了
ignore client-updates:  //与ddns-update-style设定相关,客户端可以通过DHCP服务器来更新DNS相关信息,这里暂时不予考虑,所以设置成igore.


##2.DHCP局部配置并且测试
#subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
一台 DHCP 服务器可以为多个网段提供服务,因此 subnet 网段声明必须有而且可以有多个。注意别少了每行结尾的分号!
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf 
subnet 192.168.10.0 netmask 255.255.255.0 {
    
           //声明要分配的网段地址 
#default-lease-time 6000;    //默认租约为6000秒,当和全局设置重复时,subnet里的配置生效
range 192.168.10.100 192.168.10.110;     //设置地址池 
#option broadcast-address 192.168.10.255;   //定义广播地址
option routers 192.168.10.105;     //指定默认网关地址
option domain-name-servers 114.114.114.114;  //定义DNS服务器
做完这一步之后,保存退出;
并且重新启动systemctl restart dhcpd


#3.host主机声明(给单机分配固定的IP地址)    
host 声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的 IP 地址(保留地址),这些主机的共同特点是要求每次获取的 IP 地址相同,以确保服务的稳定性。
host win10{
    
                         #指定需要分配固定IP地址的客户机名称
hardware ethernet 00:c0:c3:22:46:81;         #指定该主机的MAC地址
fixed-address 192.168.4.100;        #指定保留给该主机的IP地址

#host 后面可自定义名称
###验证并且查看

客户端win10验证:
ipconfig /release
ipconfig /renew

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2步骤讲解

1.关闭防火墙和selinux

 [root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

2.安装服务并查看相关配置文件

[root@localhost ~]# Rpm  -qa  dhcp    //查看DHCP安装包有没有,没有就安装
[root@localhost ~]# yum -y install dhcp
dhcp-4.2.5-82.el7.centos.x86_64
[root@localhost ~]#rpm -qc dhcp   #查看配置文件有哪些

[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~]# cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf 【拷贝的位置】   //拷贝模板起名为dhcpd.conf

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
3.更改网卡连接模式为仅主机
在这里插入图片描述
更改完成后Xshell就断开了,需要进虚拟机的终端去更改配置

4.修改网卡

[root@localhost dhcp]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
#修改网卡ip地址及网关,然后保存退出
[root@localhost dhcp]# systemctl restart network               #重启网络服务
root@localhost dhcp]# ifconfig               #查看一下ip地址是不是配好了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.修改配置文件

[root@localhost ~]# cd /etc/dhcp/                 #切换至dhcpd.conf所在目录
[root@localhost dhcp]# vim dhcpd.conf       #修改配置文件

末行模式下:set nu显示行号

#第8行 修改默认的全局DNS地址
  option domain-name-servers 8.8.8.8;

#直接修改27行
  subnet 192.168.100.0  netmask 255.255.255.0 {
    
    
    range 192.168.100.128  192.168.100.200;
   option routers 192.168.100.1;
    option domain-name-servers 114.114.114.114;
  
  }
 
subnet 192.168.10.0  netmask 255.255.255.0{
    
    
  range 192.168.10.128  192.168.10.200;
  option routers 192.168.10.1;
}

subnet 192.168.20.0  netmask 255.255.255.0{
    
    
  range 192.168.20.128  192.168.20.200;
  option routers 192.168.20.1;
}

[root@localhost dhcp]# systemctl start dhcpd                #启动dhcp服务
[root@localhost dhcp]# systemctl status dhcpd             #查看是否成功启动
[root@localhost dhcp]# netstat -anup  | grep "dhcp"      #查看网络状态,过滤出dhcp端口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.验证区域与全局优先级

#windows设置虚拟网卡为仅主机模式
#虚拟网络编辑器里也设置成仅主机模式,一定要把使用本地DHCP选项勾掉
#改一下windows虚拟机的网卡配置

#在windows系统的cmd里测试是否能ping通dhcp服务器,然后释放并重启一下网络
ping 192.168.100.100  ping 一下dhcp服务器,看是否可以ping通
ipconfig  查看网卡信息
ipconfig /release  释放地址
ipconfig /renew    重新获取地址
ipconfig /all  可以看到详情信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_59663288/article/details/124123923