Linux网络DHCP服务详解

238 阅读4分钟

一、DHCP概述

DHCP(Dynamic Host Configuration Protocol):动态主机配置协议,是一个局域网的网络协议,使用udp协议工作,DHCP服务器可以通过路由器或者服务器主机来设置。(服务端使用的是udp的67端口,客户端使用的是udp的68端口)

1.1 DHCP服务的用途

DHCP主要有两个用途:

  1. 给内部网络或网络服务供应商自动分配IP地址
  2. 给用户或者内部网络管理员作为对所有计算机中央管理的手段

1.2 使用DHCP的好处

  • 减少管理员的工作量
  • 避免输入错误的可能
  • 避免IP冲突
  • 当更改IP地址段时,不需要重新配置每个用户的IP地址
  • 提高了IP地址的利用率
  • 方便客户端的配置

二、DHCP的IP地址自动获取工作原理

image.png 第一步:客户端在网络中搜索服务器

客户端通过广播发送DHCP Discover 报文寻找服务器端

第二步:服务器向客户端响应服务

服务端通过单播(华为的路由器使用的是单播,其他使用的是广播)发送DHCP offer报文向客户端提供IP地址等网络信息,从IP地址池中挑选一个尚未分配的IP地址分配给客户端

第三步:客户端向服务器发出服务请求

如果有多台DHCP服务器向该客户端发来DHCP-offer报文,客户端只会接收第一个收到的DHCP-offer报文并提取IP地址,然后客户端通过广播发送DHCP-request,报文告知服务端本地选择使用该IP地址

第四步:服务器向客户端提供服务

服务器通过广播发送DHCP Ack报文告知客户端IP地址是合法可用的,并在选项字段中增加IP地址的使用租期信息。

三、如何建立DHCP服务

首先我们准备2台Linux虚拟机,1台win10虚拟机;其中一台Linux虚拟机作为服务端,win10虚拟机和另一台Linux虚拟机作为客户端,分别要对服务端客户端的主机进行配置文件的配置,使DHCP服务建立。

3.1 服务端配置

1.网络模式启用主机模式

由于我们的VMware软件本身的网络设置为NAT模式,并且启用了本地DHCP服务。为了防止我们本地的DHCP服务干扰我们自己搭建的DHCP服务器,我们将Linux以及windows主机都设置为主机模式:

image.png

image.png

image.png

image.png

2. 关闭防火墙,selinux

完成环境的配置后,记得先关闭防火墙以及selinux,防止他干扰内部服务器之间的通讯

image.png 如果需要永久关闭selinux,操作如下:

image.png

image.png

3. 安装服务

yum安装dhcp服务

image.png

image.png

4. 修改dhcp配置文件

安装完成后,配置dhcp的配置文件

image.png 正常情况下,我们/etc/dhcpd/dhcpd.conf这个配置文件的默认配置为空 image.png

image.png

image.png

我们查看一下DHCP的模板配置文件内容

#设置全局配置参数
option domain-name "example.org";   #默认指定域名
option domain-name-servers ns1.example.org, ns2.example.org;          #指定DNS服务器地址
default-lease-time 600;             #默认最小租约时间为600秒
max-lease-time 7200;                #最大租约时间为7200秒
ddns-update-style none;            #禁用DNS动态更新(可加快DHCP服务响应速度)

image.png

#subnet网段声明(作用域整个子网段,部分配置参数优先级高于全局配置参数)
subnet 10.254.239.0 netmask 255.255.255.224 {                    #声明要分配的网段      
range 10.254.239.10 10.254.239.20;                                   #设置IP地址池
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;     #指定默认网关

image.png

host passacaglia {                    #单独分配主机ip
hardware ethernet 08:00:07:26:c0:a5;  #指定该主机的MAC地址
fixed-address fantasia.fugue.com;     #指定保留该主机的IP地址

image.png

接下来,修改模板配置内容

image.png

5. 启用服务

设置完成后,启动服务

image.png

3.2 Linux客户端网卡配置

首先我们要配置我们的网卡配置文件,文件路径如下:

vim /etc/sysconfig/network-scripts/ifcfg-ens33   #网卡配置文件路径,常见有ens33或ens35

image.png 文件配置结束后,我们重启网卡服务并查看我们是否有获取到地址池的IP地址:

systemctl restart network && ifconfig  #重启网卡服务并查看IP地址

image.png

3.3 win10客户端网卡配置

进入网络连接设置,右键网卡属性

image.png 设置网卡属性 image.png 重启网卡后,查看结果 image.png 到这里我们的dhcp服务就已经生效

4.拓展:如何给固定的客户机分配固定的IP地址?

我们重新进入服务端dhcp的配置文件中

image.png 配置完成后,重启服务端dhcpd服务,并进入客户端,重启网卡服务并查看IP地址获取是否有改变:

image.png