《跟唐老师学习云网络》 -第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网络才真正越来越多的走进国 ...
随机推荐
- generator和promise配合解决js异步地狱问题
为何要使用generator函数和promise? js的异步地狱一直是困扰前端程序员的一个头疼的问题 比如说我要获取还有列表,一般来说会使用ajax来获取 $.ajax(...等等,function ...
- 大数据之路week01--day02我实在时被继承super这些东西搞的头疼,今天来好好整理以下。
这一周的第一天的内容是面向对象的封装,以及对方法的调用.实在时没法单独拿出来单说,就结合这一节一起说了. 我实在是被继承中的super用法给弄的有点晕,程序总是不能按照我想的那样,不是说结果,而是实现 ...
- NOIP模拟14-16
最近事情有些多,先咕了! 鸽了,时间太久远了,写了话坑太大,太费时间了!
- 『题解』洛谷P1063 能量项链
原文地址 Problem Portal Portal1:Luogu Portal2:LibreOJ Portal3:Vijos Description 在\(Mars\)星球上,每个\(Mars\)人 ...
- Markdown基本语法小结
目录 Typore Markdown基本语法 1.标题 一级标题 二级标题 三级标题 2.字体加粗 3.斜体 4.文本高亮 5.上标 6.下标 7.引用代码 1 8.代码引用2 9.代码引用3 10. ...
- PHP-PSR 现代PHPer的开发规范
PSR是PHP Standards Recommendation的简称,意为PHP推荐标准.要想了解PSR,首先得知道制定这一标准的人/组织是谁————PHP-FIG. PHP-FIG PHP-FIG ...
- F#周报2019年第47期
新闻 相遇WebWindow,.NET Core上的跨平台webview类库 使用Bolero在WebAssembly中运行F# 用于你团队代码库的AI辅助IntelliSense Jupyter N ...
- JavaWeb04-JSP及会话跟踪技术
JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的 ...
- Java 数据持久化系列之JDBC
前段时间小冰在工作中遇到了一系列关于数据持久化的问题,在排查问题时发现自己对 Java 后端的数据持久化框架的原理都不太了解,只有不断试错,因此走了很多弯路.于是下定决心,集中精力学习了持久化相关框架 ...
- react create-react-app使用less 及关闭eslint
使用less和关闭eslint都需要先运行命令 npm run eject 来暴露配置文件,(不可逆的) 一.less使用 运行命令安装less npm install less less-load ...