当我们使用计算机时,我们可以发现,很多情况下,我们只需要把网线插到电脑上,我们的电脑就可以上网了。我们知道,我们所使用的计算机必需需要一个IP地址才可以成功访问网络,那为什么我们直接把网线插上之后就可以直接访问网络了呢。这里使用到了一个自动分配IP地址的技术——DHCP(动态主机配置协议)。

使用DHCP协议,可以最大限度地减少了由于手工配置IP地址而引起的配置错误,例如输入错误,或者由于同时向多台计算机分配IP地址而导致的地址冲突。而且还可以对公司中的计算机更加集中的管理。对于必须经常更新的客户端(例如,笔记本电脑,平板电脑,智能手机等)的IP地址更改的有效处理。

上面讲了使用DHCP有啥好处,下面我们来看一下DHCP 是如何工作的。

我们知道主机的IP地址是自动获取的,那么这个地址是从哪获取的呢,在网络上会有一个DHCP服务器,在服务器上存放可分配的地址信息——地址池,客户机的地址都是从地址池中分配的。

客户端将发送DHCP发现报文。这是广播报文,因为它没有DHCP服务器的IP地址,也不知道网络上是否有DHCP服务器。当然,在我们的网络中,我们确实有一个DHCP服务器,因此它将响应该广播报文。

DHCP服务器将以一条包含计算机IP地址的DHCP提供消息进行响应(我们必须配置DHCP服务器来定义我们要提供的IP地址——地址池)。如果需要,我们还可以为计算机分配默认网关和dns服务器。

当客户端接收到服务器的响应报文后,客户端将根据响应报文提供的信息而发送DHCP请求,询问服务器是否可以使用它收到的信息。

DHCP服务器接收到后将以DHCP ACK消息响应,告诉客户端可以使用此信息。

他们的响应过程如图1所示:

dhcp选项的概念(太阁干货DHCP原理解析)(1)

我们了解了DHCP的工作原理,现在来自己实践一下吧。

dhcp选项的概念(太阁干货DHCP原理解析)(2)

如图所示,我们在网络中配置一台DHCP服务器,R1作为该网络的网关。

首先我们先配置网关地址。

地址配置完成后,我们开始进行DHCP服务配置。首先开启DHCP服务。

R1#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

R1(config)#service dhcp

创建一个地址池。配置DHCP服务。

# 创建一个名为dhcppool1的地址池

R1(config)#ip dhcp pool dhcppool1

# 宣告地址池网段地址

R1(dhcp-config)# network 192.168.1.0 255.255.255.0

# 设置网关地址

R1(dhcp-config)# default-router 192.168.1.254

# 设置DNS服务器地址

R1(dhcp-config)# dns-server 8.8.8.8

# 设置地址的租期,即客户端可以使用该地址多少时间。下面设置的为3天1小时10分钟

R1(dhcp-config)# lease 3 1 10

# 将网关地址排除在地址池之外

R1(config)#ip dhcp excluded-address 192.168.1.254

先来查看VPC3的IP地址。

VPCS> show ip

NAME : VPCS[1]

IP/MASK : 0.0.0.0/0

GATEWAY : 0.0.0.0

DNS :

MAC : 00:50:79:66:68:03

LPORT : 20000

RHOST:PORT : 127.0.0.1:30000

MTU : 1500

我们在VPC3上使用命令“ip dhcp”来向服务器请求IP地址。

VPCS> ip dhcp

DDORA IP 192.168.1.2/24 GW 192.168.1.254

下面我们再来查看VPC3的IP地址。

VPCS> show ip

NAME : VPCS[1]

IP/MASK : 192.168.1.2/24

GATEWAY : 192.168.1.254

DNS : 8.8.8.8

DHCP SERVER : 192.168.1.254

DHCP LEASE : 263296, 263400/131700/230475

MAC : 00:50:79:66:68:03

LPORT : 20000

RHOST:PORT : 127.0.0.1:30000

MTU : 1500

可以看到VPC3已经分配到了IP地址及其它信息。

,