【摘要】 这一章节你的角色就是ping报文这个“使者”,你要去往目的地,然后回到本机。然而目的地路漫漫,不知道要经过多少个小地盘(局域网),没两把刷子也不好行走江湖。所以你作为使者,每到达一个新的地盘,就把ARP这把刷子拿出来吼一吼。这一节就是讲的这把刷子的威力。

一、ARP命令介绍

首先,ARP作为高攻击神器,是片攻击的,一定范围内全杀,而不是单点指向的技能。其攻击范围就是子网的大小,同一个子网内的所有主机都会收到ARP神器的伤害。正因为ARP报文是广播的,所以它是ping使者随身携带、开山问路的不二之刷。

其次,ARP神器基本靠一招走遍天下,发动攻击前吼一句:“谁是小明,请吱一声”,然后声波传遍当前子网各个角落。其中真实的小明乖乖回答:“我在这”。

二、Ping报文与ARP结合

当Ping报文拥有了ARP这个探路神器后,想要到达最终的目的地就相当的easy了。当他处于一个站点,面对一个新的地盘的时候,先吼一声ARP大招,就知道一下站出口在哪里了。然后直接跳到下一站,接着再吼一声ARP找出下一站位置,继续跳到下一站。这样重复N次就到达了最终目的地。

基于上面的逻辑可以看到,在定位网络不通的时候,使用上一节的方法还找不出原因的情况下,可以看看arp报文有没有到。但是请记住,arp是一段子网一段子网定位的。

ps:一般网络安全组是不会禁止arp协议的,因为它本身是为了查询mac地址,而mac地址是二层的,是网络通信的基础。

三、ARP报文

抓个arp报文举例:

#tcpdump -i eth1 -n arp

arp who-has 10.175.10.210 tell 10.175.10.78

arp reply 10.175.10.210 is-at fa:16:3e:bf:1e:e2

这里基本可以看出来,ARP要做的事情就是把IP翻译为MAC地址。实际上在以太网中,同一个局域网中的两台主机要进行通信,必须要知道目标主机的MAC地址。而TCP/IP协议中,网络传输只关心IP地址。所以需要有一种方法将IP地址“翻译”为MAC地址。这也就是ARP要做的事情了。

四、ARP表

既然已经知道了IP与MAC的对应关系,为了避免每次找路都得“翻译”一次,那就把它记下来。以后要用的时候直接查本地的对应表就行了。同时为了保证有效性,缓存的记录会在一定时间后失效。这就是ARP表。

当然,也可以设置静态ARP表。只是一般我们懒得这么做。

通过以下命令可以查询当前缓存的arp表:

#arp -a

ps:定位问题一般不会用到arp表,只需要在目的端抓包看看arp报文有没有到达即可。

作者:tsjsdbd

