什么是 DHCP?

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 是一种网络协议,用于自动为网络中的设备分配 IP 地址和其他网络配置参数(如子网掩码、网关、DNS 服务器等)。它的核心目标是简化网络管理,避免手动配置 IP 地址的繁琐和潜在冲突。


DHCP 的核心功能

  1. IP 地址自动分配
    • 从预定义的 IP 地址池中动态分配 IP 给客户端设备。
    • 支持临时租约(租约到期后可回收 IP 重新分配)。
  2. 网络配置分发
    • 自动下发以下关键参数:
      • 子网掩码(Subnet Mask)
      • 默认网关(Gateway)
      • DNS 服务器地址
      • 域名(可选)
  3. IP 地址管理
    • 避免 IP 冲突,确保同一网络中设备 IP 的唯一性。
    • 支持静态 IP 绑定(为特定设备保留固定 IP)。

DHCP 原理简析

DHCP(动态主机配置协议)的核心作用是自动为网络中的设备分配 IP 地址和相关配置。过程分为四步(简称 DORA):

  1. Discover(发现)

    • 客户端(B机器)启动时广播发送 DHCP Discover 消息,寻找可用的 DHCP 服务器。
  2. Offer(提供)

    • DHCP 服务器(A机器)收到请求后,从地址池中选择一个空闲 IP,通过 DHCP Offer 消息广播回复客户端。
  3. Request(请求)

    • 客户端选择第一个收到的 Offer,广播 DHCP Request 消息,正式请求使用该 IP。
  4. Acknowledge(确认)

    • 服务器确认请求,发送 DHCP ACK 消息,将 IP 地址、子网掩码、网关、DNS 等信息分配给客户端。

环境配置步骤

1. 在A机器(服务器)上操作

(1) 安装 DHCP 服务

sudo yum install -y dhcp

(2) 配置 DHCP 服务

编辑配置文件 /etc/dhcp/dhcpd.conf

sudo vi /etc/dhcp/dhcpd.conf

根据你的网络环境配置(关键部分已注释):

# 全局配置
option domain-name "yourdomain.local";   # 你的域名(可选)
option domain-name-servers 8.8.8.8, 8.8.4.4;  # DNS服务器(例如谷歌DNS)
default-lease-time 600;     # 默认租约时间(秒)
max-lease-time 7200;        # 最大租约时间

# 子网声明(根据你的网络修改)
subnet 192.168.198.0 netmask 255.255.255.0 {  # 子网范围
  range 192.168.198.150 192.168.198.200;      # 分配给客户端的IP池
  option routers 192.168.198.1;              # 网关地址(按需修改)
  option broadcast-address 192.168.198.255;  # 广播地址
}

(3) 启动服务并设置开机自启

sudo systemctl start dhcpd
sudo systemctl enable dhcpd

2. 在B机器(客户端)上操作

(1) 设置网卡自动获取 IP

编辑网卡配置文件(假设网卡名为 ens33):

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改为以下内容:

BOOTPROTO=dhcp    # 关键!设为DHCP模式
ONBOOT=yes        # 开机自动启用网卡

(2) 重启网络服务

sudo systemctl restart network

(3) 检查获取的 IP

ip addr

关键注意事项

  1. 子网匹配:确保 subnet 声明中的子网与A机器的IP(192.168.198.100)属于同一网段。
  2. IP池范围range 中的地址不能包含A机器自身的IP(192.168.198.100)。
  3. 网关/DNS:根据实际网络环境修改 routersdomain-name-servers

按此配置后,B机器应能自动获取到 192.168.198.150~200 范围内的 IP!