《跟唐老师学习云网络》 -第5篇 Ping喂报文
【摘要】 这一章节你的角色是国王,你要派一个小兵去对方打探一下。是站在你的角度看这个小兵。哦,对了,这个小兵的名字叫“喂”。
一、Ping命令介绍
ping就是用来检测一下网络能不能跟对方互通,类似:“大哥,在么?”,“哥在。”,于是你就安心了。为啥你就安心了呢,因为你害怕孤单(汗,其实因为网络不通你啥也玩不了)。
上一节你都学会了路怎么走,咱走一个呗?走一个就是派个小兵帮你走一趟,这个小兵名字叫“喂”。
#ping 10.184.43.7
这个时候,就从本机发出一个报文“喂”,从哪个网卡发出,走到哪个中转站,都在路怎么走章节说过。
小兵派出后,有好几种命运等着他:
1. 没有路到达对方,小兵失败而归。相对来说,这种小兵还是很幸福了。
2. 悲催一点,他半路找不着对方,迷路(失)了。
3. 最惨的情况,路上设置了机关,他在半路被杀了。
4. 好一点的,他到达了对方,但是对方派出的使者却没能到你这。
5. 完美,他成功到达对方,对方的回访使者也回来到你这里了。

其中第二种情况,其实就是对方的“喂”使者出现了3或者4的情况。所以这里大概就三种情况:
1. 成功
2. 没反应
3. 很明确的不通
1.成功
ping报文是ICMP协议中的一种 (就好比TCP协议中的syn,syn报文只是TCP协议中的一种)。
而ICMP协议是与TCP同级的,也就是在IP协议之上的。
ICMP / TCP / UDP 这三个小伙伴,你都熟了以后,一般网络问题都不是问题。

