DHCP原理与配置

DHCP的工作原理

当局域网络中有大量的主机时,如果逐个为每一台主机手动配置IP地址,默认网关,DNS服务器地址等网络参数,显然是一个费力也未必讨好的办法。而DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器的应用,正好可以解决这一问题。

1.了解DHCP服务

DHCP是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议。DHCP服务避免了因为手动设置IP地址所产生的错误,同时也避免了把一个地址分配给多个工作站所造成的地址冲突。DHCP提供了安全,可靠且简单的TCP/IP网络设置,降低了配置IP地址的负担。

 2.使用DHCP的好处

  1. 减少管理员的工作量
  2. 避免输入错误的可能
  3. 避免IP地址冲突
  4. 当网络更改IP地址段时,不需要再重新配置每个用户的IP地址
  5. 提高了IP地址的利用率
  6. 方便用户端的配置

 3.DHCP的分配方式

  1. 自动分配:当DHCP客户机第一次成功的从DHCP服务器的地址池中获取到一个IP地址后,就永久的使用这个IP地址。
  2. 手动分配:由DHCP服务器管理员专门指定的IP地址。
  3. 动态分配:当DHCP的客户机第一次从DHCP服务器获取IP地址后,并非永久地使用该地址,而是在每次使用完成后,DHCP客户机就会释放这个IP地址,供其他客户机使用。

4.DHCP的租约过程  

什么是租约过程?

客户机从DHCP服务器获取IP地址的过程称之为DHCP租约过程,分为四个步骤:

  1. 客户端在网络中搜索服务器
  2. 服务器向客户端响应服务
  3. 客户端向服务器发出服务请求
  4. 服务器向客户端提供服务

 (1)请求IP地址

当一个 DHCP 客户机启动时,客户机还没有 IP 地址,所以客户机要通过 DHCP 获取 一个合法的地址。此时 DHCP 客户机以广播方式发送 DHCP Discover 发现信息来寻找 DHCP 服务器。

 

 (2)服务器响应

当 DHCP 服务器接收到来自客户机请求 IP 地址的信息时,它就在自己的 IP 地址池中查找是否有合法的 IP 地址提供给客户机。如果有DHCP 服务器就将此 IP 地址做上标记, 加入到 DHCP Offer 的消息中,然后 DHCP 服务器就广播一则 DHCP Offer消息。

(3)客户机选择IP地址

DHCP客户机从接收到的第一个DHCP Offer信息中提取IP地址,之后DHCP客户机会向服务器发送DHCP  Request信息;发出IP地址的DHCP服务器将保留该地址,这一该地址就不能再被分配给别的DHCP客户机。 

(4) 服务器确认租约

DHCP服务器接收到DHCP Request信息后,以DHCP ACK信息的形式向客户机广播成功确认,该信息包含有IP地址的有效租约和其他可配置的信息;当客户机收到DHCP ACK消息时,它就配置了IP地址,完成TCP/IP的初始化。

(5)重新登录

DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配IP地址的DHCP Request请求信息 

(6)更新登录

当DHCP服务器向客户机出租的IP地址租期到达50%时,就需要更新租约,客户机直接向提供租约的服务器发送DHCP Request包,要求更新现在有的地址租约。DHCP服务器如果继续出租该IP地址,则会发送DHCP ACK确认;如果DHCP服务器不继续出租该IP地址,则会发送HDCP NAK拒绝继续出租。在DHCP的客户机在地址失效后,要重新以广播的方式发送HDCP Discover发现信息来寻找DHCP服务器。

使用 DHCP 动态配置主机地址

使用 DHCP 服务可以为大量客户机自动分配地址并提供集中管理,能够减轻管理和维

护成本、提高网络配置效率。其中 DHCP 服务可分配的地址信息主要包括:

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

配置DHCP服务器

1.安装DHCP服务器软件

先查看是否已经安装dhcp软件包

rpm -q dhcp     #查看系统中是否已经安装的dhcp软件包

安装DHCP软件包,安装完成后系统会自动复制相关程序,并添加名为dhcpd的系统服务

yum -y install dhcp       #CentOS系统翻盘中有的 dhcp-4.2.5-47.el7.centos.x86_64.rpm 软件包

rpm -ivh  /media/cdrom/Packages/dhcp-4.2.5-47.el7.centos.x86_64.rpm  #因为没有相关依赖所以可以用rpm安装

 2.建立主配置文件dhcpd.conf

