1.前言
在大型企业网络中,会有大量的主机或设备需要获取IP地址等网络参数。如果采用手工配置,工作量大且不好管理,如果有用户擅自修改网络参数,还有可能会造成IP地址冲突等问题。使用动态主机配置协DHCP(DynamicHostConfigurationProtocol)来分配IP地址等网络参数,可以减少管理员的工作量,避免用户手工配置网络参数时造成的地址冲突。
2.目标
- 掌握DHCP的应用场景
- 掌握DHCP的基本原理
- 掌握DHCP的基本配置
3.DHCP应用场景
- 在大型企业网络中,一般会有大量的主机等终端设备。每个终端都需要配置IP地址等网络参数才能接入网络。在小型网络中,终端数量很少,可以手动配置IP地址。但是在大中型网络中,终端数量很多,手动配置IP地址工作量大,而且配置时容易导致IP地址冲突等错误。
- DHCP可以为网络终端动态分配IP地址,解决了手工配置IP地址时的各种问题。
4.DHCP报文类型
- DHCP客户端初次接入网络时,会发送DHCP发现报文(DHCP Discover),用于查找和定位DHCP服务器。
- DHCP服务器在收到DHCP发现报文后,发送DHCP提供报文(DHCP Offer),此报文中包含IP地址等配置信息。
- 在DHCP客户端收到服务器发送的DHCP提供报文后,会发送DHCP请求报文(DHCP Request),另外在DHCP客户端获取IP地址并重启后,同样也会发送DHCP请求报文,用于确认分配的IP地址等配置信息。DHCP客户端获取的IP地址租期快要到期时,也发送DHCP请求报文向服务器申请延长IP地址租期。
- 收到DHCP客户端发送的DHCP请求报文后,DHCP服务器会回复DHCP确认报文(DHCP ACK)。客户端收到DHCP确认报文后,会将获取的IP地址等信息进行配置和使用。
- 如果DHCP服务器收到DHCP-REQUEST报文后,没有找到相应的租约记录,则发送DHCP-NAK报文作为应答,告知DHCP客户端无法分配合适lP地址。
- DHCP客户端通过发送DHCP释放报文(DHCP Release)来释放IP地址。收到DHCP释放报文后,DHCP服务器可以把该IP地址分配给其他DHCP客户端。
5.地址池
- ARG3系列路由器和X7系列交换机都可以作为DHCP服务器,为主机等设备分配IP地址。
DHCP服务器的地址池是用来定义分配给主机的IP地址范围,有两种形式。
- 接口地址池为连接到同—网段的主机或终端分配IP地址。可以在服务器的接口下执行dhcp.select interface命令,配置DHCP服务器采用接口地址池的DHCP服务器模式为客户端分配IP地址。
- 全局地址池为所有连接到DHCP服务器的终端分配IP地址。可以在服务器的接口下执行dhcp select global命令,配置DHCP服务器采用全局地址池的DHCP服务器模式为客户端分配IP地址。
- 接口地址池的优先级比全局地址池高。配置了全局地址池后,如果又在接口上配置了地址池,客户端将会从接口地址池中获取IP地址。在X7系列交换机上,只能在VLANIF逻辑接口上配置接口地址池。
6.DHCP工作原理
- 为了获取IP地址等配置信息,DHCP客户端需要和DHCP服务器进行报文交互。
- 首先,DHCP客户端发送DHCP发现报文来发现DHCP服务器。DHCP服务器会选取一个未分配的IP地址,向DHCP客户端发送DHCP提供报文。此报文中包含分配给客户端的IP地址和其他分配信息。如果存在多个DHCP服务器,每个服务器都会响应。
- 如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文,然后发送DHCP请求报文,报文中包含请求的IP地址。收到DHCP请求报文后,提供该IP地址的DHCP服务器会向DHCP客户端发送一个DHCP确认报文,包含提供的IP地址和其他配置信息。DHCP客户端收到DHCP确认报文后,会发送免费ARP报文,检查网络中是否有其他主机使用分配的IP地址。如果指定时间内没有收到ARP应答,DHCP客户端会使用这个IP地址。如果有主机使用该IP地址,DHCP客户端会向DHCP服务器发送DHCP拒绝报文,通知服务器该IP地址已被占用。然后DHCP客户端会向服务器重新申请一个IP地址。
7.DHCP租期更新
- 申请到IP地址后,DHCP客户端中会保存三个定时器,分别用来控制租期更新,租期重绑定和租期失效。DHCP服务器为DHCP客户端分配IP地址时会指定三个定时器的值。如果DHCP服务器没有指定定时器的值,DHCP客户端会使用缺省值,缺省租期为1天。默认情况下,还剩下50%的租期时,DHCP客户端开始租约更新过程,DHCP客户端向分配IP地址的服务器发送DHCP请求报文来申请延长IP地址的租期。DHCP服务器向客户端发送DHCP确认报文,给予DHCP客户端一个新的租期。
8.DHCP重绑定
- DHCP客户端发送DHCP请求报文续租时,如果DHCP客户端没有收到DHCP服务器的DHCP应答报文。默认情况下,重绑定定时器在租期剩余12.5%的时候超时,超时后,DHCP客户端会认为原DHCP服务器不可用,开始重新发送DHCP请求报文。网络上任何一台DHCP服务器都可以应答DHCP确认或DHCP非确认报文。
- 如果收到DHCP确认报文,DHCP客户端重新进入绑定状态,复位租期更新定时器和重绑定定时器。如果收到DHCP非确认报文,DHCP客户端进入初始化状态。此时,DHCP客户端必须立刻停止使用现有IP地址,重新申请IP地址。
9.IP地址释放
- 租期定时器是地址失效进程中的最后一个定时器,超时时间为IP地址的租期时间。如果DHCP客户端失效定时器超时前没有收到服务器的任何回应,DHCP客户端碧血立刻停止使用现有IP地址,发送DHCP Release报文,并进入初始化状态。然而,DHCP客户端重新发送DHCP发现报文,申请IP地址。
10.DHCP接口地址池配置
- DHCP支持配置两种地址池,包括全局地址池和接口地址池。
- dhcp enable命令用来使能DHCP功能。在配置DHCP服务器时,必须先执行dhcp enable命令,才能配置DHCP的其他功能并生效。
- dhcp select interface 命令用来关联接口和接口地址池,为连接到接口的主机提供配置信息。在本示例中,接口GigabitEthernet 0/0/0 被加入接口地址池中。
- dhcp server dns-list 命令用来指定接口地址池下的DNS服务器地址。
- dhcp server excluded-ip-address命令用来配置接口池中不参与自动分配的IP地址范围。
- dhcp server lease命令用来配置DHCP服务器接口地址池中IP地址的租用有效期限功能。缺省情况下,接口地址池中IP地址的租用有效期为1天。
11.配置验证
- 每个DHCP服务器可以定义一个或多个全局地址池和接口地址池。本例中执行display ip pool命令查看接口地址池的属性。display信息中包含地址池的IP地址范围,还包括IP网关,子网掩码等信息。
12.DHCP全局地址池配置
- 在本示例中,配置了一个DHCP全局地址池。
- ip pool命令用来创建全局地址池。
- network命令用来配置全局地址池下可分配的网段地址。
- gateway-list命令用来配置DHCP服务器全局地址池的出口网关地址。
- lease命令用来配置DHCP全局地址池下的地址租期。缺省情况下,IP地址租期是1天。
- dhcp,select global命令用来使接口的DHCP服务器功能。
13.配置验证
- display ip pool 命令可以查看全局IP地址池信息。管理员可以查看地址池的网关、子网掩码、IP地址统计信息等内容,监控地址池的使用情况,了解已分配的IP地址数量,以及其他使用统计信息。
14.总结
- 地址池中的哪些IP地址一般会被保留?
在IP地址池中,应该排除分配给DNS等服务器的IP地址,DHCP服务器接口的IP地址等,避免IP地址冲突。
- DHCP服务器的IP地址租期默认是多久?
默认的IP地址租期是86400秒,即一天。