简介
动态主机设置协议(英语:Dynamic Host Configuration Protocol,缩写:DHCP),又称动态主机组态协定,是一个用于IP网络的网络协议,位于OSI模型的应用层,使用UDP协议工作,主要有两个用途:
- 用于内部网或网络服务供应商自动分配IP地址给用户
- 用于内部网管理员对所有电脑作中央管理
原理
动态主机设置协议(DHCP)是一种使网络管理员能够集中管理和自动分配IP网络地址的通信协议。在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。
DHCP使用了租约的概念,或称为计算机IP地址的有效期。租用时间是不定的,主要取决于用户在某地连接Internet需要多久,这对于教育行业和其它用户频繁改变的环境是很实用的。透过较短的租期,DHCP能够在一个计算机比可用IP地址多的环境中动态地重新配置网络。DHCP支持为计算机分配静态地址,如需要永久性IP地址的Web服务器。
DHCP和另一个网络IP管理协议BOOTP类似。目前两种配置管理协议都得到了普遍使用,其中DHCP更为先进。某些操作系统,如Windows Server,带有DHCP服务器。
技术细节
DHCP统一使用两个IANA分配的端口作为BOOTP:服务器端使用67/udp,客户端使用68/udp。DHCP运行分为四个基本过程,分别为请求IP租约、提供IP租约、选择IP租约和确认IP租约。客户在获得了一个IP地址以后,就可以发送一个ARP请求来避免由于DHCP服务器地址池重叠而引发的IP冲突。
DHCP发现(DISCOVER) client在物理子网上发送广播来寻找可用的服务器。网络管理员可以配置一个本地路由来转发DHCP包给另一个子网上的DHCP服务器。该client实现生成一个目的地址为255.255.255.255或者一个子网广播地址的UDP包。
客户也可以申请它使用的最后一个IP地址(在下面的例子里为192.168.1.100)。如果该客户所在的网络中此IP仍然可用,服务器就可以准许该申请。否则,就要看该服务器是授权的还是非授权的。授权服务器会拒绝请求,使得客户立刻申请一个新的IP。非授权服务器仅仅忽略掉请求,导致一个客户端请求的超时,于是客户端就会放弃此请求而去申请一个新的IP地址。
DHCP提供(OFFER) 当DHCP服务器收到一个来自客户的IP租约请求时,它会提供一个IP租约。DHCP为客户保留一个IP地址,然后通过网络单播一个DHCPOFFER消息给客户。该消息包含客户的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供IP的DHCP服务器的IP。
服务器基于在CHADDR字段指定的客户硬件地址来检查配置。这里的服务器,192.168.1.1,将IP地址指定于YIADDR字段。
DHCP请求(REQUEST) 当客户PC收到一个IP租约提供时,它必须告诉所有其他的DHCP服务器它已经接受了一个租约提供。因此,该客户会发送一个DHCPREQUEST消息,其中包含提供租约的服务器的IP。当其他DHCP服务器收到了该消息后,它们会收回所有可能已提供给该客户的租约。然后它们把曾经给该客户保留的那个地址重新放回到可用地址池中,这样,它们就可以为其他计算机分配这个地址。任意数量的DHCP服务器都可以响应同一个IP租约请求,但是每一个客户网卡只能接受一个租约提供。
DHCP确认(Acknowledge,ACK) 当DHCP服务器收到来自客户的REQUEST消息后,它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息。这时候,TCP/IP配置过程就完成了。
该服务器响应请求并发送响应给客户。整个系统期望客户来根据选项来配置其网卡。
DHCP释放(RELEASE) 客户端向DHCP服务器发送一个请求以释放DHCP资源,并注销其IP地址。鉴于客户端更多的时候并不清楚何时用户会将其从网络中移除,此协议不会托管“DHCP释放的发送”。
DHCP NAK 服务器回复客户,客户要求的IP不能被分配。
路由选择顺序
路由器路由匹配顺序总结
- 路由策略匹配。若路由器上有路由策略,首先执行路由策略,若无路由策略,则查询路由表。
- 最长子网掩码匹配。即当在路由表中有多条 到达某个IP地址的路由时,优先选择子网掩码最长的路由。
- 管理距离最小匹配。若执行最长子网掩码匹配后,路由表中仍有多条到达某个IP地址的路由,优先选择管理距离(AD)最小的。
- 负载均衡。若执行管理距离最小匹配后,路由表中仍有多条达到某个IP地址的路由,则在剩余的多条链路上执行负载均衡。注意:这里的负载均衡可能是等价的,也可能不是等价的,具体要看使用的路由协议。
路由协议的优先级(Preference,即管理距离Administrative Distance):一般为一个0到255之间的数字,数字越大则优先级越低。表一是通常情况下各路由协议的优先级规定:
各产品厂商可能对路由协议的优先级有不同的规定,表二、表三分别列出了华为、思科路由器路由优先级列表:
路由的优先级的概念是优先级高的新路由协议可替代优先级低的同信宿路由,反之,则不然。
需要区别的是路由开销(metric)和路由优先级(preference)这两个概念。metric是针对同一种路由协议而言,对不同的路由协议,由于代表的含义不同,比较不同协议的metric是无意义的,所以要在两条不同协议的同信宿路由中作出选择,只能比较路由协议的优先级。相反,preference是针对不同路由协议而言,同协议的路由的preference优先级是一般情况下一样的,这时metric是在两条同信宿路由中作出选择的标准。