
简介:为了更好地观察DHCP续租等过程,利用windows server 2012 搭建DHCP服务器
(1)我准备了一台windows server 2012虚拟机、一台windows10,2012搭建服务器,win 10测试。
(2)搭建DHCP服务器必须要有静态的ip地址,这里咱们没有就随便填写即可
右击电脑右下角小电脑的图标,点击“打开网络和共享中心”
(3)在d出的窗口上选择“更改适配器设置”
(4)右击小电脑,点击属性
(5)点击ipv4 的Internet 协议版本
(6)配置ip地址
(7)接下来就是安装DHCP服务,打开仪表板,点击添加角色和功能
(8)服务器选择本机
(9)选择dhcp服务器添加功能,如果没有配置静态的ip就会收到提醒
(10)下一步即可
(11)安装完成后点击工具中的 DHCP
(12)点击新建作用域
下一步
填写信息(随便填)
填写想要分配的ip段
依情况而(起始和结束打同样的地址,表示这个地址不会分配出去,或者一个范围,按需要来,如下),下一步
默认就好
选择如下图选项
填写之前配好的网关即可
这里dns,wins,暂时不配置,默认就好
下一步
完成
现在就可以看到咱们新建的作用域了
打开windows 测试,网络的获取形式为自动,把网络放在同一网段内,这里我们把网络放在VMnet8网卡上,最好把虚拟机的DHCP也关掉
查看2012 就可以看到已经分配了(没有的刷新一下)
window10 端
DHCP搭建完成
(1)打开wireshark并过滤dhcp包
可以看到红色部分为咱们创建的DHCP服务
DHCP续租过程通常被称为DORA过程,因为它使用了四种类型的DHCP数据包 ,发现(discover)、提供(offer)、请求(request)、确认(acknowledge)
1)第一阶段discover
第一个包从0000的68端口发往255255255255的67端口,客服端使用的是0000,是因为它目前还有没有ip地址。数据包发往255255255255,是因为这是一个独立于网络的广播地址,从而确保这个数据包发送到它所在网络上的每个设备,简单来说就是某计算机A大喊我没ip地址,DHCP 看到后就会响应
1)第二阶段offer
范围内的DHCP服务器接收到discover 请求后,会向客户端发出DHCP Offer 报文作为回应,该报文包含该DHCP服务器可向DHCP客户端提供的IP地址以及该DHCP服务器自己的IP地址信息
ip 地址的租期为8天
子网掩码为:2552552550
这里理论上还有DNS ,router等信息,因为咱们没有配置,所以没有
3)第三阶段request
这个文件依然是从ip地址0000发出,因为还没有完成获取ip地址的过程,以广播的形式发送DHCP Request 报文,该报文会加入对应DHCP服务器的地址以及所需要的IP。
4)第四阶段 ack确认
被选择的DHCP服务器通过ack报文把在offer报文中准备的ip地址租约给对应客户端。这时客服端就有ip地址了。
发现在这个ARP包中,sender IP和Target IP是一个,证明了这是一个"希望全网络都知道的广播",一般发生在自己的IP发生变化,或者系统刚初始化好的时候
TTL是存活时间,一般可以用PING来检验 两个节点中间有多少个路由器
注意,在这里我们可以看到,ACK应答和真正的>
Wireshark作为网络工具,一直被推崇;wireshark可以通过TCP的端口号的个数,或者Stream index的个数,来判定有几个线程;可以通过分段分片的消息,判定是否分片;可以通过mss判定MTU的大小。
抓eNb的WireShark pcap
tcpdump -p sctp -i eth2 -w aapcap
epc内部抓不同口,开两个ssh,抓取S1U和SGI的数据包
tcpdump -i eths1u -s 0 -w s1ucap
tcpdump -i ethsgi -s 0 -w sgicap
Wireshark的时序图产生一个TCP序号vs时间的图形。
在Wireshark的菜单Statistics ->TCP Stream Graph -> Time-Sequence Graph下,有两种格式的时序图,stevens和tcptrace。Stevens时序图描述了流量(序号)随着时间的变化,主要用于查看流量变化的情况,是否有中断、丢包、大时延的情况,命名取自W.Richard Stevens写的经典书籍《TCP/IP协议详解》。
Tcptrace时序图除了stevens时序图的内容外,还记录了对端ACK值和接收窗口的变化,内容较stevens时序图要丰富。Tcptrace原是Ohio University的Shawn Ostermann写的一个工具。
正常情况下,如果TCP速率稳定,那么在stevens时序图上看到的将是一条笔直上升的斜线,它的斜率等于速率,下面是放开限速的情况下的速率图,速率为100Mbps。
最好的情况下对应的WireShark的抓包
相比Stevens时序图,tcptrace时序图增加了对端ACK值和接收窗口变化的序号。如下图,中间黑色的粗线代表了发送的包,下方浅色的线代表了上一个ACK确认的包序号,上方浅色的线表征了TCP窗口,它等于上一个TCP ACK序号再加上TCP链路的window size。
下图为限速的情况下的序列图,下行限速1Mbps:
TCP segment of a reassembled PDU指的不是IP层的分片,IP分片在wireshark里用Fragmented IP protocol来标识。TCP segment of a reassembled PDU指TCP层收到上层大块报文后分解成段后发出去。
数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层。但是对于分段来说,这是经常发生在UDP传输层协议上的情况,对于传输层使用TCP协议的通道来说,这种事情很少发生。
网络层IP协议会检查每个从上层协议下来的数据包的大小,并根据本机MTU的大小决定是否作“分片”处理。分片最大的坏处就是降低了传输性能,本来一次可以搞定的事情,分成多次搞定,所以在网络层更高一层(就是传输层)的实现中往往会对此加以注意。
有些高层因为某些原因就会要求我这个面包不能切片,我要完整地面包,所以会在IP数据包包头里面加上一个标签:DF(Do not Fragment)。
这样当这个IP数据包在一大段网络(水管里面)传输的时候,如果遇到MTU小于IP数据包的情况,转发设备就会根据要求丢弃这个数据包,然后返回一个错误信息给发送者。
TCP数据丢弃会造成网络丢包的发生
在TCP传输过程中(不包括三次握手和四次挥手),同一台主机发出的数据包应该是连续的,即后一个包的Seq号等于前一个包的Seq+Len。也可以说,后一个包的Seq会大于或等于前一个包的Seq。当Wireshark发现后一个包的Seq号小于前一个包的Seq+Len时,就会认为是乱序了,因此提示 [TCP Out-of-Order] 。如图所示,3362号包的Seq=2685642小于3360号包的Seq=2712622,所以就是乱序。
小跨度的乱序影响不大,比如原本顺序为1、2、3、4、5号包被打乱成2、1、3、4、5就没事。但跨度大的乱序却可能触发快速重传,比如打乱成2、3、4、5、1时,就会触发足够多的Dup ACK,从而导致1号包的重传。
当乱序或者丢包发生时,接收方会收到一些Seq号比期望值大的包。它每收到一个这种包就会Ack一次期望的Seq值,以此方式来提醒发送方,于是就产生了一些重复的Ack。Wireshark会在这种重复的Ack上标记[TCP Dup ACK] 。
以图为例,服务器收到的7号包为“Seq=29303, Len=1460”,所以它期望下一个包应该是Seq+Len=29303+1460=30763,没想到实际收到的却是8号包Seq=32223,说明Seq=30763那个包可能丢失了。因此服务器立即在9号包发了Ack=30763,表示“我要的是Seq=30763”。由于接下来服务器收到的10号、12号、14号也都是大于Seq=30763的,因此它每收到一个就回复一次Ack=30763,从图中可见Wireshark在这些回复上都标记了[TCP Dup ACK]。
当发送方收到3个或以上[TCP Dup ACK],就意识到之前发的包可能丢了,于是快速重传它(这是RFC的规定)。以图6为例,客户端收到了4个Ack=991851,于是在1177号包重传了Seq=991851。
如果一个包真的丢了,又没有后续包可以在接收方触发[Dup Ack],就不会快速重传。这种情况下发送方只好等到超时了再重传,此类重传包就会被Wireshark标上[TCP Retransmission]。以图为例,客户端发了原始包之后,一直等不到相应的Ack,于是只能在100多毫秒之后重传了。
1、开Wireshark抓包。
2、PC当前已有IP,使用cmd命令释放IP(ipconfig/release),并重新获取IP(ipconfig/renew)。
3、停止抓包,使用bootp过滤报文。
4、可以看到图中的5个报文,其中DHCPRelease报文为PC释放IP时发出的报文。
实验拓扑如下,linux向R2发送IP分片,并在R2接口上抓包。
ICMP包校验和是连通头部信息加数据本身一起进行校验(ip包只需要校验头部信息)而Scapy自动添加ICMP校验和时只会计算第一分片的数据,当三个分片到达目标主机进行重组后校验不通过,将重组后的数据包丢弃;因此在手动设置IP分片时,需要手动将校验和添加入ICMP首部中。
由于手动计算校验和过程较复杂,可通过wireshark抓包,可以获取到正确的校验和。
抓包结果如下,由于单个数据包长度超过MTU,系统自动将ICMP request包分片发送,同样的ICMP reply系统也进行了分片。
当主机发送分组的长度超过MTU又不可以分片(IP flags位DF置1),则这个分组丢弃,并用ICMP差错报文向主机报告。
参考:( >
以上就是关于wireshark抓包——DHCP 篇全部的内容,包括:wireshark抓包——DHCP 篇、Wireshark抓包分析实战(1) 底层协议篇、Wireshark等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)