当前位置: 首页 > news >正文

DHCP服务器

DHCP服务器

DHCP服务器介绍

在大型网络中,系统静态分配IP地址面临问题:

1.确保不要同时在多个系统上使用同一个地址

2.部署新系统通常需要手动分配其IP地址。在云环境中,实例的网络都是自动化配置的

动态主机配置协议(DHCP-Dynamic Host Configuration Protocol)提供了一种自动配置网络参数的方法,例如IP地址,默认网关,DNS服务器和域或NTP服务器。在网络中部署DHCP服务器,您可以集中控制这些参数。

DHCP有两种协议:

  • 用于IPv4网络的DHCPv4
  • 用于IPv6网络的DHCPv6

在这里插入图片描述

DHCP通信过程

1.客户端使用DHCPv4配置网络接口时,网卡将DHCPDISCOVER的数据包发送到255.255.255.255 广播目标。因为路由器通常不转发该广播地址,所有必须将DHCP服务器与客户端安装在同一物理网络上,以便它可以接收到DHCPDISCOVER数据包。您也可以将路由器配置为DHCP中继代理,转发DHCP消息到其他网络。

2.DHCP服务器收到DHCPDISCOVER数据包后,相遇DHCPOFFER数据包,该数据包包含其自己的IP地址和客户端应使用的IP地址。该数据包还包括一个租用期限,以指示所提供的IP地址的有效的时间,以及其他网络参数,例如默认网关和DNS服务器。

3.客户端收到DHCP服务器 DHCPOFFER 数据包后,发送DHCPREQUEST 广播数据包,请求DHCP服务器提供的IP地址。 这似乎很多余,但是网络上可能有多个DHCP服务器,或者路由器可能会将DHCPOFFER转发到多个网络,因此,客户端可能从不同的DHCP服务器收到响应。客户端的DHCPREQUEST数据包包括接受请求的DHCP服务器的IP地址。

4.DHCP服务器收到DHCPREQUEST数据包后,会发送DHCPACK数据包,确认客户端对客户端IP地址具有独占权限,直到租约到期为止。

5.租约到期后,重新向DHCP服务器续约。

6.DHCP服务器,同意客户端续约。

在DHCP服务器上,可以使用journalctl --unit= dhcpd.service命令来访问客户端与服务端的通信消息。以下摘录显示了客户端通过DHCP请求IP地址

[root@clinet ~ 16:31:16]# journalctl --unit=dhcpd.service

租约到期之前,客户端会定期向服务器发送DHCPREQUEST数据包,以确保服务器不会收回IP地址。

多个DHCP服务器

尽管DHCP支持在物理网络上运行多个DHCP服务器,但不建议这么做,正常情况下,同一个物理网络中只需要一台DHCP服务器应答客户端的请求即可。

在同一网络上运行多个服务器的情况下,当新客户端发送DHCPDISCOVER数据包以获得地址时,它可能会收到多个DHCPOFFER数据包。客户端仅接受其中一台服务器提供的配置,并广播包含该服务器IP地址的DHCPREQUEST数据包。其他DHCP服务器释放它们为客户端准备的IP地址。

但是,当客户端使用DHCPREQUEST数据包更新其IP地址时,服务器行为取决于服务器是否具有权威性。非权威性的DHCP服务器会忽略DHCPREQUEST数据包中不知道的地址。当客户端发送的IP地址在权威DHCP服务器管理的地址范围内,但服务器以前不知道该IP地址时,它将拒绝该请求并发回DHCPNAK数据包。这可能意味着客户端最初是从网络上的另一台非权威的DHCP服务器获取的地址。任何收到DHCPNAK数据包的客户端都不能再使用该地址,而必须请求一个新的地址。

使用默认配置启动DHCP服务器时,服务器不是权威服务器,这样可以防止非权威DHCP服务器接管权威服务器提供的地址。

部署DHCP服务器

要配置DHCPv4服务器,请首先使用 ip addr 命令确认您的网络接口配置是否指定了 BROADCAST地址。

[root@server named 15:44:30]# ip addr
....
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:76:24:d1 brd ff:ff:ff:ff:ff:ffinet 10.1.8.10/24 brd 10.1.8.255 scope global noprefixroute ens33valid_lft forever preferred_lft forever

服务器必须具有静态IP地址

安装DHCP软件
#安装软件包
[root@server named 17:28:10]# yum install -y dhcp#配置防火墙,放行dhcp服务
[root@server named 17:31:37]# firewall-cmd --add-service=dhcp --permanent 
[root@server named 17:32:42]# firewall-cmd --add-service=dhcp
配置DHCP服务器

dhcpd服务使用/etc/dhcp/dhcpd.conf配置文件。 dhcp-server软件包提供/usr/share/doc/dhcp-*/dhcpd.conf.example配置文件示例

