DHCP服务器

TOC

了解DHCP服务

什么是DHCP服务?

DHCP的全程是Dynamic Host Configuration Protocol,又叫动态主机配置协议,是一种网络协议,用于自动为网络中的设备(主机)分配 IP 地址、子网掩码、默认网关、DNS等网络参数。
简单理解:当你电脑或手机连接到网络时,不用手动设置IP地址,DHCP服务器就会自动分配给你一个可用的 IP。

作用:

  • 自动分配 IP,减少人工配置错误
  • IP地址复用和集中管理
  • 动态管理网络设备,适合大规模网络

DHCP分配IP地址机制

DHCP分配IP地址的几种策略:

  • 动态分配(Dynamic Allocation)
    • DHCP 服务器从一个 IP 地址池(Pool)中动态分配给客户端。
    • IP 有租期(Lease Time),过期后可能分配给其他设备。
    • 适用于大多数场景,例如家庭网络、公司网络。
  • 自动分配(Automatic Allocation)
    • DHCP 服务器会永久分配一个 IP 给客户端。
    • 一旦分配,IP 会“记住”该设备的 MAC 地址,下次连接时仍分配相同 IP。
    • 适用于固定设备,但不如静态配置灵活。
  • 手动分配 / 静态分配(Static / Manual Allocation)
    • 管理员在 DHCP 服务器上绑定 MAC 地址和固定 IP。
    • 客户端每次连接都会分配相同的 IP。
    • 常用于服务器、打印机、摄像头等固定设备。

注意事项:
1.只能有一个权威DHCP服务器:在同一个网段中,如果存在多个DHCP服务器且都分配同一段 IP,容易造成 IP 冲突,设备可能获取到错误的 IP。
2.需要子网隔离:如果网络有多个VLAN或子网,每个子网应由各自的DHCP服务器或通过DHCP中继(DHCP Relay)转发请求。

DHCP服务搭建

CentOS系统安装

yum update
yum -y install dhcp

Ubuntu系统安装

apt update
apt -y install isc-dhcp-server

配置文件

主要配置文件:/etc/dhcp/dhcpd.conf

# DHCP 全局设置
option domain-name "example.com";
option domain-name-servers ns1.example.com, ns2.example.com;

default-lease-time 600;    # 默认租约时间,单位秒
max-lease-time 7200;       # 最大租约时间,单位秒
authoritative;             # 声明该服务器为权威服务器

# IP 地址池配置
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.254;   # 动态分配IP地址范围
    option routers 192.168.1.1;          # 默认网关
    option subnet-mask 255.255.255.0;    # 子网掩码
    option broadcast-address 192.168.1.255; # 广播地址
}

# 静态绑定示例
host printer01 {
    hardware ethernet 00:11:22:33:44:55;  # 需要绑定的MAC地址
    fixed-address 192.168.1.50;           # 指定IP地址
}

DHCP服务监听的网卡配置
CentOS:/etc/sysconfig/dhcpd

# /etc/sysconfig/dhcpd
DHCPDARGS=eth0

Ubuntu:/etc/default/isc-dhcp-server

# /etc/default/isc-dhcp-server
INTERFACESv4="eth0"

DHCP服务管理

CentOS系统

# 启动dhcp服务
systemctl start dhcpd
# 设置自启动dhcp服务
systemctl enable dhcpd
# 查看dhcp服务状态
systemctl status dhcpd

Ubuntu系统

# 启动dhcp服务
systemctl start isc-dhcp-server
# 设置自启动dhcp服务
systemctl enable isc-dhcp-server
# 查看dhcp服务状态
systemctl status isc-dhcp-server