dchpd服务的主配置文件是/etc/dhcp/dhcpd.conf,但是该文件中默认不包含任何有效配置,需要管理员手动配置。打开此文件,文件内会提供参考文件的位置;我们可以使用cp命令将参考文件内容移动到/etc/dhcp/dhcpd.conf内,再此基础上进行修改

[root@localhost ~]$ cat /etc/dhcp/dhcpd.conf
[root@localhost~]$ cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
1./etc/dhcp/shcpd.conf文件的配置结构

在主配置文件 dhcpd.conf 中,可以使用声明、参数、选项这三种类型的配置,各自的作用和表现形式如下所述:

        1.声明(Declarations)

subnet:用来描述 DHCP 服务器中对网络布局的划分,是网络设置的逻辑范围。常用于指定一个特定的子网范围。

subnet 192.168.1.0 netmask 255.255.255.0 {
 ... 
}

host:用来约束一台特定的主机,通常用于指定静态分配的 IP 地址。

host printer { 
hardware ethernet 00:11:22:33:44:55;
 fixed-address 192.168.1.50; 
}
        2.参数(Parameters)

由配置关键字和对应的值组成,总是以分号 ; 结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性。

例如,设置默认租约时间和最大租约时间:

default-lease-time 600;
 max-lease-time 7200;
        3.选项(Options)

由 option 引导,后面跟具体的配置关键字和对应的值,也是以分号 ; 结束。

用于指定分配给客户机的各种地址参数,如默认网关地址、子网掩码、DNS 服务器地址等。

例如,设置默认网关和DNS服务器:

option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 114.114.114.114;
 2.dhcpd服务的全局配置

为了使配置文件的结构更加清晰,全局配置通常会放在配置文件dhcpd.conf的开头,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下:

  • ddns-update-style,动态DNS更新模式。用来设置与DHCP服务相关联的DNS数据动态更新模式。实际的DHCP应用中很少用到该参数,将值设为“none”即可。
  • default-lease-time,默认租约时间。单位为秒,表示客户端可以从DHCP服务器租用某个IP地址的默认时间。
  • max-lease-time,最大租约时间,单位为秒,表示允许DHCP客户端请求的最大租约时间,当客户端未请求租约的时间时,服务器将采用默认租约时间。
  • option domain-name,默认搜索区域。为客户机指定解析主机名的默认搜索域,改配置选项将体现在客户机的/etc/resolv.conf配置文件中, 如“search benet.com”。
  • option domain-name-servers,DNS 服务器地址。为客户机指定解析域名时使用的 DNS 服务器地址,该配置选项同样将体现在客户机的/etc/resolv.conf配置文件中,如“nameserver ...”。需设置多个DNS服务器地址时,以逗号进行分割。
3.subnet网段声明

一台DHCP 服务器可以为多个网段提供服务,因此 subnet 网段声明必须有而且可以有 多个。例如,若要 DHCP 服务器为 192.168.4.0/24 网段提供服务,用于自动分配的 IP 地址 范围为192.168.4.128~192.168.4.254,为客户机指定默认网关地址为 192.168.4.1,则可 以修改 dhcpd.conf 配置文件,参考以下内容调整 subnet 网段声明

[root@localhost ~]$ vi /etc/dhcp/dhcpd.conf

subnet 192.168.4.0 netmask 255.255.255.0 {     #声明网段地址
range 192.168.4.128 192.168.4.254;             #设置地址池,可以有多个
option routers 192.168.4.1;                    #指定默认网关地址
}
4.host主机声明

host声明设置单个主机的网络属性,通常用于网络打印机或者个别服务器分配固定的IP地址(保留地址)这些主机的共同特点要求每次获取的IP地址相同,以确保服务的稳定性。

host name{
    hardware ethernet 物理地址;
    fixed-address IP地址

}

 3.启动dhcpd服务

在启动 DHCP 服务器服务(dhcpd)之前,需要确保提供 DHCP 服务的网络接口(通常是服务器上的某个网卡)已经配置了一个静态指定的固定 IP 地址,并且至少有一个网络接口的 IP 地址与 DHCP 服务器配置中的一个子网(subnet)相匹配。如果不满足这些条件,dhcpd 服务将无法正常启动。

让我们来解释一下例子中的具体情况:

  • DHCP 服务器的 IP 地址为 192.168.4.11,这是 DHCP 服务器自身的 IP 地址。
  • DHCP 服务器配置了一个 subnet,即子网 192.168.4.0/24,用于为该网段内的其他客户机提供自动分配 IP 地址的服务。这意味着 DHCP 服务器将为 192.168.4.0/24 子网内的设备分配 IP 地址。

