当我们使用计算机时,我们可以发现,很多情况下,我们只需要把网线插到电脑上,我们的电脑就可以上网了。我们知道,我们所使用的计算机必需需要一个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服务器,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地址及其它信息。
,