DHCP简介
DHCP协议是一种基于UDP协议且仅限于局域网内部使用的网络协议,主要用途是为局域网内部的设备或网络供应商自动分配IP地址等参数。
动态解析配置协议(DHCP): 用于自动管理局域网内的主机IP地址、子网掩码、网关地址、DNS地址参数等
优点: 提升IP地址的利用率,提高配置的效率,并降低管理与维护成本
DHCP相关术语
- 作用域: 一个完整的IP地址端,DHCP协议根据作用域来管理网络的分布、分配IP地址及其他配置参数
- 超级作用域: 用于管理处于同一个物理网络中的多个逻辑子网段,超级作用域中包含了可以同一管理的作用域列表
- 排除范围: 把作用域中的某些IP地址排除,确保这些IP地址不会分配给DHCP客户端。比如说某些设备需要使用固定的IP地址,这时就要将这个IP地址加入到排除范围之内,防止被DHCP服务器自动分配给其他客户端。
- 地址池: 在定义了DHCP的作用域并应用了排除范围后,剩余的用来动态分配给DHCP客户端的IP地址范围
- 租约: DHCP客户端能够使用动态分配的IP地址的时间
- 预约: 保证网络中的特定设备总是获取到相同的IP地址
DHCP部署
安装DHCP
[root@MyCentOS ~]# yum install dhcp-server.x86_64
DHCP的配置文件在/etc/dhcp/dhcp.conf
路径下,查看DHCP配置文件如下所示
[root@MyCentOS ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
如注释信息中提醒的一样,在/usr/share/doc/dhcp-server/dhcpd.conf.example
路径下有DHCP配置文件的模板。可以参照DHCP配置模板对DHCP服务器进行配置。
标准配置文件中包括全局配置参数、子网网段声明、地址配置选项以及地址配置参数。
- 全局配置参数: 定义DHCP服务程序的整体运行参数
- 子网网段声明: 用于配置整个子网段的地址属性
----------------------------------------------dhcpd服务程序配置文件常用参数---------------------------------------------
参数 | 作用 |
---|---|
ddns-update-style [类型] | 定义DNS服务动态更新类型,类型包括none(不支持动态更新) 、interim(互动更新模式) 、与ad-hoc(特殊更新模式) |
[allow | ignore ] client-update | 允许/忽略客户端更新DNS记录 |
dafault-lease-time [21600] | 默认超时时间 |
max-lease-time [43200] | 最大超时时间 |
option domain-name-servers [8.8.8.8] | 定义DNS服务器地址 |
option domain-name [“domain.org”] | 定义DNS域名 |
range | 定义用于分配的IP地址池 |
option subnet-mask | 定义客户端的子网掩码 |
option routers | 定义客户端的网关地址 |
broadcase-address [广播地址] | 定义客户端的广播地址 |
ntp-server [IP地址] | 定义客户端的网络时间服务器(NTP) |
nis-servers [IP地址] | 定义客户端的NIS域服务器地址 |
Hardware [网卡物理地址] | 指定网卡接口的类型域MAC地址 |
server-name [主机名] | 向DHCP客户端通知DHCP服务器的主机名 |
fixed-address [IP地址] | 将某个固定的IP地址分配给指定主机 |
time-offset [偏移误差] | 指定客户端与格林尼治时间的偏移表 |
自动分配IP地址
了解以上DHCP配置文件常用参数以后,就可以参照DHCP配置文件模板来配置DHCP服务器。
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
dns-update-style none;
ignore client-updates;
subnet 192.168.127.0 netmask 255.255.255.0{
range 192.168.127.10 192.168.127.110
option subnet-mask 255.255.255.0;
option routers 192.168.127.0;
option domain-name "chrisgoudan.com";
option domain-name-servers 192.168.127.200;
default-lease-time 21600;
max-lease-time 43200;
}
设备绑定固定IP
DHCP中设备通过预约,确保设备再局域网中总是获取到固定的IP地址。因为IP地址要绑定特定的设备,所以我们要使用到MAC地址。 MAC地址是设备的唯一标识,我们通过在DHCP配置文件中将IP地址与MAC地址绑定,即可完成设备绑定固定IP。
- 通过
nmcli
命令查看当前的MAC地址,MAC地址为ether
参数后面的值
格式:
host 主机名称{
hardware ethernet 该主机的MAC地址;
fixed-address 指定的IP地址;
}
在linux系统中,MAC地址是用:
作为分隔符,在windows是用-
做分隔符。
将以上格式的配置信息添加到DHCP配置文件中,重启服务器即可。
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
dns-update-style none;
ignore client-updates;
subnet 192.168.127.0 netmask 255.255.255.0{
range 192.168.127.10 192.168.127.110
option subnet-mask 255.255.255.0;
option routers 192.168.127.0;
option domain-name "chrisgoudan.com";
option domain-name-servers 192.168.127.200;
default-lease-time 21600;
max-lease-time 43200;
host 主机名称{
hardware ethernet 该主机的MAC地址;
fixed-address 指定的IP地址;
}
}
每次配置完服务之后,一定要记得重启相关服务,并将该服务添加到开机自启中。
如果配置不成功,查看出错信息,一般都是防火墙和SELinux安全上下文没有放行该服务。