DHCP(动态主机配置协议)
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。
DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。
DHCP工作原理
使用UDP协议,两个端口:67 68
DHCP客户端在请求IP地址时并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送Discover请求报文,以发现网络中的DHCP服务器。
DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,告知用户本服务器可以为其提供IP地址。(预分配地址)。
DHCP协议是基于UDP协议的,因此DHCP服务器和客户端之间的通信都是基于UDP的。在DHCP协议中,使用了UDP的67和68端来进行通信,其中67端口用于DHCP服务器监听客户端的请求,68端口用于DHCP客户端监听服务器的响应。
无故ARP(免费ARP):当DHCP服务器为客户端分配一个IP地址时,它会先广播一个免费ARP来检查该IP地址是否已经被网络上的其他设备使用。如有回应就表示分配的地址已经被用了,如果没有回应就可以正常分配
常用的四种报文: 主机广播“DHCP discover”(发现报文) 发包形式:广播包,服务器拆到UDP中的67 68的端口时发现目标为自己 再拆请求
DHCP服务器利用“DHCP offer”(提供报文)进行响应发包形式:单播包,报文包含预分配地址 主机请求IP地址:“DHCP request”(请求报文)
发包形式:广播包广播一个ARP如果有人用了第二个包中的预分配地址就会回应没有则正常分配有人用就会再换一个地址再次广播
DHCP服务器分配IP地址:“DHCPack”(确认报文)发包形式:单播包预分配的地址没有ARP响应时就确定分配
可以下发网关,地址,掩码
DHCP配置
全局模式
# 全局开启DHCP服务 [R1]dhcp enable #创建全局地址池gky [R1]ip pool gky #配置全局地址池可动态分配的IP地址范围 [R1-ip-pool-gky]network 192.168.1.0 mask 24 #配置DHCP客户端的网关地址(下发的网关地址) [R1-ip-pool-gky]gateway-list 192.168.1.254 ##配置DNS地址(DNS域名解析协议) [R1-ip-pool-gky]dns-list 8.8.8.8 114.114.114.114 ## 配置地址池的地址租期(0天8小时0分钟) [R1-ip-pool-gky]lease day 0 hour 8 minute 0 ### 配置地址池中不参与自动分配的IP地址 [R1-ip-pool-gky]excluded-ip-address xxx.xxx.xxx.xxx #退出地址池配置模式 [R1-ip-pool-gky]quit #绑定DHCP服务到接口(#配置DHCP的类型(全局/接口/中继)|模式) [R1]interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1]ip address 192.168.1.254 24 [R1-GigabitEthernet0/0/1]dhcp select global #检查DHCP的配置 display dhcp server statistics PC>ipconfig
接口模式
#接口模式
# 全局开启DHCP服务 [R1]dhcp enable #进入接口 [R1]interface GigabitEthernet 0/0/2 #设置IP [R1-GigabitEthernet0/0/2]ip address 192.168.2.254 24 #将DHCP类型改为接口模式 [R1-GigabitEthernet0/0/2]dhcp select interface ## 配置地址池的地址租期(0天8小时0分钟) [R1-GigabitEthernet0/0/2]dhcp server lease day 0 hour 8 minute 0 ##配置DNS地址(DNS域名解析协议) [R1-GigabitEthernet0/0/2]dhcp server dns-list 8.8.8.8 114.114.114.114
总结:
DHCP可以基于接口或者全局地址池进行自动分配,实现自动地址管理。
大概工作原理是客户端向服务器寻找服务器,服务器回复客户端信息,客户端请求地址,服务器端先确认地址没有被使用然后分配给客户端使用,客户端在租约到期前找服务器续约。DHCP优先分配用过的地址和手动绑定的地址,然后从空闲地址分配。