内网中利用wireshark分析ping命令执行过程.docx
《内网中利用wireshark分析ping命令执行过程.docx》由会员分享,可在线阅读,更多相关《内网中利用wireshark分析ping命令执行过程.docx(13页珍藏版)》请在冰豆网上搜索。
内网中利用wireshark分析ping命令执行过程
内网中利用Wireshark分析ping命令执行过程
Ping命令是我们常用的用来探查网络导通性的工具,ping命令执行结果往往能反应出网络的一些问题,下面我们用wireshark来分析一下内网中ping命令执行过程及几种常见结果和其原因?
1.Ping的过程:
ping属于icmp协议的探查消息,属于ip层协议,利用发出request消息携带一段字符串到目的ip,当收到目的ip返回的reply消息,携带同一段字符串返回时,认为网络层是导通的。
当cmd下输入ping命令后,操作系统首先查询路由表,看是否是符合直连路由,符合的话,要查询arp缓存里是否有对应目的ip的arp地址,没有的话,要发起arp广播request消息,来获取目的ip的mac地址,获取成功后,ip层组成ping消息,二层进行mac层封装,发出二层单播消息出去到目的ip地址。
当发现不符合直连路由,就查缺省路由,这时要查询缺省网关的mac地址,当arp缓存里有缺省网关的ip的mac地址时,直接发包,没有的话,要发起二层广播arp请求消息,去请求网关的mac地址,获得到网关mac后,二层组包发出ping的request消息。
目的ip网段的网关收到ping的request消息后,检查对应arp缓存表,有的话,直接转发arp请求消息,没有的话,发起在本网段的arp查询请求二层广播消息,获得应答后,根据mac地址组包,对方目的ip收到ping的request消息后,查询自身的路由表,有回程路由的话组成ping的reply消息,携带request里携带探查字符串发回到源目的ip侧。
2.如图:
测试环境
本机一个主板集成网卡192.168.205.201,配置为上网网卡有默认的网关205.1和dns地址,这是默认的上网ip。
一个usb网卡,仅配置ip地址18.250.0.145,掩码是24位。
没有网关ip,仅用来访问内网一些特殊设备。
我们先用usb的ping出进行测试。
集成网卡的mac地址是44-37-E6-8E-CF-88,usb网卡的mac地址是00-0E-C6-FA-5A-4C。
路由表显示如下:
Arp缓存里显示如下:
1.
2.
3.执行一下ping18.250.0.31看看结果:
去ping18.250.0.31这台嵌入式设备的情况:
看看wireshark里的抓包,过滤arpcontains12-fa-00-91||icmp,其中12-fa-00-91是18.250.0.145的十六进制表示,icmp是ping的协议名。
标识用来区别每一个ping消息,序号表示每个ping包的编号。
1.
2.
3.
4.Ping同网段ip,arp消息发出后,无法获得目的ip的mac地址的情况
去ping18.250.0.45,这个ip要么没开机,要么不存在时的情况:
显示无法访问目标主机,查看一下wireshark里的表象?
每次ping的request消息发出前,都启动了arp的请求消息。
5.没有路由的情况模拟
拔掉主板集成网卡的网线,使上网的路由失效,只留18网段的直连路由,看看情况?
去ping192.168.207.25,同样显示无法访问目标主机
Wireshark里看没有发出任何arp和icmp消息
没有路由时,不会发出任何arp和icmp包。
6.恢复集成网卡的网线的情况
网关的mac地址是C8-50-E9-67-FA-0C。
Ping一个同网段的ip地址192.168.205.54的情况:
Wireshark的抓包情况同usb网段同网段ip的ping情况
1.
2.
3.
4.
5.
6.
6.1.Ping其他网段的情况
6.2.Ping异网段的ip,没有得到reply的情况
6.2.1.这个ip不存在时
去ping192.168.206.10的情况:
发现网关给回了主机不可达,交换机上查询主机地址,发现没有此主机。
在206网段的其他pc上抓包,过滤对应c0-a8-ce-0a的arp广播消息,能发现网关每隔一秒发出一次arp的广播查询消息,因为没有响应,所以会发出多次。
Arp查询没有成功,所以交换机给源主机回主机不可达的icmp消息。
6.2.2.当对方ip存在,但打开防火墙时会出现timeout请求超时的现象
去ping一台内网的pc192.168.206.110的情况:
看抓包
在目的主机上抓包看到,包已经到目的主机,但目的主机没有回。
看arp表里有地址:
看路由表里:
为什么不回消息?
检查防火墙:
关闭后:
6.2.3.没有回程路由,ping过去是timeout
如图,ping172.103.201.105一台内网centos7.0的服务器。
Wireshark的抓包如下:
在目的主机侧执行tcpdump的结果tcpdump-iem1-nneicmp:
Ping的request已经收到,为啥没有回?
检查防火墙是否开启和回程路由是否存在?
防火墙没有打开,检查回程路由是否存在?
发现没有对应的回程路由,192.168.205.0。
添加后观察:
Ping成功。
7.结论:
Ping出现无法访问目标主机时,一般是对方主机ip不存在或者没有开机。
Ping出现timeout时,是对方没有应答,一般检查防火墙是否打开,或者回程路由是否存在,或者回程路由有误,回包发向了错误的地方。
8.知识点:
Ping消息,得到响应的情况下,1秒发出一个request消息,没有得到响应情况下,会间隔大于1秒发出一个request消息。
Windows下默认发四次。
Ping的requset里的id和序号要一致,里面携带的data要一致,原路返回pc的话,证明通道是通的。
同网段ping消息发出前,arp缓存里要有目的ip的mac地址,没有的话,要发起arp请求消息。
Icmp协议有探查和通知错误的作用,如主机不可达,端口不可达,路由选择错误等等。