DHCP(Dynamic Host Configuration Protocol)
动态主机配置协议
- 常见的配置参数:IP、掩码、网关、DNS、域名
- 其他:ftp地址、IP电话的电话号码、无线当中的一些配置下发等等
- 端口:DHCP服务端使用端口67,客户端使用端口68;是基于UDP的应用层协议;
- 分配方式:
- 自动分配(MAC地址与IP绑定)
自动分配是客户端第一次从服务端获得IP后,就会一直使用该地址;
- 动态分配(常用)
动态分配是客户端从服务器获得一个IP后,并不是一直可以使用,而是每次使用后都需要释放该IP地址; - 手动分配:
手动分配是指服务器管理员专门为客户端指定IP地址; - 常用包
- discovery----客户端发出用于寻找该网段的DHCP服务器(广播)
- offer----服务器发出,用于响应客户端的请求,携带被请求的参数(有些是单播,有些是广播;华为是单播)
- request----客户端发出用于确认服务器offer中的参数(广播)
- ack----服务器发出,用于响应客户端的request确认(单播)
- nak----与ack相反的报文,表示服务器拒绝了客户端的请求。
- release----用于客户端不再使用参数时释放参数的租期,会发出release报文(广播)
DHCP工作过程
- 当DHCP客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover发现信息来寻找DHCP服务器,即向255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。
- 在网络中接收到DHCP discover发现信息的DHCP服务器就会做出响应,它从尚未分配的IP地址池中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含分配的IP地址和其他设置的DHCP offer提供信息。在华为中,该过程是单播发送的;DHCP offer因为已知客户端MAC地址,所以IP以单播方式发送。----目标IP是DHCP分配的IP,但目标IP不起作用,起作用的是目标Mac,靠Mac通讯。
- DHCP客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。
- 当DHCP服务器收到DHCP客户端回答的DHCP request请求信息之后,便向DHCP客户端单播发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,确认租约,并指定租约时长。告诉DHCP客户端可以使用它提供的IP地址。除了DHCP客户机选中的DHCP服务器外,其他的DHCP服务器将收回曾经提供的IP地址。
- 以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP nck否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址;
- 当客户端关机或者断开网络时,会发送一个DHCP release包,用于释放IP地址;
DHCP 续租
客户端会在租期的50%时,向服务端发出request请求包续租,服务器ACK响应;如果服务器没有发出续租确认,那么客户端会在租期的87.5%时,继续发出一个request请求包,但是这是一个广播包,服务器响应后会刷新租期,第二次之所以是广播,是因为防止服务器的地址发生变化,广播来扩大搜索范围;
DHCP中继
用于解决DHCP服务器与客户端不在一个网段,由网关配置中继,需要指明DHCP服务器的IP,一样是四步请求,只不过是每一步中间都多了一个路由器和DHCP服务器之间的单播通信。
- 客户端广播方式发送报文,搜索DHCP服务器。路由器配置了中继,收到搜索消息后单播给DHCP服务器;
- DHCP服务器单播返回信息给路由器,路由器再单播给客户端;
- 客户端选择DHCP服务器提供的IP,并广播信息告诉它我选好了,路由器单播给DHCP服务器;
- DHCP服务器收到信息将确认信息单播给路由器,路由器单播给客户端
AR1 GE0/0/0接口: AR1 GE0/0/1接口: 只需要在AR1的接口上配置中继即可(10.1.1.0 的网关接口)
dhcp select relay
dhcp relay server-ip x.x.x.x (DHCP server的IP)
|