Mac层 -> IP层 -> 三兄 弟
2. 没反应
当你ping对方的时候,一直么有反应,卡住了一样:
# ping 10.184.149.249
PING 10.184.149.249 (10.184.149.249) 56(84) bytes of data.
^C
--- 10.184.149.249 ping statistics ---
107 packets transmitted, 0 received, 100% packet loss, time 106545ms
直到按了 Ctrl + C 才告诉你ping不通(或者直接报 Time Out),现象就是包全部都丢了。
大概意思就是:你这个国王,派出小兵后,一直鸟无音讯,你望眼欲穿啊。。特别令你难过的是,你都派出一堆小兵了啊 T_T~
这种情况就是大家经常遇到的为ping不通的问题,特别是云计算平台里面。基本问题你大概也猜到了,要么你的小兵没能到对方,要么就是对方是回访使者没能回到你这里。那什么情况会导致你的小兵不知道跑哪里去了呢?这种问题,从本机视角是很难发现为什么不通的,也很难知道你的小兵到底跑到哪里被 干掉了,毕竟本机和目的之间可能有很多的中转站。
怎么定位呢?其实也很简单,那就是开启上帝模式,从全局角度去看看小兵到哪里了。直接派上帝(这里就是你自己了)去对方目的地盯着(抓包),看看“喂”报文有没有过来。
有两种情况,分别讨论:
1. 目的地没有收到“喂”报文
2. 目的地收到了“喂”报文
2.1 没有收到“喂”报文
如果目的地没有收到ICMP报文,但是有收到ARP请求(“喂”使者的探路哨兵,ARP章节会介绍),那说明网络连接是好的,只是ICMP不通,八成就是网络安全组把ICMP报文给ban了。
如果目的地很安静,什么都没有收到。那么咱们只能把上帝再往前移一移了,放到中途的中转站看看咱们的这个“喂”使者有没有到达中转站。找出最后能到达的中转站,然后再从这一站开始重新ping目的地。
2.2 有收到“喂”报文
如果收到了ICMP报文,那么说明来的路是通的,只是回去受阻。那你就反过来从目的地开始ping一下对方嘛,这个不就是回到了上面提到的定位方法了么。
有人会问,有没有可能A->ping->B的时候,B能收到报文,但是响应回不来。反过来从B->ping->A,就是通的。或者B->ping->A的时候,同样是报文也能到A,但是响应回不到B。
当然有这种情况了,而且经常遇到,A可以ping通B,B却ping不通A。这种情况一般都是网络安全组的设置导致的。(特别在云计算平台中)安全组大都涉及iptables的规则。所以这里就得分析iptable表对报文的丢包统计,把导致阻塞的那条安全组规则放通就可以了。iptables介绍见后续对应章节。
3. 目标不可达
ping目标的时候,直接结果就是不可达。
# ping 172.17.10.1
PING 172.17.10.1 (172.17.10.1) 56(84) bytes of data.
From 10.120.175.166 icmp_seq=1 Destination Host Unreachable
From 10.120.175.166 icmp_seq=2 Destination Host Unreachable
这个也容易遇到,但其实非常容易解决。这个错误原因就是路由不通,要么是本机路由不通,要么就是中转站的路由不通。
大概意思就是:你这个国王,派出小兵后,虽然期待的对方使者没出现。好歹你的小兵回来了,然后跟你一把眼泪一把鼻涕哭诉:已经走了很多的路,战胜了多少的艰难险阻,但是没能完成出使任务有多么的惭愧。然后求你这个表面上是国王,实际上只是程序猿的家伙去定位一下。
好歹,你大概知道在哪个位置开始不通:
如果是本机直接路由不通,那消息就是:"Destination Host Unreachable,"
如果是中转站路由不通,那消息是:"Reply From < IP address >: Destination Host Unreachable,"
你直接到中转站去ping目的地,中转站就是上面的<IP address>,然后看看为什么路由不通。该中转站后面可能还有很多的中转站,你这个上帝要辛苦一下,把一路上不通的中转站都找出来,加上合理的路由。
二、总结
ping不通?先看路由!路由肯定没问题,那就是安全组搞怪喽!
怎么定位?开启上帝模式,到处抓包判断“喂”到哪里了~
作者:tsjsdbd
《跟唐老师学习云网络》 -第5篇 Ping喂报文的更多相关文章
- 【华为云技术分享】跟唐老师学习云网络 : Kubernetes网络实现
当今K8s独霸天下之时,咱们站在更高的角度,好好的看看K8s网络是以什么理念构筑的.以及一个容器集群的好保姆,是如何分别照顾 南北流量和东西流量的. 一.简单介绍下Kubernetes 略..容器集群 ...
- 【跟唐老师学习云网络】 - 第7篇 Tcpdump大杀器抓包
[摘要] 前面章节的网络协议栈相关的信息建议大家多学习一遍,因为这些都是最基础的东西,想玩好云网络必备基本功.. 一.上帝视角 之前提到过定位问题可以开启上帝视角,那么如何开启就要依靠tcpdump这 ...
- 《跟唐老师学习云网络》 -第4篇 router路咋走啊【华为云技术分享】
[摘要] 好了,到这里至少你应该能看懂路由表信息了.给你一个目的IP,你也应该知道它会使用哪一条路由了. 路怎么走就看骚年你了~ 一.路由 其实关于网络大家遇到最多的问题就是:卧 槽,为什么不通啊! ...
- 【跟唐老师学习云网络】-第8篇 iptables - filter过滤功能
[摘要] 前面的各种协议已经可以把基本可用的物理网络世界给形成了,在正常情况下,它可以玩的很溜.比如组个局域网办公,或者打个联机魔兽争霸,都没有什么问题. 一.背景介绍 前面的各种协议已经可以把基本可 ...
- 【跟唐老师学习云网络】 - 第6篇 ARP你在哪
[摘要] 这一章节你的角色就是ping报文这个"使者",你要去往目的地,然后回到本机.然而目的地路漫漫,不知道要经过多少个小地盘(局域网),没两把刷子也不好行走江湖.所以你作为使者 ...
- python基础学习笔记——网络编程(协议篇)
一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...
- 带你熟悉云网络的“电话簿”:DNS
摘要:无论你域名怎么解析,最终我还是要用IP和别人通信的.域名只是你的皮囊,IP才是你的灵魂. 本文分享自华为云社区<<跟唐老师学习云网络> - DNS电话簿>,作者: tsj ...
- OpenFlow能解决私有云网络VLAN问题么
本文转载自:http://network.51cto.com/art/201202/314310.htm 在关于私有云网络的文章中,我们首先探讨了物理网络是否影响私有云.本文我们将讨论如何通过软件定义 ...
- 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(一)
VPC的概念与基于vxlan的overlay实现很早就有了,标题中的"新"只是一个和传统网络的相对概念.但从前年开始,不同于以往基础网络架构的新一代SDN网络才真正越来越多的走进国 ...
随机推荐
- VM安装CentOS系统
本篇文章主要介绍了VMware安装Centos7超详细过程(图文) 1.软硬件准备 软件:推荐使用VMwear,我用的是VMwear 12 镜像:CentOS7 ,如果没有镜像可以在官网下载 :htt ...
- wangkoala杂题总集(根据个人进度选更)
CQOI2014 数三角形 首先一看题,先容斥一波,求出网格内选三个点所有的情况,也就是C(n*m,3);然后抛出行里三点共线的方案数:C(n,3)*m; 同理就有列中三点共线的方案数:n*C(m,3 ...
- 『题解』Codeforces1142B Lynyrd Skynyrd
更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description Recently Lynyrd and Skynyrd went to a ...
- Docker 资源 | 官方文件
Docker资源 Docker官方英文资源: docker官网:http://www.docker.com Docker windows入门:https://docs.docker.com/windo ...
- 20190806-sed面试题
由于比较难,附上PPT,没事还得看 下载:https://www.lanzous.com/i5cs9aj 密码:arka 1.删除centos7系统/etc/grub2.cfg⽂件中所有以空⽩开头的⾏ ...
- Asciinema:你的所有操作都将被录制
如何实现类似于Jumpserver koko一样的终端录制回放功能呢?本文介绍一个神器 asciinema 是一款开源免费的终端录制工具,它可以将命令行输入输出的任何内容加上时间保存在文件中,同时还提 ...
- glsl shader简明教程系列1
glsl shader简明教程系列1 底层的东西我就不说了(自己去百度翻基础教程) 我直接说上层了(片段着色器) web编辑器还在开发中 有了编辑器 到时候可以把代码复制上去可以看到效果了 1 实 ...
- nyoj 599-奋斗的小蜗牛 (double ceil(); (temp - 1) / 5)
599-奋斗的小蜗牛 内存限制:64MB 时间限制:1000ms 特判: No 通过数:0 提交数:96 难度:1 题目描述: 传说中能站在金字塔顶的只有两种动物,一种是鹰,一种是蜗牛.一只小蜗牛听了 ...
- 力扣(LeetCode)单值二叉树 个人题解
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树. 只有给定的树是单值二叉树时,才返回 true:否则返回 false. 示例 1: 输入:[1,1,1,1,1,null,1] 输出:tr ...
- 剑指Offer-23.二叉搜索树的后序遍历序列(C++/Java)
题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 分析: 二叉树的后序遍历也就是先访问左子树,再访问右 ...