从BOOTP(Bootstrap Protocol)协议发展而来 (wireshark抓包搜索关键字bootp) UDP封装,服务器使用端口67,客户端使用端口68 动态分配网络信息(IP地址、子网掩码、网关、DNS服务器等) 分配给客户端的网络信息是有租约的 DHCP角色 角色 备注 DHCP Cilent 客户端 请求网络信息的用户 DHCP Server 服务器 能够提供DHCP功能的设备 DHCP Relay 中继 一般为路由器或三层交换机等设备
dhcp报文类型 报文类型 备注 DHCP Discover 发现 客户端寻找DHCP服务器 DHCP Office 提供 服务器响应DHCP Discover报文,该报文也携带了网络信息 DHCP Request 请求 客户端请求服务器对网络信息确认,或者续约租期 DHCP ACK 确认 服务器对DHCP Request报文确认响应 DHCP NAK 不确认 服务器对DHCP Request报文的拒接响应 DHCP Release 释放 客户端释放网络信息通知服务器
ps: Offer和ACK报文也可以说是广播包,因为服务器只是根据MAC地址回应,没有看三层(在ack确认之后才是真正的使用地址)
NAK报文的出现 IP地址可能已经被使用 租期未到期,网络信息还存在,换了DHCP服务器(如:切换网络环境,请求续约,但是服务器不存在该网络信息) 在租期时间过50%后,主机会自动发送DHCP Request报文请求DHCP服务器重新续租
在租期时间过50%一直请求服务器,但服务器未响应,客户端在87.5%会发送DHCP Request报文请求所有DHCP服务器分配网络信息 (注:是以广播的形式发送)
无法获取DHCP服务器分配的网络信息,Windows客户端会自动使用169.254.0.0/16地址,供临时通信
DHCP配置 命令 备注 dhcp enable 开启DHCP功能 dhcp selcet interface 关联接口和接口地址池 dhcp server dns-list [dns服务器地址] 配置接口地址池的DNS服务器 dhcp server lease [day x hour x minute z] 配置接口地址池的租期,默认1天 dhcp server excluded-ip-address [ipaddr1 ipaddr2] 配置接口地址池排除的地址范围 dhcp server static-bind-ip-address [x.x.x.x] mac-address [xxxx-xxxx-xxxx] 配置静态绑定 dhcp select global 关联接口和全局地址池绑定 ip pool [名称] 创建全局地址池 network [地址] 配置全局地址池的可分配的网段地址 gateway-list [地址] 配置全局地址池的网关地址 dns-list [地址] 配置全局地址池的DNS服务器地址 lease [数字] 配置全局地址池下的租期,默认1天 excluded-ip-address [地址] 查看地址池的属性 dhcp select relay 关联接口开启中继代理 dhcp relay server-ip 192.168.10.254 指定DHCP服务器的地址 display ip pool interface [interface 接口名 all] 验证接口地址池的信息 display ip pool name [地址池名称] used 验证全局地址池的信息 ipconfig /release 释放租期 ipconfig /renew 重新获取
DHCP实验 接口地址池
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #SW1 sys sys SW1 vlan batch 10 20 int g0/0/1 p l t port trunk allow-pass vlan 10 20 dhcp enable int vlanif10 ip a 10.0.0.254 24 dhcp select interface dhcp server lease day 0 hour 1 dhcp server dns-list 223.5.5.5 114.114.114.114 dhcp server excluded-ip-address 10.0.0.200 10.0.0.253 dhcp server static-bind ip-address 10.0.0.88 mac-address 5489-98db-4190 int vlanif20 ip a 20.0.0.254 24 dhcp select interface ####################################################### #SW2 sys sys SW2 vlan batch 10 20 int g0/0/1 p l t port trunk allow-pass vlan 10 20 int g0/0/2 p l a p d vlan 10 int g0/0/3 p l a p d vlan 20
全局地址池
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #SW1 sys sys SW1 vlan batch 10 20 int g0/0/1 p l t port trunk allow-pass vlan 10 20 dhcp enable ip pool dev gateway-list 10.0.0.254 network 10.0.0.0 mask 255.255.255.0 lease day 0 hour 2 minute 0 dns-list 223.5.5.5 119.29.29.29 static-bind ip-address 10.0.0.100 mac-address 5489-98db-4190 ip pool ops gateway-list 20.0.0.254 network 20.0.0.0 mask 255.255.255.0 lease day 0 hour 2 minute 0 dns-list 223.5.5.5 119.29.29.29 int vlanif10 ip a 10.0.0.254 24 dhcp select global int vlanif20 ip a 20.0.0.254 24 dhcp select global ################################## #SW2 sys sys SW2 vlan batch 10 20 int g0/0/1 p l t port trunk allow-pass vlan 10 20 int g0/0/2 p l a p d vlan 10 int g0/0/3 p l a p d vlan 20