一、DHCP协议简介

  DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
  DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:

  1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
  2. DHCP应当可以给用户分配永久固定的IP地址。
  3. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
  4. DHCP服务器应当向现有的BOOTP客户端提供服务。

  DHCP有三种机制分配IP地址:

  1. 自动分配方式(Automatic Allocation)
    DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
  2. 动态分配方式(Dynamic Allocation)
    DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
  3. 手工分配方式(Manual Allocation)
    客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

二、博文环境说明

  在局域网中一般使用交换机或者网关设备作为DHCP服务器,事实上我们可以在服务器上部署DHCP服务,交换机作为DHCP服务中继器。本博文实验环境为在centos7环境下搭建DHCP服务器。

三、DHCP服务器搭建步骤

1、查询是否安装dhcp包

#由此可见dhcpclient服务是默认安装的。
[root@s145 ~]# rpm -qa |grep dhcp
dhcp-libs-4.2.5-68.el7.centos.1.x86_64
dhcp-common-4.2.5-68.el7.centos.1.x86_64

2、安装DHCP服务

[root@s145 ~]# yum install -y dhcp

Installed:
dhcp.x86_64 12:4.2.5-83.el7.centos.1

Dependency Installed:
bind-export-libs.x86_64 32:9.11.4-26.P2.el7_9.8

Dependency Updated:
dhclient.x86_64 12:4.2.5-83.el7.centos.1 dhcp-common.x86_64 12:4.2.5-83.el7.centos.1 dhcp-libs.x86_64 12:4.2.5-83.el7.centos.1

Complete!
[root@s145 ~]# rpm -qa |grep dhcp
dhcp-libs-4.2.5-83.el7.centos.1.x86_64
dhcp-common-4.2.5-83.el7.centos.1.x86_64
dhcp-4.2.5-83.el7.centos.1.x86_64

3、编辑dhcpd.conf配置文件

[root@s145 ~]# cat /etc/dhcp/dhcpd.conf

#配置192.168.0.0地址池
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.110;
option domain-name-servers 211.142.211.124,114.114.114.114;
option routers 192.168.0.1;
default-lease-time 600;
max-lease-time 7200;
}

4、启动DHCP服务

#需要关闭服务器防火墙或者防火墙放行dhcp服务
[root@s145 ~]# systemctl stop firewalld
[root@s145 ~]# systemctl start dhcpd

5、查看dhcp服务状态

[root@s145 ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2021-12-30 15:09:43 CST; 18s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Main PID: 8635 (dhcpd)
Status: “Dispatching packets…”
CGroup: /system.slice/dhcpd.service
└─8635 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid

Dec 30 15:09:43 s145 dhcpd[8635]: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Dec 30 15:09:43 s145 dhcpd[8635]: Wrote 0 leases to leases file.
Dec 30 15:09:43 s145 dhcpd[8635]: Listening on LPF/eth0/e2:fc:1d:22:39:cc/192.168.0.0/24
Dec 30 15:09:43 s145 dhcpd[8635]: Sending on LPF/eth0/e2:fc:1d:22:39:cc/192.168.0.0/24
Dec 30 15:09:43 s145 dhcpd[8635]: Sending on Socket/fallback/fallback-net
Dec 30 15:09:43 s145 systemd[1]: Started DHCPv4 Server Daemon.
Dec 30 15:09:49 s145 dhcpd[8635]: DHCPDISCOVER from fa:45:45:bc:46:26 via eth0
Dec 30 15:09:50 s145 dhcpd[8635]: DHCPOFFER on 192.168.0.100 to fa:45:45:bc:46:26 via eth0
Dec 30 15:09:50 s145 dhcpd[8635]: DHCPREQUEST for 192.168.0.100 (192.168.0.145) from fa:45:45:bc:46:26 via eth0
Dec 30 15:09:50 s145 dhcpd[8635]: DHCPACK on 192.168.0.100 to fa:45:45:bc:46:26 via eth0

6、安装一个虚拟机配置网卡为dhcp

在这里插入图片描述

7、重启网卡查看获取的地址

#可以看到虚拟机通过dhcp获取到了IP地址192.168.0.100。
在这里插入图片描述在这里插入图片描述

8、在dhcp服务器查看地址分配记录

[root@s145 ~]# cat /var/lib/dhcpd/dhcpd.leases在这里插入图片描述

9、绑定mac和IP测试

修改dhcp服务器将网卡fa:45:45:bc:46:26地址绑定IP地址192.168.0.111
[root@s145 ~]# vim /etc/dhcp/dhcpd.conf 。

#添加如下内容,绑定mac和IP
host test1{
hardware ethernet fa:45:45:bc:46:26;
fixed-address 192.168.0.111;
}

10、重启dhcp服务

[root@s145 ~]# systemctl restart dhcpd

11、虚拟机重启网卡

#虚拟机重启网卡后IP地址变为192.168.0.111
在这里插入图片描述

四、dhcpd.conf配置文件说明

#以/usr/share/doc/dhcp*/dhcpd.conf.example中的示例说明:
subnet 10.5.5.0 netmask 255.255.255.224 { #定义一个dhcp地址池,设置网段和掩码
range 10.5.5.26 10.5.5.30; #地址池动态分配范围
option domain-name-servers ns1.internal.example.org; #定义dns地址
option domain-name “internal.example.org”; #定义dns主机名
option routers 10.5.5.1; #定义地址池网关
option broadcast-address 10.5.5.31; #设置广播地址
default-lease-time 600; #定义默认dhcp租期
max-lease-time 7200; #定义最大租期
}
#绑定mac和IP配置
host fantasia { #自定义一个主机
hardware ethernet 08:00:07:26:c0:a5; #设置主机mac地址
fixed-address fantasia.fugue.com; #设置mac地址绑定的IP地址
}

五、其他

  如果使用服务器搭建DHCP服务器,需要在交换机上配置dhcp中继。dhcp服务器可以根据地址规划配置多个地址池。

  • H3C交换机配置DHCP中继配置:
    #dhcp select relay
    #ip relay address 192.168.0.145
  • 华为交换机DHCP中继配置:
    #dhcp select relay
    #dhcp relay server-ip 192.168.0.145
  • 思科交换机DHCP中继配置
    #ip helper-address 192.168.0.145
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