一、配置DHCP服务器
1、安装DHCP服务器软件
[[email protected] ~]# mount /dev/cdrom /mnt/ <!--挂载操作系统光盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ~]# rm -rf /etc/yum.repos.d/CentOS-* <!--删除系统自动yum源-->
[[email protected] ~]# yum -y install dhcp <!--安装DHCP服务 -->
2、建立主配置文件dhcpd.conf
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf <!--编辑主配置文件-->
:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example <!--读取默认配置文件-->
ddns-update-style none; <!--禁用DNS动态更新-->
option domain-name "benet.com"; <!--指定默认搜索域-->
option domain-name-servers 202.106.0.10, 202.106.0.20;
<!--指定DNS服务器地址-->
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网段声明:
[[email protected] ~]# 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} <!--客户端获取MAC地址-->
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf
host win7 {
hardware ethernet 00:0C:29:0D:BA:6B; <!--客户机的MAC地址-->
fixed-address 192.168.100.101; <!--分配给客户机的IP地址-->
}
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服务器是否正常。
[[email protected] ~]# systemctl start dhcpd <!--启动dhcp服务-->
[[email protected] ~]# systemctl enable dhcpd <!--设置服务开机自动启动-->
[[email protected] ~]# netstat -anptu | grep 67 <!--监听DHCP服务端口号-->
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客户端
ipconfig /renew <!--可以为主机重新获取新的IP地址-->
ipconfig /release <!--释放IP地址-->
tracert IP地址 <!--可以测试从当前主机到目的主机经过的网络节点-->
route print <!--查看路由表-->
2、Linux客户端
在Linux客户机中可以设置使用DHCP的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加“BOOTPROTO=dhcp”配置行,并重新加载配置文件或者重新启动network服务即可。例如,执行以下操作可修改网卡配置文件,并重新加载配置以通过DHCP方式自动获取地址:
[[email protected] ~]# 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
[[email protected] ~]# ifdown ens32 ; ifup ens32
[[email protected] ~]# systemctl restart network
在Linux客户机中,还可以使用dhclient工具来测试DHCP服务器。若直接执行“dhclient”命令,则dhclient将尝试为除回环接口lo以外的所有网络接口通过DHCP方式申请新的地址,然后自动转入后台继续运行。当然,测试时可以指定一个具体的网络接口,并结合“-d”选项使其在前台运行,测试完毕后按Ctrl+C组合键终止。例如,执行“dhclient -d ens32”命令后,可以为网卡ens32自动获取新的IP地址,并显示获取过程。
[[email protected] ~]# 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) <!--DHCP发现-->
DHCPREQUEST on ens32 to 255.255.255.255 port 67 (xid=0x5364e17f) <!--DHCP请求-->
DHCPOFFER from 192.168.100.10 <!--DHCP提供-->
DHCPACK from 192.168.100.10 (xid=0x5364e17f) <!--DHCP确认-->
bound to 192.168.100.102 -- renewal in 229 seconds.
............ <!--按Ctrl+C组合键终止-->
客户端需要通过dhclient命令释放获取的IP租约时,可以结合“-r”选项。例如,执行以下的“dhclient -r ens32”将会释放之前为网卡ens32获取的IP租约。此时再通过执行“ifconfig ens32”命令就看不到分配的IP地址了。
[[email protected] ~]# dhclient -r ens32
———————— 本文至此结束,感谢阅读 ————————
原文地址:https://blog.51cto.com/14156658/2472156