??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
ping不通,找房东-----从一个ping包来解析网络转发原理

转载   小小探险家   2018-11-07   浏览量:14


“房东,我ping不通了”,相信在外打工租房的各位都有过这个经历吧。ping不通,一个简单的现象,其实蕴藏着很多的过程,今天我们就来谈谈,ping不通该怎么办。

在说这些之前,先介绍几个概念:
1、ping包
ping包走的是ICMP协议,什么是ICMP协议呢,Internet控制报文协议,字面意思不好理解,作用很简单,就是发送一些控制消息,来检测链路。

要了解一个协议,我们一般先看它是怎么封装的,查什么书籍都是假的,最好的办法就是自己去抓一个包看看,抓包的工具有很多种,我喜欢用wireshark(windows)和tcpdump(linux),抓包工具怎么用,自行去度娘

抓到的报文如下,一步步慢慢分析:
ping不通,找房东-----从一个ping包来解析网络转发原理

首先是以太头
ping不通,找房东-----从一个ping包来解析网络转发原理

我们知道,MAC地址是用来唯一标识网卡的,暂时理解为网卡门牌号吧。
DMAC:目的mac,也就是你的数据包要发给谁,
SMAC:源mac,你自己网卡的门牌号
type:数据包的类型

tips:小知识,这里插一句,如果是三层转发,DMAC一般是你网关的mac地址,如果是二层转发,DMAC则是目的端的MAC地址,这也是区分一个数据包是二层还是三层转发最好的方法
ping不通,找房东-----从一个ping包来解析网络转发原理

ping不通,找房东-----从一个ping包来解析网络转发原理

IP层,主要看几个吧
dscp:最大的用处就是区分报文优先级,我们都知道,协议报文需要高优先级
flags:分片的标志,下面的fragment offset是指分片的偏移量
protocol:协议类型,可以看到 我们的ping是通过icmp协议

ping不通,找房东-----从一个ping包来解析网络转发原理

icmp里面比较重要的2个 type和code,以此来决定这个icmp报文是干嘛的
这里的type 8 code 0,是icmp request,具体这些代表什么意思,我们可以去查RFC792
https://tools.ietf.org/html/rfc792

WHAT?什么是RFC,我只听过KFC,问题不大,自己去度娘
ping不通,找房东-----从一个ping包来解析网络转发原理

2、再来说第二个概念,ARP
ARP是什么,地址解析,所谓的地址解析就是根据IP地址来获取MAC地址,上面的报文你也看到了,你要ping别人,要知道别人的ip,别人的mac,发到网关的需要知道网关的mac,发到目的端的需要知道目的端的mac。

ARP的过程很简单,客户端先发一个arp请求,比如你知道了10.10.10.10这个ip,但是你不知道mac,你就需要发一个arp请求来获取。

好了 我们照例抓一个包,来看看arp是怎么工作的
ping不通,找房东-----从一个ping包来解析网络转发原理

arp的请求报文是一个广播报文,所以他的dmac就是ff:ff:ff:ff:ff:ff,你知道了对方的ip,但是不知道对方的mac,所以你的target mac就填00:00:00:00:00:00就行,看上图,这是一个arp请求报文,我想知道10.51.30.122的mac是多少。arp请求报文会在局域网广播,如果你不是10.51.30.122,那么你收到这个报文后,会直接丢弃不处理,如果你恰好是10.51.30.122这个ip,那么就会做一个arp应答。

我们再来看一个arp应答报文
ping不通,找房东-----从一个ping包来解析网络转发原理

10.51.30.122这个地址收到arp请求后,会发一个单播报文给我,告诉我它的mac,同时他也会记录我的mac和ip,在他那边会保存我的arp信息,同时我也保存了它的,下次我再找他,直接查arp表就可以了,不再需要再发一起ARP请求,当然,如果arp老化了,那么这样的流程还得再来一次咯

3、DNS
有些人喜欢ping百度,如果ping的是域名,那中间又多了一层处理,那就是域名解析,来来来,继续抓包
ping不通,找房东-----从一个ping包来解析网络转发原理

可以看到 我由于不知道百度的ip是多少,所以我先发给了114.114.114.114,域名解析服务器,他帮我解析以后再吧ip告诉我。
ping不通,找房东-----从一个ping包来解析网络转发原理

于是我重新封装报文,目的ip直接选择了216这个地址发送了icmp request
ping不通,找房东-----从一个ping包来解析网络转发原理
大功告成,ping也就通了
-------------------------------------------------------------分割线----------------------------------------------------------

搞毛???文章的标题不是ping不通吗,那你解释一堆ping通干什么,其实我们从原理里面反推一下,ping不通的理由到底有哪些嘛~ 每一个环节都检查一遍,那么问题不就迎刃而解了嘛~

ping不通,找房东-----从一个ping包来解析网络转发原理
来来来,我先来画个图,二层转发不过网关我就不画了,直接来一个三层转发图
ping不通,找房东-----从一个ping包来解析网络转发原理
这是一个简单的图,下面我来慢慢的一步步的写下步骤,假设我就去ping百度,一般现在看自己能不能上网不都是ping百度嘛~嘿嘿~
1、首先客户端要对百度的域名进行解析才能获取到IP地址,才能进一步封装自己的ping包,所以他首先发到域名服务器(假设我配置的是114.114.114.114),等域名服务器帮我解析好以后,给了我百度的ip地址,220.181.57.216,那么这里,我要去域名服务器,我是怎么去的呢,当然首先查看路由表
ping不通,找房东-----从一个ping包来解析网络转发原理
很明显,我没有直接去114.114.114.114的路由,所以我只能发给网关,也就是上图的192.168.0.1,由网关去处理(如果你不知道网关的mac,需要先发广播arp给网关,拿到网关的mac来维护arp表),之后网关把域名解析的结果返还给我,我就有了baidu的ip地址。

