1.DHCP介绍
2.DHCP安装过程
2.1.安装前准备
(1)关闭防火墙
1.systemctl disable --now firewalld 2.setenforce 0 3.vim /etc/selinux/config (SELINUX=disabled)
(2)查看是否已安装dhcp服务
rpm -qa|grep dhcp*(查看已安装的软件) #或者 yum list installed | grep dhcp #查看ip地址 ifconfig
2.2.安装dhcp服务
(1)安装
yum install -y dhcp
(2)查看文件所在位置
rpm -qc dhcp # find / -name "dhcp*"
(3)查看dhcp初始配置文件
cd /etc/dhcp ls cat dhcpd.conf
(4)将模板文件复制到配置文件
因为初始配置文件没有内容所以, 将模板文件复制到/etc/dhcp/目录下,覆盖原本的dhcpd.conf。
# cd /usr/share/doc # find -name "dhcp*" # cd dhcp-4.2.5 # cp -a /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
(5)dhcpd.conf原文解析
cd /etc/dhcp/ # vim dhcpd.conf #删除文件里面的注释,去除所有以 `#` 开头的行: sed -i '/^#/d' dhcpd.conf
注:dhcpd.conf原文 解析
option domain-name "example.org"; #指定默认域名
#为客户端指明DNS服务器IP地址
option domain-name-servers ns1.example.org, ns2.example.org;
# 指定默认的租约期限(单位:秒)客户端在默认情况下可以持有分配的IP地址的时间长度
default-lease-time 600;
# 指定最大的租约期限(单位:秒),即客户端持有的IP地址租约时间的上限max-lease-time 7200;
log-facility local7; # 指定DHCP服务器日志消息的发送目标或设施为local7
# 第一个子网配置
#没有服务这个子网将会被指定,但是要声明他来帮助DHCP服务器来了解网络拓扑
subnet 10.152.187.0 netmask 255.255.255.0 {
}
# 第二个子网配置#非常基础(简单)的子网声明
subnet 10.254.239.0 netmask 255.255.255.224 {
range 10.254.239.10 10.254.239.20; # 定义了一个静态分配的IP地址范围
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; # 指定了两个路由(网关)
}
# 第三个子网配置#这个声明运行BUUTP(引导协议)客户端获取地址,我们不是真正的推荐(我们并不建议这样)
subnet 10.254.239.32 netmask 255.255.255.224 {# 定义了一个动态分配的IP地址范围,使用BOOTP协议
range dynamic-bootp 10.254.239.40 10.254.239.60;
option broadcast-address 10.254.239.31; # 指定了广播地址,
option routers rtr-239-32-1.example.org; # 设置路由(网关)
}
# 第四个子网配置#为一个内部子网进行细微的配置
subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30; # 定义了一个静态分配的IP地址范围
option domain-name-servers ns1.internal.example.org; # 指定了域名服务器
option domain-name "internal.example.org"; # 指定了默认域名
option routers 10.5.5.1; # 设置路由的IP地址
option broadcast-address 10.5.5.31; # 指定了广播地址
default-lease-time 600; # 定义了租约(IP地址分配)的默认时间(单位:秒)
max-lease-time 7200; # 定义了租约的最大时间(单位:秒)
# 这个子网同样被分成了8个小的子网段,但只指定了一个地址范围
}# 定义了一个名为passacaglia的主机
host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95; # 指定了该主机的MAC地址
filename "vmunix.passacaglia"; # 指定了主机文件名
server-name "toccata.fugue.com"; # 指定了为该主机提供服务的DHCP服务器名称
}
# 定义了一个名为fantasia的主机
host fantasia {
hardware ethernet 08:00:07:26:c0:a5; # 指定了该主机的MAC地址
fixed-address fantasia.fugue.com; # 这里似乎是一个错误,通常fixed-address后面跟的是IP地址,而不是域名。
# 如果意图是分配一个固定的IP地址给这个主机,应该修改为类似:fixed-address 192.168.1.100;
}
# 定义了一个名为foo的类
class "foo" {
match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; # 根据客户端发送的vendor-class-identifier的前4个字符是否为"SUNW"来匹配这个类
}
# 定义了一个名为224-29的共享网络#这一块DHCP配置的主要作用是定义了一个名为
224-29
的共享网络,该网络包含了两个子网(10.17.224.0/24
和10.0.29.0/24
),并为这两个子网指定了不同的默认网关(路由器)。此外,它还定义了两个IP地址池(pool),用于动态分配IP地址给请求DHCP服务的客户端,但这两个地址池有不同的访问控制策略。
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; # 指定了该子网内的默认网关(路由器)
}
# 定义了两个IP地址池
pool {
allow members of "foo"; # 仅允许属于类"foo"的客户端从这个地址池中获取IP地址
range 10.17.224.10 10.17.224.250; # 定义了可分配的IP地址范围
}
pool {
deny members of "foo"; # 禁止属于类"foo"的客户端从这个地址池中获取IP地址
range 10.0.29.10 10.0.29.230; # 定义了另一个可分配的IP地址范围
}
# 注意:在共享网络中定义多个pool时,需要确保它们的分配策略不会相互冲突或导致配置错误。
}
配置文件格式
选项/参数 #这些选项/参数全局有效
声明 {
选项/参数 #这些选项/参数全局有效
}
保留特定的IP地址
可以保留特定的IP四肢给特定的DHCP客户端使用,也就是说,当这个客户每次向DHCP服务器索取地址或更新租约时,DHCP服务器都会给客户端分配相同的地址。host 主机名 {
next-server IP地址;
hardware ethernet 网卡地址;
fixed-address IP地址;
filename "/pxelinux.0";
}分配多网段的IP地址
超级作用域来解决DHCP单个作用域中IP地址不足的情况,同时也方便了多个作用域的同时管理。而且超级作用域可以实现DHCP服务器只有1个地址却可以分发多个网段的IP功能(不使用超级作用域的话要么给DHCP服务器增加多块网卡,要么通过DHCP终中继的方式来实现分发不同网段的IP)shared-network 名称 {
subnet {
}
subnet {
}
原文链接:https://blog.csdn.net/owlcity123/article/details/104877938
(6)将要添加的配置文件
# 添加新的子网 添加位置与上面的224-29同级
#VMLdhcp(自己)
# VMLdhcp (可选注释,如果确实需要)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.250; # 可分配的IP地址范围
option domain-name-servers 8.8.8.8,114.114.114.114; # 设置DNS服务器
# option domain-name "your.domain.name"; # 如果需要设置域名,则取消注释并替换为你的域名
option broadcast-address 192.168.1.255; # 设置广播地址
option routers 192.168.1.1; # 设置默认网关default-lease-time 600;
max-lease-time 7200;
}
systemctl start dhcpd # systemctl status dhcpd
2.3.客户端的dhcp服务安装
dhclient
是用于从 DHCP 服务器获取网络配置的客户端程序,而 dhcpd
是运行在网络服务器上,为 DHCP 客户端分配网络配置的服务器程序。
dhclient.d
和 dhclient-exit-hooks.d
目录,这些目录通常是与 DHCP 客户端 dhclient
相关联的,而不是 DHCP 服务器 dhcpd
。
(1)检查dhclient是否安装
rpm -q dhclient
如果系统提示找不到 dhclient
,那么你需要安装它。
(2)安装
sudo yum install --y dhclient
dhclient.d:这个目录通常用于存放
dhclient
的配置文件或脚本,这些脚本会在 DHCP 客户端获得或失去 IP 地址时运行。不过,请注意,具体的文件名和路径可能会因不同的 Linux 发行版而异。dhclient-exit-hooks.d:这个目录(如果存在)通常用于存放 DHCP 客户端退出时执行的脚本。但并非所有发行版都使用这个目录;有些系统可能使用不同的机制或路径来实现类似的功能。