为了让TCP/IP协议简单易用,需要一个自动化配置工具,DHCP(dynamic host configuration protocol)。
该协议的工作方式:
①客户端广播一个报文(UDP格式)。
②DHCP服务器收到广播,从IP地址池对应网段中选择一个空闲IP,以及其对应的网络掩码、缺省网关、域名服务器IP地址,打包起来以单播方式发给客户端。
③客户端收到回复,将这些信息配置到自身,并发出一个ARP广播请求收到的IP地址对应的MAC地址,在确认没有回应(这个IP地址未被占用)后向服务器发送确认消息。
这个工作方式要求DHCP服务器与客户端在同一个网段,否则收不到广播请求,但是现实中不可能为每一个网段配置一个服务器,所以需要给每个网段设置一个中介,可以让不同网段的客户端连接到同一个服务器,这个中介被称为DHCP中继代理(DHCP relay agent),它会接收其网段中的客户端的广播请求,并以单播的形式发给服务器,然后过程就与上面类似,服务器收到请求,选择一个空闲IP,以单播的方式发回给中介,再发回给客户端。
为了防止软件伪造硬件地址像服务器发送请求恶意占用IP资源,需要一种叫DHCP窥探(DHCP snooping)的技术,在主机的请求经过交换机时,交换机会在主机发送的报文上添加信息,表明这个客户端的位置信息,等服务器收到请求后,首先会检查这个位置信息,若其出现1次以上,则无视它。若是成功分配IP,在服务器的报文经过交换机时,交换机还会生成一张表,记录主机连接的端口号、MAC地址、分配的IP、所处的虚拟局域网的映射关系,用于防止ARP安全漏洞。
ARP安全漏洞:假设1要发消息给3,但是发出的消息被2用伪造的MAC地址接下了,让1认为他发送成功了,接着2看完后再发给3。又或者可以说一台主机冒充网关,劫持该网段中所有访问外网的流量。若交换机中有1的MAC地址,则当2发来假消息时,就可以识别出来,以避免该漏洞。