2、有了目的IP,客户端就准备封装报文,因为是三层转发,我不需要知道百度的mac地址,我只要知道网关的mac就行了,dmac=网关mac,dip=百度ip,直接发送ping包,由于网关的mac上面已经发送过一次arp请求了,所有网关的arp已经保存在客户端的arp表了
ping不通,找房东-----从一个ping包来解析网络转发原理

3、数据包到了网关,因为是到公网去,这里面的处理就不说了,用一条命令可以查看你的数据包经过了多少的跃点
ping不通,找房东-----从一个ping包来解析网络转发原理
4、百度收到了我的ping包以后,于是如法炮制的获取它的网关arp信息,再把封装好的icmp reply给我发了回来,等我的网关收到了这个reply以后,发现目的IP是我,通过路由直接转发给了我,这里整个过程就完成了。

tips:对于过来的数据包,网关会自行学习数据包的源mac信息,维护自己的mac表和arp表

好了,如果ping不通,那么你想想有哪些原因呢,一步步的去检查,一步步的去抓包分析,你就能找到原因,ping不通,不用找房东,自己把网线捋一捋,不就通了啊
ping不通,找房东-----从一个ping包来解析网络转发原理

转载自://blog.51cto.com/14009921/2314248

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



Get小技能:Windows桌面远程控制。
体验Windows系统自带的远程连接功能
广域网-HDLC协议
广域网广域网(WAN,WideAreaNetwork)通??缃雍艽蟮奈锢矸段?,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。局域网通常作为广域网的终端用户与广域网相连。广域网一般由电信部门或公司负责组建、管理和维护,并向全社会提供面向通信的有偿服务、流量统计和计费问题,比如家庭用户通过ADSL上网或通过光纤接入Internet
专题V P N-远程访问V P N
还有一种VPN是远程访问VPN,这种VPN用于在外出差的员工通过Internet访问企业内网。将企业路由器配置成VPN服务器,在外出差的员工将电脑接入Internet就可以建立到企业内网的VPN拨号连接,拨通之后就可以像在公司内网一样访问网络资源。如图所示,AR1是企业的路由器,将其配置为VPN服务器,PC3建立到AR1的VPN拨号连接,VPN服务器分配给PC3一个192.168.1.4内网地址
SSL TLS认证架构和原理简介
SSL/TLSCertificates–TheirArchitecture,Process&Interactions翻译文档SSL/TLSCertificatesandhowSSL/TLSworks您可能听说过SSL,您的网站甚至可能使用SSL加密-但您知道它是如何工作的吗?你想关心一下?当然可以。你有一个好奇心,这就是你点击这个链接的原因!在本文中,我们将介绍SSL的内部工作原理,包括S
SD-WAN架构的基本要素:优势和选择
软件定义的广域网络或SD-WAN为传统的基于硬件的网络提供了软件定义网络(SDN)技术的优势。它是一种覆盖架构,提供了比传统WAN更易于管理的网络基础,实质上是将控制层移至云端,在此过程中,集中并简化了网络管理。这种叠加设计从硬件中抽象出软件,实现网络虚拟化并使网络更具弹性。企业在SD-WAN架构中需要什么?光联集团发现企业越来越多地投资于开放,灵活的云解决方案,SD-WAN代表着在数据中心架构中
网络健康度检测插件添加DHCP冲突检测功能。
不合法(私接)的DHCP服务,会使局域网其他客户机获取到错误的IP地址,从而导致上不了网。为了诊断此问题,WFilter的网络健康度检测插件的再次升级添加了"DHCP冲突检测”的功能。具体步骤如下图:内网的检测项中添加了“DHCP冲突检测”,一旦发现异常,会提示“检测到多个DHCP服务”。点击“异?!钡某唇?,可以看到DHCP服务器的MAC地址、厂商、分配的网关IP和分配的客户机IP地址
网络设备配置备份工具
最近写了个备份工具,支持cisco_ios、cisco_asa、Huawei、Juniper等设备,支持同一型号设备批量备份。以下示范:
SD-WAN如何支持视频会议
光联集团发现越来越多的公司正在投资基于IP的视频会议,以促进通常地理位置分散的员工,合作伙伴和客户之间的协作。但是,如果视频质量和性能存在持续问题,员工不会使用这些系统,那么IT团队就会对所有支持问题感到沮丧,而高管们也看不到他们的价值。软件定义的广域网和网络功能虚拟化等新兴技术可确保高质量的视频会议,无论距离和站点跨越多大,从公司总部到分支机构,再到全球各地的办公室。视频会议正在成为企业日?;疃?/h6>
如何用ping命令来检测网络问题?
ping命令可以说是网络管理中最常用的一个命令行工具了,利用ping可以非常迅速的诊断出网络问题。今天,我就来教大家如何用ping来检测网络问题。当网络缓慢,上不了网时,请按如下步骤来执行ping命令:1.ping内网网关首先要先ping内网的网关地址,确保内网是畅通的。如下图:内网的丢包率应该为0,有线ping值一般在1ms以内,无线ping值1ms-20ms之间。如果存在丢包或者ping值很
Linux centos 连接云主机的PPTP v.p.n 服务
提示一点:在服务端配置pptpd服务时,/etc/pptpd.conf配置文件中:localip跟remoteip不要配置在同一网段,配置为任意内网网段即可。windows下连接pptp服务很简单,鼠标一步一步点就行;而centos默认不支持连接pptp服务,配置也相对麻烦一点点;一,命令行下连接pptp***:1.准备环境:通过yum安装所需软件包:yum-yinstallppppptppptp