3. ARP协议

3.1 ARP(Address Resolution Protocol)协议的工作过程和安全隐患

(1)计算机A和C通信之前,先检查ARP缓存中是否有计算机C的IP地址对应的MAC地址。如果没有,就启用ARP协议发送一个ARP广播请求解析192.168.0.4的MAC地址。ARP广播帧目标MAC地址是FF-FF-FF-FF-FF-FF

(2)交换机将ARP广播帧转发到同一个网络的全部端口。这意味着同一个网段中的计算机都能够接到该ARP请求

(3)正常情况下,只有计算机C收到该ARP请求后发送ARP应答消息。还有不正常情况,网络中任何一台计算机都可以发送ARP应答,有可能告诉计算机A一个错误的MAC地址(ARP欺骗

(4)计算机A将解析到的结果保存在ARP缓存中(可通过arp -a命令查看),并保留一段时间,后续通信就使用缓存的结果,就不再发送ARP请求解析MAC地址。

3.2 ARP欺骗之“网络执法官”

(1)“网络执法官”局域网管理辅助软件

  可以通过周期性地解析本网段IP地址和MAC地址来统计哪些计算机在线和下线,它能够利用ARP欺骗来禁止与“关键主机”的通信或禁止与网络中所有计算机通信,并指定哪些地址是“关键主机”。

(2)“网络执法官”测试:禁止局域网内的某台计算机访问Internet

  ①选择“监控范围”(如192,168.80.1-192.168.80.254)并添加。这时软件会发送ARP请求给这个范围的每一个地址,通过统计收到的ARP响应,来发现网段有多少计算机在线。

  ②设置“关键主机”:“设置”菜单→“关键主机”→指定IP并添加。这里可以指定网关地址。

  ③限制计算机A与关键主机(D)通信:选中计算机A→右键“设定权限”→选择“发现该用户与网络连接即进行管理” →并选择“禁止与关键主机的TCP/IP连接”。如此,该计算机就不能与网关通信,即不能访问Internet。可以通过arp –a 命令查看到,该计算机A解析到网关的mac地址是一个错误的地址。

3.3 判断和防止ARP欺骗的方法

(1)故障现象:计算机不能和同一网段的某个计算机通信,但和其他计算机通信正常如果不是双方防火墙设置引起,就很可能是ARP欺骗引起的网络故障

(2)原因分析:如前面计算机A不能ping通网关,在排除了防火墙设置导致后,可以通过arp –a查看缓存的mac地址表中网关地址是否正确。如果不一致,就是ARP欺骗造成的网络故障了。

(3)解决方案为计算机A添加MAC地址静态映射

  ①arp -s 192.168.80.2 00-50-56-FD-90-E2 (网关IP和mac地址)。

  ②由于A和网关通信不再需要ARP协议来解析对方的MAC地址,“网络执行官”就不能通过ARP执行欺骗,网络就会通。

  ③说明:删除映射arp -d 192.168.80.2

3.4 扩展思考

(1)计算机A和B能否互通?

  ①A和B连接在同一交换机上。但所处网段不同。

  ②A和B互设对方为自己的网关(否则是不通。注意,这与第5章的5.2节案例是不同的!)

(2)互通的原因

  ①当计算机A ping 计算机B时,由于IP不在同一网段。尽管连接在同一交换机,但仍需要网关来转发。因此A就发送ARP请求(广播)网关B的MAC地址。由于同一交换机,这个广播会被转发到交换机的各个接口上,因此B会收到这个请回,如此A就能解释出B的MAC地址。因此A能ping通B。

  ②同理,B也能ping通A。

第7章 网络层协议(3)_ARP协议的更多相关文章

  1. 《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  2. 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  3. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端   24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器    想体验服务的时候 ...

  4. 【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识

    第33章      SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作. (本 ...

  5. 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识

    第25章      DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...

  6. (71)一篇文章带你熟悉HTTP协议

    作者:涤生_Woo链接:http://www.jianshu.com/p/6e9e4156ece3來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本篇文章篇幅比较长,先 ...

  7. 第一篇 网站基础知识 第5章 自己动手实现HTTP协议

    第5章 自己动手实现HTTP协议 我们知道HTTP协议是在应用层解析内容的,只需要按照它的报文的格式封装和解析数据就可以了,具体的传输还是使用的Socket,在第4章NioServer的基础上自己做一 ...

  8. 第五章Web应用与应用层协议

    Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...

  9. 【知识强化】第四章 网络层 4.3 IP

    这节课我们来学习一下IP数据报的格式.那之所以把路由算法这一小节跳过呢,就是因为我们之后会要讲到路由的选择协议.那在路由选择协议这一块讲路由算法,我觉得是比较合适的.那我们先来看一下这节课要讲的知识. ...

  10. TCP协议与UDP协议的区别

    TCP协议与UDP协议的区别(转) 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...

随机推荐

  1. Architecture options to run a workflow engine

    This week a customer called and asked (translated into my own words and shortened): “We do composite ...

  2. 项目中更新pip 问题。更新后还是老版本

    (venv) E:\renyuwang\venv\Scripts>python -m pip install --upgrade pipRequirement already up-to-dat ...

  3. MEMS 硅麦资料收集

    MEMS 硅麦资料收集 PCM 和 I2S 协议的 MEMS Microphone PCM 协议在蓝牙方面比较多,一般都有 PCM 的接口. MEMS Microphone 更加的省电,更方便用于语音 ...

  4. 【转】C#获取当前日期时间(转)

    我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...

  5. [ERROR] InnoDB: ibdata1 different size (rounded down to MB)

    启动mysql实例报错,查看 error log ## 错误信息2018-08-31T10:38:36.945081Z 0 [ERROR] InnoDB: The Auto-extending inn ...

  6. optimization.splitChunks 中,chunks 的3个值:all、async、initial 的含义

    chunks 参数值 含义 all 把动态和非动态模块同时进行优化打包:所有模块都扔到 vendors.bundle.js 里面. initial 把非动态模块打包进 vendor,动态模块优化打包 ...

  7. 岭回归和Lasso回归以及norm1和norm2

    norm代表的是距离,两个向量的距离:下图代表的就是p-norm,其实是对向量里面元素的一种运算: 最简单的距离计算(规范)是欧式距离(Euclidean distance),两点间距离是如下来算的, ...

  8. python连接Mongo数据库

    python连接Mongo数据库主要采用pymongo连接,一般情况分为两种连接方式,一种通过指定端口和地址直接连接,另一种通过uri的格式连接 1.通过指定端口和地址连接Mongo conn = M ...

  9. Zookeeper 配置集群环境详解

    在Linux环境下安装zookeeper 在Linux环境下安装zookeeper 1.       将zookeeper-3.4.13.tar.gz复制到linux操作系统 2.       通过p ...

  10. MySQL 5.7.16 字符串拆分 -> 单列变多行记录(转发)

    http://blog.csdn.net/mchdba/article/details/53889803 ----------------------------------------------- ...