DHCP笔记
DHCP----动态主机配置协议
基于UDP进行封装,端口号67、68,分别用于客户端和服务端,(源端口/客户端68,目的端口/服务端67)
报文类型
DHCP discover:客户端在网络中寻找DHCP服务器,使用广播报文 R1R2说可能是找我的
DHCP offer:PC1:我先接到谁给我的offer我就选谁
DHCP request:PC1广播给R1发请求,R2看到request的ip才发现,你选择的不是我
DHCP ack:对request报文的确认 R1回复广播或单播
DHCP nak:对request报文的拒绝
DHCP release客户端发送给服务端,要求释放IP地址
DHCP inform:当客户端获取到IP地址后,使用该报文获取其他网络参数
DHCP decline:当客户端检测到IP冲突时,告知给服务器使用
**工作过程**
首先,PC会广播发送DHCPdiscover报文,server在接收到这个广播包后,会选择一个未分配的IP地址,然后(广播或单播)发送一个DHCP
offer报文,该报文携带了网络参数给PC
华为体系中,所有的网络设备均使用单播,linux使用广播,windows两者均可
若网络中存在多个DHCP服务器,又因为discover报文是广播发送,故所有DHCP服务器均会回复offer报文给PC端。此时,PC仅对接收到的第一个offer报文进行回复,其余均丢弃。
PC再一次使用广播发送request报文向server请求offer报文中携带的网络参数
request报文有两重意义;1、向选择的服务器请求网络参数;2、告诉其余服务器,已经有了选择。
服务器接收到request报文后,若目的为本地,则发送ACK报文回复;若目的不为本地,则丢弃报文
当存在两台PC同时请求地址,结果服务器给出的地址是同一个,这也就会导致后一个发送request报文的PC无法获取地址
PC接收到ack报文后,可以使用该IP地址,但是同时PC会发送三次免费ARP来检测网络中是否有其他主机使用该IP地址
如果网络中存在该IP地址,则PC向server发送DHCPdecline报文来通知服务器该IP冲突,并重新发送一个DHCPdiscover重新申请
**DHCP租期**
PC申请到IP地址后,会启动下述三种计时器
- 租期更新计时器
- 华为体系中,DHCP服务器下发给PC的IP地址可用**默认时长为24小时**
当该租期到达50%(12小时)PC会单播发送DHCPrequest报文给服务器要求续租,如果服务器回复ACK报文,则租期时间刷新为24小时;若服务器回复NAK报文,则PC立马放弃正在使用的IP地址,重新申请。若服务器无回复,则继续使用当前IP地址,且租期时间无变化。
租期重绑定计时器
在网络中可能会有因为某些原因导致服务端没有收到或无法回复request报文,这种情况下,当租期重绑定计时器超时时,PC会重新广播发送DHCPdiscover报文,在网络上重新寻找DHCP服务器
如果收到了回复则刷新各类服务器,使用新的IP地址
如果收到了拒绝,则PC立刻停止使用现有IP地址,然后重新申请IP地址
租期失效计时器
如果PC在租约到期前都没有收到服务器响应,则PC立即停止使用该IP地址,然后向服务器发送DHCPrelease报文
PC主动放弃使用分配的IP地址,此时PC会将计时器设置为超时,并删除本地的IP地址,向服务器发送DHCPrelease报文,主动释放IP地址。
**DHCP配置**
```bash
全局配置
[DHCP Server]interface GigabitEthernet 0/0/0
[DHCP Server-GigabitEthernet0/0/0]ip address 192.168.1.1 24
1、启动DHCP协议
[DHCP Server]dhcp enable
2、配置全局地址池
[DHCP Server]ip pool afhueqgafasfa121321----创建池塘
[DHCP Server-ip-pool-afhueqgafasfa121321]network 192.168.1.0 mask 24 ---配置可分配的IP
地址网段
[DHCP Server-ip-pool-afhueqgafasfa121321]gateway-list 192.168.1.1 ----配置网关信息
[DHCP Server-ip-pool-afhueqgafasfa121321]dns-list 8.8.8.8 114.114.114.114 ----配置DNS
3、接口调用地址池
[DHCP Server]interface GigabitEthernet 0/0/0
[DHCP Server-GigabitEthernet0/0/0]dhcp select global
[DHCP Server-ip-pool-afhueqgafasfa121321]excluded-ip-address 192.168.1.100 ---排除
192.168.1.100
[DHCP Server-ip-pool-afhueqgafasfa121321]excluded-ip-address 192.168.1.100 192.1
68.1.200 ---排除192.168.1.100--192.168.1.200的所有IP地址
[DHCP Server-ip-pool-afhueqgafasfa121321]lease day 999 hour 0 minute 0 ---修改租期时间
为999天0小时0分
接口地址池配置
[DHCP Server]dhcp enable
[DHCP Server]interface GigabitEthernet 0/0/0
[DHCP Server-GigabitEthernet0/0/0]dhcp select interface ----激活接口地址池
[DHCP Server-GigabitEthernet0/0/0]dhcp server dns-list 1.2.3.4 ---配置接口地址池中的DNS
```