【跟唐老师学习云网络】 - 第6篇 ARP你在哪的更多相关文章

  1. 【华为云技术分享】跟唐老师学习云网络 : Kubernetes网络实现

    当今K8s独霸天下之时,咱们站在更高的角度,好好的看看K8s网络是以什么理念构筑的.以及一个容器集群的好保姆,是如何分别照顾 南北流量和东西流量的. 一.简单介绍下Kubernetes 略..容器集群 ...

  2. 【跟唐老师学习云网络】 - 第7篇 Tcpdump大杀器抓包

    [摘要] 前面章节的网络协议栈相关的信息建议大家多学习一遍,因为这些都是最基础的东西,想玩好云网络必备基本功.. 一.上帝视角 之前提到过定位问题可以开启上帝视角,那么如何开启就要依靠tcpdump这 ...

  3. 《跟唐老师学习云网络》 -第4篇 router路咋走啊【华为云技术分享】

    [摘要] 好了,到这里至少你应该能看懂路由表信息了.给你一个目的IP,你也应该知道它会使用哪一条路由了. 路怎么走就看骚年你了~ 一.路由 其实关于网络大家遇到最多的问题就是:卧 槽,为什么不通啊! ...

  4. 【跟唐老师学习云网络】-第8篇 iptables - filter过滤功能

    [摘要] 前面的各种协议已经可以把基本可用的物理网络世界给形成了,在正常情况下,它可以玩的很溜.比如组个局域网办公,或者打个联机魔兽争霸,都没有什么问题. 一.背景介绍 前面的各种协议已经可以把基本可 ...

  5. 《跟唐老师学习云网络》 -第5篇 Ping喂报文

    [摘要] 这一章节你的角色是国王,你要派一个小兵去对方打探一下.是站在你的角度看这个小兵.哦,对了,这个小兵的名字叫"喂". 一.Ping命令介绍 ping就是用来检测一下网络能不 ...

  6. python基础学习笔记——网络编程(协议篇)

    一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...

  7. 带你熟悉云网络的“电话簿”:DNS

    摘要:无论你域名怎么解析,最终我还是要用IP和别人通信的.域名只是你的皮囊,IP才是你的灵魂. 本文分享自华为云社区<<跟唐老师学习云网络> - DNS电话簿>,作者: tsj ...

  8. OpenFlow能解决私有云网络VLAN问题么

    本文转载自:http://network.51cto.com/art/201202/314310.htm 在关于私有云网络的文章中,我们首先探讨了物理网络是否影响私有云.本文我们将讨论如何通过软件定义 ...

  9. 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(一)

    VPC的概念与基于vxlan的overlay实现很早就有了,标题中的"新"只是一个和传统网络的相对概念.但从前年开始,不同于以往基础网络架构的新一代SDN网络才真正越来越多的走进国 ...

随机推荐

  1. KETTLE常见问题和优化

    1.创建MySQL空资源库报错问题:因为boolean类型的问题,Mysql中的boolean类型实际上保存为TINYINT,需要手动的修改生成资源库的sql脚本,将其中的插入用户ENABLED的值由 ...

  2. csps模拟测试110

    好久没写博客了,主要是太懒了,这次考试其实状态还算好. 考试的时候半小时左右打完T1T2,先没打T2对拍,想了想T3,大概有了一个bitset的思路,回去补上了T2的对拍. 然后T3想了一些东西: 三 ...

  3. jquery获取input输入框中的值

    如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML <input type="tex ...

  4. Python基本数据结构之二进制

    二进制---->ASCII :只能存英文和拉丁字符.一个字符占一个字节,8位----->gb2312:只能6700多个中文,1980------->gbk1.0:村落2万多字符,19 ...

  5. 用Java实现简单的区块链

    用 Java 实现简单的区块链 1. 概述 本文中,我们将学习区块链技术的基本概念.也将根据概念使用 Java 来实现一个基本的应用程序. 进一步,我们将讨论一些先进的概念以及该技术的实际应用. 2. ...

  6. 『题解』[NOI2016]优秀的拆分

    如果一个字符串可以被拆分为\(AABB\)的形式,其中$A和 B是任意非空字符串,则我们称该字符串的这种拆分是优秀的. 例如,对于字符串\(aabaabaa\),如果令\(A=aab\),\(B=a\ ...

  7. 最新开源跳板机(堡垒机)系统 Jumpserver介绍

    Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统. Jumpserver 使用 Python / Django 进行开发,遵 ...

  8. Spring-Mybatis-SpringMVC三大框架整合

    我们直接切人正题,不多逼逼赖赖 第一步:依赖,一下的这些基本上是SSM整合的全部依赖 <!-- https://mvnrepository.com/artifact/org.springfram ...

  9. 提交代码到github托管

    廖雪峰官网:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000,感觉初学很棒的一个地 ...

  10. Dev 日志 | 一次 Segmentation Fault 和 GCC Illegal Instruction 编译问题排查 NebulaGraph

    摘要 笔者最近在重新整理和编译 Nebula Graph 的第三方依赖,选出两个比较有意思的问题给大家分享一下. Flex Segmentation Fault--Segmentation fault ...