DHCP----动态主机配置协议
基于UDP进行封装,端口号67/68(68好端口属于客户端,而67号端口属于服务端)
报文类型
-
DHCP discover:客户端在网络中寻找DHCP服务器,使用的是广播报文。
-
DHCP offer:服务端回复客户端的discover报文(该报文中携带了网络参数【IP,掩码等】)
-
DHCP request:客户端请求获取offer报文中的网络参数
-
DHCP ack:对request报文的确认。
-
DHCP nak:对request报文的拒绝。
-
DHCP release:客户端发送给服务端,要求释放IP地址
-
DHCP inform:当客户端获取到IP地址后,使用该报文获取其他网络参数(现在已经不使用了)
-
DHCP decline:当客户端检测到IP冲突时,告知给服务器使用。
工作过程
-
首先,PC会广播发送DHCP discover报文,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发送DHCP decline报文来通知服务器该IP冲突,并 重新发送一个DHCP discover重新申请IP地址。
-
如果网络中不存在该IP地址,则直接使用该IP内容。
-
-
如果PC需要释放IP地址,则发送DHCP release报文给服务端。
DHCP租期
PC在申请到IP地址后,会启动下述三种计时器。
- 租期更新计时器
- 华为体系中,DHCP服务器下发给PC的IP地址可用默认时长为24小时。
- 当该租期到达50%(12小时),PC会单播发送DHCP request报文给服务器要求续租,如果服 务器回复ACK报文,则租期时间刷新为24小时;若服务器回复NAK报文,则PC立马放弃正在 使用的IP地址,重新申请。若服务器无回复,则继续使用当前IP地址,且租期时间无变化。
- 租期重绑定计时器
- 在网络中,可能会因为某些原因导致服务端没有收到或者无法回复request报文,在这种情况 下,当租期重绑定计时器超时时,PC会重新广播发送DHCP discover报文,在网络上重新寻 找DHCP服务器。
- 如果收到了回复,则刷新各类计时器,使用新的IP地址
- 如果收到了拒绝,则PC立刻停止使用现有IP地址,然后重新申请IP地址
- 在网络中,可能会因为某些原因导致服务端没有收到或者无法回复request报文,在这种情况 下,当租期重绑定计时器超时时,PC会重新广播发送DHCP discover报文,在网络上重新寻 找DHCP服务器。
- 租期失效计时器
- 如果PC在租约到期前都没有收到服务器响应,则PC立即停止使用该IP地址,然后向服务器发 送DHCP releaes报文。
- PC主动放弃使用分配的IP地址,此时PC会将计时器设置为超时,并删除本地的IP地址,向服 务端发送DHCP release报文,主动释放IP地址。
DHCP配置
全局配置
[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
练习题
1.拓扑:如下图所示
2.需求分析
分别在0/0/0和0/0/1使用接口DHCP和全局DHCP分配IP,且各PC间可以PING通。
首先对DHCP Server的两个端口进行IP配置,接下来启动DHCP协议。然后进行接口地址池的配置,首先选择接口,激活接口地址池,配置接口地址池中的DNS.然后打开PC,选择DHCP然后IP就会自动配置。接下来可以点入命令行输入ipconfig查看IP.
接下来就是进行全局DHCP进行配置,首先配置全局地址池,接下来接口调用地址池,然后进行DHCP分配IP地址。
各PC间均可互通可以使用ping命令来执行,选择其中一个PC,其次ping通其他PC.
3.步骤
-
配置IP
对0/0/0配置 <Huawei>sy Enter system view, return user view with Ctrl+Z. [Huawei]sys [Huawei]sysname DHCP Server [DHCP Server]interface GigabitEthernet 0/0/0 [DHCP Server-GigabitEthernet0/0/0]ip address 192.168.1.1 24 [DHCP Server-GigabitEthernet0/0/0]q 对0/0/1配置 <DHCP Server>sy Enter system view, return user view with Ctrl+Z. [DHCP Server]interface GigabitEthernet 0/0/1 [DHCP Server-GigabitEthernet0/0/1]ip address 192.168.2.1 24 Apr 18 2023 23:11:06-08:00 DHCP Server %%01IFNET/4/LINK_STATE(l)[1]:The line pro tocol IP on the interface GigabitEthernet0/0/1 has entered the UP state.
-
接口地址池配置
[DHCP Server]dhcp enable Info: The operation may take a few seconds. Please wait for a moment.done. [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
-
进行DHCP配置PC1 PC2
-
启动DHCP协议
[DHCP Server]dhcp enable
-
配置全局地址池
[DHCP Server]ip pool dizhichi Info: It's successful to create an IP address pool. [DHCP Server-ip-pool-dizhichi]network 192.168.2.0 mask 24 [DHCP Server-ip-pool-dizhichi]gateway-list 192.168.2.1 [DHCP Server-ip-pool-dizhichi]dns-list 8.8.8.8 114.114.114.114 [DHCP Server-ip-pool-dizhichi]q
-
接口调用地址池
[DHCP Server]interface GigabitEthernet 0/0/1 [DHCP Server-GigabitEthernet0/0/1]dhcp select global
-
进行DHCP配置PC3 PC4
4.测试
PC1:
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:fe9a:52f1
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.1.254
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.1.1
Physical address..................: 54-89-98-9A-52-F1
DNS server........................: 1.2.3.4
PC2:
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:feb0:d3c
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.1.253
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.1.1
Physical address..................: 54-89-98-B0-0D-3C
DNS server........................: 1.2.3.4
PC3:
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:fef9:3206
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.2.254
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.2.1
Physical address..................: 54-89-98-F9-32-06
DNS server........................: 8.8.8.8
114.114.114.114
PC4:
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:fecf:2e78
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.2.253
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.2.1
Physical address..................: 54-89-98-CF-2E-78
DNS server........................: 8.8.8.8
114.114.114.114
选择PC3ping通其他PC
PC1
PC>ping 192.168.1.254
Ping 192.168.1.254: 32 data bytes, Press Ctrl_C to break
From 192.168.1.254: bytes=32 seq=1 ttl=127 time=78 ms
From 192.168.1.254: bytes=32 seq=2 ttl=127 time=78 ms
From 192.168.1.254: bytes=32 seq=3 ttl=127 time=79 ms
From 192.168.1.254: bytes=32 seq=4 ttl=127 time=46 ms
From 192.168.1.254: bytes=32 seq=5 ttl=127 time=79 ms
--- 192.168.1.254 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 46/72/79 ms
PC2
PC>ping 192.168.1.253
Ping 192.168.1.253: 32 data bytes, Press Ctrl_C to break
From 192.168.1.253: bytes=32 seq=1 ttl=127 time=62 ms
From 192.168.1.253: bytes=32 seq=2 ttl=127 time=63 ms
From 192.168.1.253: bytes=32 seq=3 ttl=127 time=62 ms
From 192.168.1.253: bytes=32 seq=4 ttl=127 time=47 ms
From 192.168.1.253: bytes=32 seq=5 ttl=127 time=47 ms
--- 192.168.1.253 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 47/56/63 ms
PC4
PC>ping 192.168.2.253
Ping 192.168.2.253: 32 data bytes, Press Ctrl_C to break
From 192.168.2.253: bytes=32 seq=1 ttl=128 time=31 ms
From 192.168.2.253: bytes=32 seq=2 ttl=128 time=47 ms
From 192.168.2.253: bytes=32 seq=3 ttl=128 time=47 ms
From 192.168.2.253: bytes=32 seq=4 ttl=128 time=47 ms
From 192.168.2.253: bytes=32 seq=5 ttl=128 time=47 ms
--- 192.168.2.253 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 31/43/47 ms