一、配置DHCP服务器

1、安装DHCP服务器软件

[root@centos01 ~]# mount /dev/cdrom /mnt/  
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*  
[root@centos01 ~]# yum -y install dhcp     

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

[root@centos01 ~]# vim /etc/dhcp/dhcpd.conf                                                                                      
:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example   

ddns-update-style none;      
option domain-name "benet.com";   
option domain-name-servers 202.106.0.10, 202.106.0.20;  
      

default-lease-time 600;       
max-lease-time 7200;          

1)/etc/dhcp/dhcpd.conf文件的配置构成

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

  • 声明:用来描述dhcpd服务器中对网络布局的划分,是网络设置的逻辑范围。常见的声明是subnet、host,其中subnet声明用来约束一个网段。host声明用来约束一台特定主机。
  • 参数:由配置关键字和对应的值组成,总是以“;”(分号)结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。

  • 选项:由“option”引导,后面跟具体的配置关键字和对应的值,也是以“;”结束,用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码、DNS服务器地址等)。

2)确定dhcpd服务的全局配置

为了使配置文件的结构更加清晰、全局配置通常会放在配置文件dhcod.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 202.106.0.20”。需要设置多个DNS服务器地址时,以逗号进行分隔。

3)确定subnet网段声明

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

[root@centos01 ~]# vim /etc/dhcp/dhcpd.conf       
subnet 192.168.100.0 netmask 255.255.255.0 {   
  range 192.168.100.100 192.168.100.200;  
  option routers 192.168.100.254;      
}

4)确定host主机声明

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

host声明通过host关键字指定需要使用保留地址的客户机名称,并使用“hardware ethernet”参数指定该主机的MAC地址,使用“fixed-address”参数指定保留给该主机的IP地址。例如,若要为打印机prtsvr(MAC地址为00:0C:29:0D:BA:6B)分配固定的IP地址192.168.100.101,可以修改dhcpd.conf配置文件,参考以下内容在网段声明内添加host主机声明。

C:\Users\Administrator>getmac

物理地址            传输名称
=================== =======================================================
00-0C-29-0D-BA-6B   \Device\Tcpip_{92E3F48B-40F0-4A0D-9604-6386AAAE3233}        

[root@centos01 ~]# vim /etc/dhcp/dhcpd.conf
host win7 { 
  hardware ethernet 00:0C:29:0D:BA:6B; 
  fixed-address 192.168.100.101;    
}

3、启动dhcpd服务

在启动dhcpd服务之前,应确认提供DHCP服务器的网络接口具有静态指定的固定IP地址,并且至少有一个网络接口的IP地址与DHCP服务器中的一个subnet网段相对应,否则将无法正常启动dhcpd服务。例如,DHCP服务器的IP地址为192.168.100.10,用于为网段192。168.100.0/24内的其他客户机提供自动分配地址服务。

安装dhcp软件包以后,对应的系统服务脚本位于/usr/lib/systemd/system/dhcpd.service,可以使用systemd服务进行控制。例如,执行以下操作可以启动dhcpd服务,并检查UDP的67端口是否在监听,以确认DHCP服务器是否正常。

[root@centos01 ~]# systemctl start dhcpd    
[root@centos01 ~]# systemctl enable dhcpd 
[root@centos01 ~]# netstat -anptu | grep 67  
udp        0      0 0.0.0.0:67              0.0.0.0:*                           2102/dhcpd          
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1064/dnsmasq        

注意:需要关闭、重启dhcpd服务时,只要将上述操作命令中的“start”改为“stop”或“restart”即可。

二、使用DHCP客户端

1、windows客户端

CentOS 7安装DHCP服务_第1张图片

ipconfig /renew     
ipconfig /release   
tracert IP地址       
route print             

2、Linux客户端

在Linux客户机中可以设置使用DHCP的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加“BOOTPROTO=dhcp”配置行,并重新加载配置文件或者重新启动network服务即可。例如,执行以下操作可修改网卡配置文件,并重新加载配置以通过DHCP方式自动获取地址:

[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=ens32
DEVICE=ens32
ONBOOT=yes
[root@centos02 ~]# ifdown ens32 ; ifup ens32
[root@centos02 ~]# systemctl restart network

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

[root@centos02 ~]# dhclient -d ens32
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/

Listening on LPF/ens32/00:0c:29:97:5c:9f
Sending on   LPF/ens32/00:0c:29:97:5c:9f
Sending on   Socket/fallback
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 4 (xid=0x5364e17f)
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 6 (xid=0x5364e17f)
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 14 (xid=0x5364e17f)         
DHCPREQUEST on ens32 to 255.255.255.255 port 67 (xid=0x5364e17f)       
DHCPOFFER from 192.168.100.10         
DHCPACK from 192.168.100.10 (xid=0x5364e17f)   
bound to 192.168.100.102 -- renewal in 229 seconds.
............                      

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

[root@centos02 ~]# dhclient -r ens32

CentOS 7安装DHCP服务_第2张图片

———————— 本文至此结束,感谢阅读 ————————