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. C#中Socket关闭 Close、Dispose、Shutdown、Disconnect

    An answer on StackOverflow made me think I have finally reached some glimpse of an understanding. Th ...

  2. js将foo-bar转为fooBar

    这是一道js的面试题,就是考察将普通面命转为小驼峰命名 <!DOCTYPE html> <html lang="en"> <head> < ...

  3. Excel文件转为其他格式文件

    引用:Spire.XLS 是一个 Excel 文件的读写库,无需安装office,使用起来也挺方便的.Spire还有一些其他的库(Spire.Doc,Spire.Pdf……) 说明:Spire.XLS ...

  4. 超级账本Hyperledge的关键部件说明

    帐本(Ledger) Fabric帐本(Ledger)是一系列有序和防篡改的状态转换的记录,结构由一个区块链构成,并将不可变的.有序的记录存放在区块中:同时包含一个状态数据库来记录当前的状态,账本的当 ...

  5. ubuntu-docker入门到放弃(五)docker网络管理

    查看docker宿主机的网卡信息我们会发现,有一个docker0的网卡,这个网卡就是用于跟docker容器进行通讯的,这个网段跟我们docker容器的网段是一样的: #ifconfig docker容 ...

  6. oracle--合并行数据(拼接字符串),获取查询数据的前3条数据...

    --标准函数Lpad 可以实现左补零,但是如果多于需要长度,则会截断字符串 SELECT LPAD ('1' , 3 , '0') FROM DUAL -- return 001 情况一:需要补零.  ...

  7. 关于mybatis map foreach遍历

    map 数据如下 Map<String,List<Long>>. 测试代码如下: public void getByMap(){ Map<String,List<L ...

  8. git撤销本地所有未提交的更改

    1. git clean -df2. git reset --hard第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退.而第二个命令把tracked ...

  9. 【IntelliJ 】IntelliJ IDEA 2017激活码

    CNEKJPQZEX-eyJsaWNlbnNlSWQiOiJDTkVLSlBRWkVYIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  10. C++标准模板库(STL)介绍:set的基本用法

    1.元素的方向遍历 使用反向迭代器reverse_iterator可以反向遍历集合,输出集合元素的反向排序结果.它需要用到rbegin()和rend()两个方法,它们分别给出了反向遍历的开始位置和结束 ...