[root@server ~ 18:46:40]# vim /etc/dhcp/dhcpd.conf
# 配置 DHCP 池.
subnet 10.1.8.0 netmask 255.255.255.0 {range 10.1.8.101 10.1.8.130;#  option domain-name-servers ns1.internal.example.org;#  option domain-name "internal.example.org";option routers 10.1.8.2;option broadcast-address 10.1.8.255;#  default-lease-time 600;#  max-lease-time 7200;
}
# 根据Mac地址配置固定IP
host cliend.xs.cloud {
"/etc/dhcp/dhcpd.conf" 29L, 704C                                     25,1         顶端
# 配置域名.
option domain-name "xs.cloud";
# 配置DNS服务器
option domain-name-servers 223.5.5.5, 223.6.6.6;# 默认租约时间 (s)
default-lease-time 600;
# 最大租约时间(s)
max-lease-time 7200;# 设置日志级别
log-facility local7;# 配置 DHCP 池.
subnet 10.1.8.0 netmask 255.255.255.0 {range 10.1.8.101 10.1.8.130;#  option domain-name-servers ns1.internal.example.org;#  option domain-name "internal.example.org";option routers 10.1.8.2;option broadcast-address 10.1.8.255;#  default-lease-time 600;#  max-lease-time 7200;
}
# 根据Mac地址配置固定IP
host cliend.xs.cloud {hardware ethernet 00:0c:29:ed:3f:15;fixed-address 10.1.8.100;
}

配置说明:

  • authoritative,指示服务器对其所管理的子网具有权威性

  • subnet,提供的子网详情。

  • range,指定服务器在该范围内分配IP地址。

  • option routers, 指定服务器提供默认网关地址。

  • option domain-name-servers,指定服务器提供DNS名称服务器。

  • option domain-search,指定服务器提供DNS域搜索列表。

  • default-lease-time,提供网络信息默认租期,如果客户端不要求任何特定的租期。单位秒。

  • max-lease-time,提示服务器可以从客户端请求接受的最大租期。单位秒。

    客户端系统上的NetworkManager使用domain-name-servers和domain-search更新resolve.conf文件中的nameserver和search参数。

    验证DHCP配置
    #验证配置文件语法
    [root@server ~ 18:47:43]# dhcpd -t
    Internet Systems Consortium DHCP Server 4.2.5
    Copyright 2004-2013 Internet Systems Consortium.
    All rights reserved.
    For info, please visit https://www.isc.org/software/dhcp/
    Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
    #输出结果为0,表明配置文件没有问题
    启用并启动服务
    [root@server ~ 19:00:34]# systemctl enable dhcpd --now
    [root@server ~ 19:02:55]# systemctl status dhcpd
    
配置DHCP客户端
#添加一个网卡,并且是自动获取ip连接,检查该网卡ip
[root@clinet ~ 19:08:03]# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
ens33            UP             10.1.8.11/24 
ens37            UP             10.1.8.100/24 fe80::b12e:761a:50b4:4978/64 #验证
[root@clinet ~ 19:08:09]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:ed:3f:15 brd ff:ff:ff:ff:ff:ffinet 10.1.8.100/24 brd 10.1.8.255 scope global noprefixroute dynamic ens37valid_lft 572sec preferred_lft 572secinet6 fe80::b12e:761a:50b4:4978/64 scope link noprefixroute valid_lft forever preferred_lft forever
基于MAC地址预留IP地址

在配置文件中,host声明可以将MAC地址绑定到IP地址。此配置对于始终为特定系统的网络接口提供相同的IP地址特别有用,尤其是Web或数据库系统之类的服务器。

客户端MAC地址查看

[root@clinet ~ 19:08:09]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:ed:3f:15 brd ff:ff:ff:ff:ff:ffinet 10.1.8.100/24 brd 10.1.8.255 scope global noprefixroute dynamic ens37valid_lft 572sec preferred_lft 572secinet6 fe80::b12e:761a:50b4:4978/64 scope link noprefixroute valid_lft forever preferred_lft forever

在以下示例中,服务器始终为MAC地址是00:0c:29:ed:3f:15的系统分配的10.1.8.**地址

在配置DHCP文件时,可以为特定的MAC地址配置专门的IP,不配置就是相同的MAC地址但IP会在DHCP配置文件的IP地址,其配置为在/etc/dhcp/dhcpd.conf最后添加如下内容:

# 根据Mac地址配置固定IP
host cliend.xs.cloud {hardware ethernet 00:0c:29:ed:3f:15;fixed-address 10.1.8.100;
}
http://www.dtcms.com/a/406630.html

相关文章:

  • wordpress nginx 固定链接seo推广的特点
  • AI算力加速
  • 《强化学习数学原理》学习笔记1——贝尔曼期望公式推导
  • 9.9元奶茶项目:matlab+FPGA的cordic算法(双曲线向量模式)计算对数log
  • 发布网站需要备案安徽省住房城乡建设厅官方网站
  • 初识MYSQL —— 数据库基础
  • PHP 8.5 升级指南 了解即将废弃的 11 个功能和完整迁移方案
  • 月饼杯II
  • OpenHarmony位置服务模块架构设计
  • 河南制作网站国外wordpress主题
  • C# WPF DataGrid 数据绑定时的单元格编辑类型模板
  • 天津微网站做年报的网站
  • Marin说PCB之POC电路layout设计仿真案例---13
  • 随堂笔记2025-925
  • 龙岩建网站wordpress php7 500
  • 阿里云 iis 多个网站建筑公司资质
  • Python读取MongoDB的JSON字典和列表对象转为字符串
  • 论证框架的四个核心问题(概念界定/基础理论/研究模型/研究假设)的因果链
  • IO流与网络编程
  • 案例18-新增搜索留言功能
  • Codeforces Round 1047 (Div. 3) F题题解记录
  • 基于 Redis 的分布式锁
  • 郑州视频网站建设wordpress登录去不了后台
  • 淮安做网站杨凯企业建站官网运营
  • django 使用绑定多个数据库实现数据的同步
  • 面试复习题---Android技术专家3
  • 云手机与人工智能之间的关系
  • 做网站对电脑要求高吗荆州市住房和城乡建设厅官方网站
  • Python 高效实现 PDF 转 Word:告别手动复制粘贴
  • 9.9元奶茶项目:matlab+FPGA的cordic算法(向量模式)计算相位角