因此,在启动 dhcpd 服务之前,需要确保 DHCP 服务器所在的网络接口(网卡)已经配置了一个静态指定的固定 IP 地址,并且该 IP 地址属于子网 192.168.4.0/24,以确保 DHCP 服务器可以在该子网上提供 IP 地址分配服务。

      使用systemctl打开dhcpd服务

[root@localhost ~]$ systemctl start dhcpd
[root@localhost ~]$ netstat -anpu | grep ":67" 
udp 0 0 0.0.0.0:67 0.0.0.0:* 5684/dhcpd
需要关闭时start改为stop,重启改为restart;如果重启失败,检测日志文件/var/log/messages末尾的错误信息,根据提示进行排错。

使用DHCP  客户端

        当局域网内有可用的 DHCP 服务器时,在 Linux 客户机中可以设置使用 DHCP 的方式
获取地址。只需要编辑对应网卡的配置文件,修改或添加 “BOOTPROTO=dhcp” 配置行,并
重新加载配置文件或者重新启动 network 服务即可。例如,执行以下操作可修改网卡配置文
件,并重新加载配置以通过 DHCP 方式自动获取地址。
[root@localhost ~]$ vi /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33        #网络接口
ONBOOT=yes          #系统启动自动激活该接口
BOOTPROTO=dhcp      #通过DHCP方式获取地址
[root@localhost ~]$ ifdown ens33 ; ifup ens33   #关闭ens33网络接口,开启ens33网络接口

        在Linux客户机中,还可以使用dhclient工具来测试DHCP服务器。若直接执行“dhclient”命令,则dhclient将尝试为除回环接口lo以外的所有网络接口通过DHCP方法申请新的地址,然后自动转入后台继续运行。当然,测试时可以指定一个具体的网络接口,并结合“-d” 选项使其在前台运行,测试完毕后Ctrl+C组合键终止。例如执行“dhclient -d ens33”命令后,可以为网卡ens33自动获取IP地址,并显示获取信息。

[root@localhost ~]$ dhclient -d ens33
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
 All rights reserved. 
For info, please visit https://www.isc.org/software/dhcp/

         客户端需要通过 dhclient 命令释放获取的 IP 租约时,可以结合“-r”选项。例如,执行以 下的“dhclient -r ens33”将会释放之前为网卡 ens33 获取的 IP 租约。此时再通过执行“ifconfig ens33”命令就看不到分配的 IP 地址了

[root@localhost ~]$ dhclient -r ens33

         在服务器端可以通过查看租约文件/var/lib/dhcpd/dhcpd.leases来了解服务器的 IP 地址 分配情况,具体操作如下。该租约文件中记录了分配出去的每个 IP 地址信息(租约记录), 包括 IP 地址、客户端的 MAC 地址、租用的起始时间和结束时间等

[root@localhost ~]$ less /var/lib/dhcpd/dhcpd.leases 
…… #省略部分内容
lease 192.168.4.131 {
starts 4 2017/05/11 17:27:15;
ends 4 2017/05/11 23:27:15;
cltt 4 2017/05/11 17:27:15;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:3b:ff:76;
}
补充拓展

DHCP服务器中/etc/resolv.conf 是用于配置系统 DNS(Domain Name System)解析器的文件。DNS 解析器用于将域名解析为相应的 IP 地址。

通常,/etc/resolv.conf 文件包含以下类型的信息:

  1. Nameserver(名称服务器):指定用于解析域名的 DNS 服务器的 IP 地址。通常会有多个名称服务器列出,以备份或负载均衡的目的。例如:

    nameserver 8.8.8.8 
    nameserver 8.8.4.4
  2. Search Domain(搜索域):指定用于主机名解析的默认域名搜索列表。如果在主机名解析时未指定完整的域名,系统将使用搜索域列表来尝试匹配主机名。例如:

    search example.com
  3. Domain(域):指定默认域名。该域名用于将主机名转换为完全限定域名(FQDN)。例如:

    domain example.com
  4. Options(选项):指定其他 DNS 解析器选项,例如超时时间和重试次数等。例如:

    options timeout:2

在配置 /etc/resolv.conf 文件时,确保提供正确的 DNS 服务器地址和相关的配置选项,以确保系统能够正常进行域名解析和访问互联网。

  • 52
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值