1、七层参考模型及IP讲解
2、TCP三次握手讲解
3、TCP四次挥手讲解及抓包分析
4、DHCP协议讲解及抓包分析
5、静态综合实验讲解
7、静态路由讲解
8、RIP路由信息协议讲解
9、动态路由协议讲解
10、抓包进行分析RIP以及OSPF的包
11、动态路由OSPF配置综合实验讲解
12、Vlan虚拟局域网技术讲解
13、ACL访问控制列表讲解
14、NAT技术讲解
15、网络综合实验讲解
DHCP,动态主机配置协议
是 RFC 1541(已被 RFC 2131 取代)定义的标准协议,该协议允许服务器向客户端动态分配 IP 地址和配置信息。
DHCP协议支持C/S(客户端/服务器)结构,
1、DHCP客户端: 通常为网络中的PC、打印机等终端设备,使用从DHCP服务器分配下来的IP信息,包括IP地址、DNS等。
2、DHCP服务器: 所有的IP网络设定信息都由DHCP服务器集中管理,并处理客户端的DHCP请求。
常见的两个端口号:
67即为DHCP服务端(server)
68即为DHCP客户端(client)
DHCP采用UDP作为传输协议,客户端发送消息到DHCP服务器的的67号端口,服务器返回消息给客户端的68号端口。
通常DHCP 服务器向客户端提供以下信息:
IP 地址,子网掩码以及默认网关
还可以提供其他信息,比如域名服务 (DNS) 服务器等的地址。
DHCP服务器为客户端分配IP地址有三种形式:
第一种:手动分配:管理员将一个IP地址固定分配给一个客户端。
第二种:自动分配:随机地将地址永久性分配给客户端。
第三种:动态分配:随机地将地址分配给客户端使用一段时间。
第三种是 最常见 的使用形式。
地址的有效使用时间段称为租用期,租用期满之前,客户端必须向服务器请求继续租用。
服务器收到请求后才能继续使用,否则无条件放弃。
DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。 为了能继续使用原先的IP地址,DHCP客户端会向DHCP服务器发送续租的请求。
DHCP续租的工作流程描述如下:
1、在使用租期过去50%时刻处, 客户端向服务器发送单播DHCP REQUEST报文续延租期。
2、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。
如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。
在使用租期过去87.5%时刻处,向服务器发送广播DHCP REQUEST报文续延租期。
3、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。
如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。
在使用租期到期时,客户端自动放弃使用这个IP地址,并重新DHCP。
服务流程:
1、客户端广播请求 :当计算机启动时,会向网络上广播一个特殊的DHCP请求,以寻求可用的IP地址,也就是DHCP请求包(DHCP Discover)广播
2、DHCP服务器提供回应: 当DHCP服务器收到客户端的广播请求后,它将从一个 IP 地址池中选择一个未被使用的IP地址,并通过广播方式将其发送回客户端,即为DHCP Offer包。单播
3、DHCP 客户端确认地址:客户端接收到DHCP服务器发来的回应后,它将检查回应中是否包含了一个可用的IP地址,即为DHCP Request包。
如果有,客户端将发送一个确认消息给DHCP服务器,以告知它已经确认了该IP地址。(进行广播)
4、DHCP服务器更新数据库:DHCP服务器接收了客户端的确认消息,它将确认下这个IP地址已经被分配出去。这个信息将保存在DHCP服务器的数据库中,以确保该IP地址在可用时间内不会被分配给其他客户端。即为DHCP ACK 包单播
寻找DHCP服务器: 当DHCP客户端第一次登录网络,计算机如果发现本机没有IP地址设定,就会以广播发送DHCP discover包来寻找DHCP服务器,即IP地址为255.255.255.255发送特定的广播信息。而在网络上成功安装了TCP/IP协议的主机就会接收这个广播信息,但只有DHCP服务器才会做出响应。
目标MAC为FF-FF-FF-FF-FF-FF (画图时候大多了,图没保存。。。)
服务器分配IP地址: 接收到DHCP discover包的DHCP服务器就会做出响应,它从未分配的IP地址池中挑选一个分配给DHCP客户端,向DHCP客户端发送一个包含分配的IP地址和DHCP Offer。
客户端接受IP地址: DHCP客户端接受到DHCP offer后,选择第一个接收到的提供信息,然后以广播的方式回应所有DHCP服务器 (DHCP request),该包中包含它所发送给DHCP服务器请求IP的内容以及服务器分给它的IP租期。
确认所分配的IP地址: 当DHCP服务器收到DHCP客户端发出的DHCP request之后,便向DHCP客户端单播发送一个包含它所提供的IP地址和DHCP ack,回应可以使用此IP地址。
之后,DHCP客户端将IP地址绑定。同时,其他的DHCP服务器就会收回曾经提供给客户端而客户端未使用的IP地址。
通过Wireshark抓取DHCP获取IP过程的数据报文,这里我用的是Wireshark 4.0.5
这里我采用的是直接抓取,抓取电脑释放IP以及重新DHCP全过程里的数据包。
我们可以看到WLAN有流量波动,所以我将抓取WLAN里交换的数据包。
这里首先win加r调出运行窗口,接着输入cmd命令。
输入ipconfig /release进行释放IP
然后输入ipconfig /renew重新获取IP
如下图所示:
此时我们可以看到IP地址已经重新获取完成,wireshark也已经抓包到了全过程。
接着我们结束抓包。
由于Wireshark在处理DHCP时,使用的是BOOTP协议,所以在Packet Detail 面板中看到的是Bootstrap Protocol,而不是DHCP。
0.0.0.0表示要么没有IP地址,要么代表所有IP地址。这里则表示网卡还没有获取到ip地址,需要向DHCP服务器申请IP地址。
255.255.255.255用来表示本地网络的广播地址,它不能被转发,不能过过网关。
DHCP客户端向服务器发送DHCP Release数据包,以释放IPv4地址并取消所有剩余的租约。
我们主要学习以下几个报文:
客户端使用0.0.0.0发送单播数据包,目的地址是255.255.255.255,向DHCP服务器请求分配192.168.123.112这个IP地址。
Message type: Boot Request (1) DHCP消息类型,1表示请求包
Hardware type: Ethernet (0x01) 硬件类型为Ethernet
Hardware address length: 6 硬件地址长度为6
Hops: 0: 经过DHCP中继数为0
Transaction ID: 0xe007659f ID为0xe007659f
Seconds elapsed: 0 客户端启动时间
Bootp flags: 0x0000 (Unicast) BOOTP标志字段,此处是单播
0… … … … = Broadcast flag: Unicast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0 (0.0.0.0) 客户端IP地址
Your (client) IP address: 0.0.0.0 (0.0.0.0) 自己的(客户端)IP地址
Next server IP address: 0.0.0.0 (0.0.0.0) 下一阶段使用的DHCP服务器的IP地址
Relay agent IP address: 0.0.0.0 (0.0.0.0) DHCP中继器的IP地址
Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) 客户端的MAC地址
Client hardware address padding: 00000000000000000000 客户端硬件地址填充
Server host name not given 服务器主机名
Boot file name not given 启动文件名
Magic cookie: DHCP 与BOOTP兼容
Option: (53) DHCP Message Type (Discover) DHCP消息类型为53
Length: 1 长度为1
DHCP: Discover (1) 发现包
Option: (61) Client identifier 客户端标识符
Length: 7 长度为7
Hardware type: Ethernet (0x01) 硬件类型为Ethernet
Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) 客户端MAC地址
Option: (50) Requested IP Address 请求IP地址
Length: 4 长度为4
Requested IP Address: 10.1.1.142 (10.1.1.142) 请求的IP地址
Option: (12) Host Name 客户端主机名
Length: 10 长度为10
Host Name: heetian-PC 主机名为heetian-PC
Option: (60) Vendor class identifier 供应商类标识符
Length: 8 长度为8
Vendor class identifier: MSFT 5.0 供应商标识符为MSFT 5.0
Option: (55) Parameter Request List 参数请求列表
Length: 12 长度是12
Parameter Request List Item: (1) Subnet Mask 子网掩码
Parameter Request List Item: (15) Domain Name 域名
Parameter Request List Item: (3) Router 路由
Parameter Request List Item: (6) Domain Name Server域名服务
Parameter Request List Item: (44) NetBIOS over TCP/IP Name Server #NetBIOS 名称服务
Parameter Request List Item: (46) NetBIOS over TCP/IP Node Type #NetBIOS 节点类型
Parameter Request List Item: (47) NetBIOS over TCP/IP Scope #NetBIOS 作用范围
Parameter Request List Item: (31) Perform Router Discover 完成路由发现
Parameter Request List Item: (33) Static Route 静态路由
Parameter Request List Item: (121) Classless Static Route 无类静态路由
Parameter Request List Item: (249) Private/Classless Static Route (Microsoft) 私有静态路由
Parameter Request List Item: (43) Vendor-Specific Information 供应商特定信息
Option: (255) End
Option End: 255
Padding
DHCP服务器以单播的形式,往客户端发送DHCP Offer,告诉客户端192.168.123.112地址可用,并给出IP的子网掩码、广播地址。也可以看到IP地址的租期是24个小时,租期的1/2是12小时,租期的7/8是21个半小时。
当拥有时长达到租赁时长一半的时候,机器将发送一个续约包给dhcp服务器,dhcp服务器将发送一个ack确认包,如果未收到,机器将在3/4租赁时长再次发送续约包
Bootstrap Protocol (Offer)
Message type: Boot Reply (2) DHCP消息类型,2表示响应包
Hardware type: Ethernet (0x01) 硬件类型为Ethernet
Hardware address length: 6 硬件地址长度为6
Hops: 0 经过DHCP中继数为0
Transaction ID: 0xe007659f ID为0xe007659f
Seconds elapsed: 0 客户端启动时间
Bootp flags: 0x0000 (Unicast) BOOTP标志字段,此处是单播
0… … … … = Broadcast flag: Unicast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0 (0.0.0.0) 客户端IP地址
Your (client) IP address: 10.1.1.142 (10.1.1.142) 自己的(客户端)IP地址
Next server IP address: 10.1.1.1 (10.1.1.1) 下一阶段使用的DHCP服务器的IP地址
Relay agent IP address: 0.0.0.0 (0.0.0.0) DHCP中继器的IP地址
Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) 客户端的MAC地址
Client hardware address padding: 00000000000000000000 客户端硬件地址填充
Server host name not given 服务器主机名
Boot file name not given 启动文件名
Magic cookie: DHCP 与BOOTP兼容
Option: (53) DHCP Message Type (Discover) DHCP消息类型为53
Length: 1 长度为1
DHCP: Offer (2) 响应包
Option: (54) DHCP Server Identifier DHCP服务标识符
Length: 4 长度为4
DHCP Server Identifier: 10.1.1.1 (10.1.1.1) DHCP服务标识符
Option: (51) IP Address Lease Time IP地址租约的最短时间
Length: 4 长度为4
IP Address Lease Time: (4294967295s) infinity IP地址租约的最短时间为无限期
Option: (1) Subnet Mask 子网掩码
Length: 4 长度为4
Subnet Mask: 255.255.255.0 (255.255.255.0) 子网掩码值是255.255.255.0
Option: (28) Broadcast Address 广播地址
Length: 4 长度为4
Broadcast Address: 10.1.1.255 (10.1.1.255) 广播地址值为10.1.1.255
Option: (6) Domain Name Server 域名服务
Length: 12 长度为12
Domain Name Server: 10.1.1.1 (10.1.1.1) 域名服务地址为10.1.1.1
Domain Name Server: 8.8.8.8 (8.8.8.8) 域名服务地址为8.8.8.8
Domain Name Server: 8.8.8.8 (8.8.8.8) 域名服务地址为8.8.8.8
Option: (3) Router 路由
Length: 4
Router: 10.1.1.1 (10.1.1.1) 路由器地址为10.1.1.1
Option: (15) Domain Name 域名
Length: 17
Domain Name: cs2cloud.internal 域名为cs2cloud.internal
Option: (43) Vendor-Specific Information 供应商特定信息
Length: 7
Value: 020400000001ff
Option: (60) Vendor class identifier 供应商类标识符
Length: 8
Vendor class identifier: MSFT 5.0
Option: (255) End
Option End: 255
Padding
客户端在得到DHCP服务器回复IP地址可用后,即请求分配192.168.123.112地址。 不过,客户端还没有获取到合法的IP地址,依然只能以0.0.0.0发送单播数据包,目的地址255.255.255.255。
Bootstrap Protocol (Request)
Message type: Boot Request (1) DHCP消息类型,1表示请求包
Hardware type: Ethernet (0x01) 硬件类型为Ethernet
Hardware address length: 6 硬件地址长度为6
Hops: 0 经过DHCP中继数为0
Transaction ID: 0xe007659f ID为0xe007659f
Seconds elapsed: 0 客户端启动时间
Bootp flags: 0x0000 (Unicast) BOOTP标志字段,此处是单播
0… … … … = Broadcast flag: Unicast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0 (0.0.0.0) 客户端IP地址
Your (client) IP address: 0.0.0.0 (0.0.0.0) 自己的(客户端)IP地址
Next server IP address: 0.0.0.0 (0.0.0.0) 下一阶段使用的DHCP服务器的IP地址
Relay agent IP address: 0.0.0.0 (0.0.0.0) DHCP中继器的IP地址
Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) 客户端的MAC地址
Client hardware address padding: 00000000000000000000 客户端硬件地址填充
Server host name not given 服务器主机名
Boot file name not given 启动文件名
Magic cookie: DHCP 与BOOTP兼容
Option: (53) DHCP Message Type (Request) DHCP消息类型为53
Length: 1 长度为1
DHCP: Discover (3) 请求包
Option: (61) Client identifier 客户端标识
Length: 7 长度为7
Hardware type: Ethernet (0x01) 硬件类型为Ethernet
Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) 客户端MAC地址
Option: (50) Requested IP Address 请求IP地址
Length: 4 长度为4
Requested IP Address: 10.1.1.142 (10.1.1.142) 请求的IP地址
Option: (54) DHCP Server Identifier DHCP服务器标识符
Length: 4
DHCP Server Identifier: 10.1.1.1 (10.1.1.1) DHCP标识符为10.1.1.1
Option: (12) Host Name 客户端主机名
Length: 10 长度为10
Host Name: heetian-PC 主机名为heetian-PC
Option: (81) Client Fully Qualified Domain Name 客户端完全合格域名
Length: 13
Flags: 0x00 标志位
0000 … = Reserved flags: 0x00 保留标志位
… 0… = Server DDNS: Some server updates 服务器DDNS
… .0… = Encoding: ASCII encoding 编码格式
… …0. = Server overrides: No override 服务重写
… …0 = Server: Client
A-RR result: 0
PTR-RR result: 0
Client name: heetian-PC 客户端名称
Option: (60) Vendor class identifier 供应商类标识符
Length: 8 长度为8
Vendor class identifier: MSFT 5.0 供应商标识符为MSFT 5.0
Option: (55) Parameter Request List 参数请求列表
Length: 12 长度是12
Parameter Request List Item: (1) Subnet Mask 子网掩码
Parameter Request List Item: (15) Domain Name 域名
Parameter Request List Item: (3) Router 路由
Parameter Request List Item: (6) Domain Name Server 域名服务
Parameter Request List Item: (44) NetBIOS over TCP/IP Name Server NetBIOS名称服务
Parameter Request List Item: (46) NetBIOS over TCP/IP Node Type NetBIOS节点类型
Parameter Request List Item: (47) NetBIOS over TCP/IP Scope NetBIOS作用范围
Parameter Request List Item: (31) Perform Router Discover 完成路由发现
Parameter Request List Item: (33) Static Route 静态路由
Parameter Request List Item: (121) Classless Static Route 无类静态路由
Parameter Request List Item: (249) Private/Classless Static Route (Microsoft) 私有静态路由
Parameter Request List Item: (43) Vendor-Specific Information 供应商特定信息
Option: (255) End
Option End: 255
Padding
DHCP服务器收到客户端请求后,用ACK数据包回应,正式确认192.168.123.112分配给该客户端。
当拥有时长达到租赁时长一半的时候,机器将发送一个续约包给dhcp服务器,dhcp服务器将发送一个ack确认包,如果未收到,机器将在3/4租赁时长再次发送续约包。
Bootstrap Protocol (ACK)
Message type: Boot Reply (2) DHCP消息类型,2表示响应包
Hardware type: Ethernet (0x01) 硬件类型为Ethernet
Hardware address length: 6 硬件地址长度为6
Hops: 0 经过DHCP中继数为0
Transaction ID: 0xe007659f ID为0xe007659f
Seconds elapsed: 0 客户端启动时间=
Bootp flags: 0x0000 (Unicast) BOOTP标志字段,此处是单播
0… … … … = Broadcast flag: Unicast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0 (0.0.0.0) 客户端IP地址
Your (client) IP address: 10.1.1.142 (10.1.1.142) 自己的(客户端)IP地址
Next server IP address: 10.1.1.1 (10.1.1.1) 下一阶段使用的DHCP服务器的IP地址
Relay agent IP address: 0.0.0.0 (0.0.0.0) DHCP中继器的IP地址
Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) 客户端的MAC地址
Client hardware address padding: 00000000000000000000 客户端硬件地址填充
Server host name not given 服务器主机名
Boot file name not given 启动文件名
Magic cookie: DHCP 与BOOTP兼容
Option: (53) DHCP Message Type (ACK) DHCP消息类型为53
Length: 1 长度为1
DHCP: ACK (5) 确认包
Option: (54) DHCP Server Identifier DHCP服务标识符
Length: 4 长度为4
DHCP Server Identifier: 10.1.1.1 (10.1.1.1) DHCP服务标识符
Option: (51) IP Address Lease Time IP地址租约的最短时间
Length: 4 长度为4
IP Address Lease Time: (4294967295s) infinity IP地址租约的最短时间为无限期
Option: (1) Subnet Mask 子网掩码
Length: 4 长度为4
Subnet Mask: 255.255.255.0 (255.255.255.0) 子网掩码值是255.255.255.0
Option: (28) Broadcast Address 广播地址
Length: 4 长度为4
Broadcast Address: 10.1.1.255 (10.1.1.255) 广播地址值为10.1.1.255
Option: (81) Client Fully Qualified Domain Name 客户端完全合格域名
Length: 30
Flags: 0x03 标志位
0000 … = Reserved flags: 0x00 保留标志位
… 0… = Server DDNS: Some server updates 服务器DDNS
… .0… = Encoding: ASCII encoding 编码格式
… …1. = Server overrides: No override 服务重写
… …1 = Server: Client
A-RR result: 255
PTR-RR result: 255
Client name: Client name: win7-64-1.cs2cloud.internal 客户端名称
Option: (6) Domain Name Server 域名服务
Length: 12 长度为12
Domain Name Server: 10.1.1.1 (10.1.1.1) 域名服务地址为10.1.1.1
Domain Name Server: 8.8.8.8 (8.8.8.8) 域名服务地址为8.8.8.8
Domain Name Server: 8.8.8.8 (8.8.8.8) 域名服务地址为8.8.8.8
Option: (3) Router 路由
Length: 4
Router: 10.1.1.1 (10.1.1.1) 路由器地址为10.1.1.1
Option: (15) Domain Name 域名
Length: 17
Domain Name: cs2cloud.internal 域名为cs2cloud.internal
Option: (43) Vendor-Specific Information 供应商特定信息
Length: 7
Value: 020400000001ff
Option: (60) Vendor class identifier 供应商类标识符
Length: 8
Vendor class identifier: MSFT 5.0
Option: (255) End
Option End: 255
Padding