DHCP 服务

DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。主要有两个用途:给内部网络或网络服务供应商自动分配IP地址。

DHCP有3个端口,其中 UDP 67 和 UDP 68 为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546 端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。

功能

  • 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。

  • DHCP应当可以给用户分配永久固定的IP地址。

  • DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。

  • DHCP服务器应当向现有的BOOTP客户端提供服务。

工作原理

DHCP Client以广播方式发出DHCP Discover报文。

所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。

DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便DHCP Client区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。

DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。

DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。

DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。

DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。

DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。

分配机制

注意:只有动态分配可以重复使用客户端不再需要的地址。

自动分配方式(Automatic Allocation)

DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性使用该地址。

动态分配方式(Dynamic Allocation)

DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

手工分配方式(Manual Allocation)

客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

安装配置

1
2
3
4
5
# 安装rpm包
yum -y install dhcp
# 生成配置文件模板
cp /etc/dhcp/dhcpd.conf{,.bak}
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

文件 /etc/dhcp/dhcpd.conf 配置说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
ddns-update-style interim; 
#表示dhcp服务器和dns服务器的动态信息更新模式
ignore client-updates;
#忽略客户端更新

subnet 192.168.247.0 netmask 255.255.255.0 {
#dhcp服务器所分配的ip地址所在的网段为192.168.247.0 子网掩码为255.255.255.0
option routers 192.168.247.1;
#路由器地址,即给客户端提供的网关地址
option subnet-mask 255.255.255.0;
#子网掩码
# option domain-name "example.org";
# 搜索域,具体为/etc/resov.conf中search行对应的域
option domain-name-servers 114.114.114.114;
# DNS服务器地址,最多三个,以逗号隔开

range 192.168.247.100 192.168.247.200;
# 租用IP地址的范围,linux环境下从后往前分配

default-lease-time 600;
#默认租约时间
max-lease-time 7200;
#最大租约时间

host myhost {
#固定分配,myhost为标识符,无实际意义
hardware ethernet MAC_ADDRESS;
#指定dhcp客户的mac地址
fixed-address 192.168.247.155;
#给指定的mac地址分配ip
}
}
有钱任性,请我吃包辣条
0%