DHCP 服务器基础配置
介绍
DHCP (Dynamic Host Configuration Protocol)是一种网络协议,它允许网络设备自动获取IP地址、网关地址、DNS服务器地址等配置信息,从而简化了网络管理和配置。DHCP服务器负责为客户端分配IP地址,并提供其他必要的配置信息。
ISC DHCP服务器(Internet Systems Consortium DHCP Server)是一个开源的DHCP实现,被广泛应用于Linux和Unix系统中。它提供了以下主要功能:
- IP地址分配:DHCP服务器可以自动从可用的IP地址池中为客户端分配IP地址,减轻了手动配置的负担。
- 租约管理:DHCP服务器会为每个客户端分配一个IP地址租约,并管理租约的状态和过期时间。
配置参数发送:DHCP服务器除了分配IP地址,还可以将网关、DNS服务器、子网掩码等其他配置参数发送给客户端。 - 高度可配置:ISC DHCP服务器的配置文件支持丰富的语法,可以根据不同的网络需求进行定制。
- 高可用性:ISC DHCP服务器支持主备模式,可以实现DHCP服务的高可用性。
总之,ISC DHCP服务器是一个功能强大、配置灵活的DHCP实现,广泛应用于企业和运营商的网络环境中。它大大简化了网络设备的IP地址分配和配置管理工作。
设备环境
-
系统:CentOS 8.3
-
网段:192.168.1.0/24
安装DHCP服务端
yum install dhcp-server -y
复制配置
修改/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
需要你手动复制过来覆盖掉这个文件
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
此时系统会提示你是否覆盖掉这个文件
cp:是否覆盖'/etc/dhcp/dhcpd.conf'?
只需要打一个y然后回车就完事了
你可以跳过这步然后手打配置
配置服务端
普通DHCP
找到以下配置
subnet 10.5.5.0 netmask 255.255.255.224 { # 网段以及子网掩码
range 10.5.5.26 10.5.5.30; # 地址池
option domain-name-servers ns1.internal.example.org; # DNS 服务器
option domain-name "internal.example.org"; # 域名
option routers 10.5.5.1; # 网关
option broadcast-address 10.5.5.31; # 广播地址
default-lease-time 600; # 租约时间
max-lease-time 7200; # 最大租约时间
}
subnet 这行修改网段和子网掩码,例如
- subnet 192.168.1.0 netmask 255.255.255.0 {
注意是填写网段不是具体的IP
range
是地址池,也就是分发的范围
比如我要服务器分发200到210这个范围,例如
- range 192.168.1.200 192.168.1.210;
注意末尾的分号
option domain-name-servers
这行是分发下去的DNS服务器
例如分发192.168.1.1
为DNS服务器,例
- option domain-name-servers 192.168.1.1;
这也可以写域名的DNS服务器,例
- option domain-name-server dns.jnds.com;
option domain-name
是分发的域名
比如我要下发jnds.com
这么一个域名
- option domain-name “jnds.com”;
option routers
是默认网关
比如下发192.168.1.254
为网关
- option routers 192.168.1.254;
option broadcast-address
是广播地址
通常来说直接注释掉就行了
如果你需要修改那么就修改为你需要的广播地址,比如
- option broadcast-address 192.168.1.255;
default-lease-time
是租约时间,看你需要修改到多少
比如172800秒
- default-lease-time 172800;
注意这是以秒为单位的
max-lease-time
是最大租约时间,同样看你需要多少
不能少于default-lease-time
的时间
比如我修改为259200秒
- default-lease-time 259200;
注意秒为单位
整体修改完后就应该这个样子
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.200 192.168.1.210;
option domain-name-servers 192.168.1.1;
option domain-name "jnds.com";
option routers 192.168.1.254;
# option broadcast-address 10.5.5.31;
default-lease-time 172800;
max-lease-time 259200;
}
只是差不多这样,到时候你配置出来的不可能和我的一模一样
注意别忘了每一行最后的分号
保留
同样还是这个文件
找到以下配置
host fantasia { # 保留名称
hardware ethernet 08:00:07:26:c0:a5; # 设备MAC地址
fixed-address fantasia.example.com; # 静态分配的IP
}
保留的主机名按需求修改就好
设备的MAC地址得按实际填写
比如00:0C:29:78:02:9A
就修改为
- hardware ethernet 00:0C:29:78:02:9A;
fixed-address
是保留下来的静态分配IP
比如静态分配192.168.1.10
这么一个IP
- fixed-address 192.168.1.10;
修改为
host fantasia {
hardware ethernet 00:0C:29:78:02:9A;
fixed-address 192.168.1.10;
}
超级作用域
DHCP 超级作用域(DHCP Super-scope)是 ISC DHCP 服务器的一个重要功能,用于管理大型网络环境中的 DHCP 配置。
超级作用域的主要作用如下:
- 跨子网分配 IP 地址
在复杂的网络环境中,可能需要在多个不同的子网中分配 IP 地址。超级作用域可以跨越多个子网,统一管理 IP 地址池和 DHCP 配置。 - 支持 VLAN 和多个网卡
超级作用域可以为不同的 VLAN 或多个网络接口分配不同的 IP 地址池和配置参数,提高了灵活性。 - 简化管理
通过在超级作用域下定义共享的配置参数,可以大大简化 DHCP 服务的管理和维护工作。 - 高可用性
超级作用域支持主备模式,可以实现 DHCP 服务的高可用性,提高网络的可靠性。
配置超级作用域需要在 DHCP 服务器的配置文件中进行相关设置,包括定义超级作用域、关联子网、配置 IP 地址池等。超级作用域的使用对于管理大型复杂网络环境的 DHCP 服务非常有帮助。
配置
修改/etc/dhcp/dhcpd.conf
到这个配置文件的最下面
找到以下配置
shared-network 224-29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr-224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
option routers rtr-29.example.org;
}
pool {
allow members of "foo";
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of "foo";
range 10.0.29.10 10.0.29.230;
}
}
把里面的pool的配置删干净
就像这样
shared-network 224-29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr-224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
option routers rtr-29.example.org;
}
}
修改shared-network 224-29 {
中的224-29
这个是超级作用域的名字,比如
- shared-network mydhcpdomain {
subnet设置不多说,就像上面那样配置
只不过你需要手动添加range
等相关的设置
作用域内必须包括服务端本机所在的网段的配置
不写在作用域内也必须在其他写出来
配置完后就像这样
shared-network mydhcpdomain {
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.254;
}
subnet 192.168.30.0 netmask 255.255.255.0 {
option routers 192.168.30.254;
range 192.168.30.200 192.168.30.210;
option domain-name-servers 192.168.30.1;
option domain-name "jnds.com";
default-lease-time 172800;
max-lease-time 259200;
}
}
把上面的非超级作用域配置使用
shared-network
包起来其实也可以的,但是不做示例别忘了每一行最后的分号