DHCP服务

DHCP服务

DHCP 即 Dynamic Host Configuration Protocol,动态主机配置协议,是一种用于局域网的网络协议。

功能:集中管理、分配 IP 地址,使网络环境中的主机动态获得 IP 地址、网关地址、DNS 服务器地址等信息

采用UDP协议,C/S模式,开启服务时会开启udp端口

dhcp server(服务端)67/udp

dhcpv4 client :68/udp(客户端)

dhcpv6 client546/udp

DHCP流程

客户端获取 IP 的流程

客户端获取 IP 地址的过程遵循 DHCP 协议,通常包含四个主要阶段:

1. DHCP 发现(DHCP Discover)

  • 客户端操作:当客户端设备(如计算机、手机等)接入网络并需要获取 IP 地址时,会以广播的形式发送一个 DHCP Discover 消息。这个消息会在本地网络中传播,目的是寻找可用的 DHCP 服务器。
  • 消息内容:该消息中包含客户端的 MAC 地址等信息,用于唯一标识客户端设备。

2. DHCP 提供(DHCP Offer)

  • 服务器响应:网络中的 DHCP 服务器接收到客户端的 DHCP Discover 消息后,会从自己的 IP 地址池中挑选一个可用的 IP 地址,并以广播的形式向客户端发送一个 DHCP Offer 消息。
  • 消息内容:此消息包含了 DHCP 服务器为客户端提供的 IP 地址、子网掩码、默认网关、DNS 服务器地址等网络配置信息,同时还会告知客户端该 IP 地址的租用期限。

3. DHCP 请求(DHCP Request)

  • 客户端选择:客户端可能会收到多个 DHCP 服务器发送的 DHCP Offer 消息,它会从中选择一个合适的 DHCP 服务器(通常是第一个收到的 Offer),并以广播的形式发送一个 DHCP Request 消息,表明自己接受该服务器提供的 IP 地址。
  • 消息内容:该消息中会包含客户端选择的 DHCP 服务器的标识信息,以及请求的 IP 地址等内容。

4. DHCP 确认(DHCP ACK)

  • 服务器确认:被客户端选中的 DHCP 服务器接收到客户端的 DHCP Request 消息后,会检查该 IP 地址是否仍然可用。如果可用,服务器会向客户端发送一个 DHCP ACK(Acknowledgment)消息,表示确认客户端可以使用该 IP 地址。
  • 消息内容:DHCP ACK 消息会再次确认客户端获得的 IP 地址、子网掩码、默认网关、DNS 服务器地址等配置信息,以及 IP 地址的租用期限。

5. 后续更新和释放

  • IP 续租:在 IP 地址的租用期限快到期时,客户端会向 DHCP 服务器发送 DHCP Request 消息,请求续租该 IP 地址。如果服务器同意续租,会再次发送 DHCP ACK 消息,更新租用期限。
  • IP 释放:当客户端不再需要使用该 IP 地址时(如设备关机或断开网络连接),会向 DHCP 服务器发送一个 DHCP Release 消息,通知服务器释放该 IP 地址,使其可以被其他客户端使用。

DHCP实验

1、先关闭VM自带的dhcp服务(注意,关掉dhcp服务后,自身将无法获取ip,请给本虚拟机设置静态IP)

展示一下我的静态IP设置

[root@Centos8 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens160

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens160
UUID=88d5bd65-94fe-4d7a-88da-15783aea0a9e
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.204.139
PREFIX=24
GATEWAY=192.168.204.2
DNS1=192.168.204.2

2、dhcp服务的实现软件

DHCP 服务的实现软件:
dhcp CentOS7 之前版本) 或 dhcp-server CentOS8 中的包名)
3、下载并启动
yum -y install dhcp-server

rpm -ql dhcp-server  # 查看包里有什么文件,比如配置文件,服务文件

systemctl enable --now dhcpd

4、启动时可能会报错,服务起不来,因为原始的配置文件是空的,需要更改配置文件

5、修改配置文件

[root@Centos8 ~]#vim /etc/dhcp/dhcpd.conf

6、再次启动

服务端的udp67端口也开启了

7、实验,我们启动另一台虚拟机B(要设置为通过dhcp获取IP

一开始,先关掉dhcp服务,发现这台机器没有ip(因为vm自带的dhcp服务也关掉了)

然后我在开启dhcp服务,并重启这台虚拟机

发现这台机器有了ip,而且这个IP还是我们分配范围内的IP

同时客户端的udp/68端口也开启了

8、在提供dhcp服务的那台机器上,可以查看IP分配

注意

1、Linux一个网卡允许指定一个静态IP和通过dhcp获取一个ip(比如本身是静态IP,可以通过dhcp服务在获取一个)

yum -y install dhclient

2、这台服务器B需要重新获取IP,如果这台机器重新获取的IP要和旧的保持一致(即通过dhcp服务分配静态IP),可以设置dhcp服务器A的配置文件,绑定B的mac地址和要分配的IP地址(这个IP地址可以不在IP地址分配范围内)

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值