局域网内大量arp请求包,但是为什么不能在ARP上找到另一个的MAC地址?
局域网内大量arp请求包,但是为什么不能在ARP上找到另一个的MAC地址?
你好,受邀请回答这个问题,虽然晚了点,但是也看了看大家的回答,我这地方尽量作补充和详尽的解答。
ARP协议介绍ARP是Address Resolution Protocol(地址解析协议)的缩写,运行在OSI七层模型中的二三层之间(个人理解是2.5层协议),作用是根据主机访问的IP地址来请求其对应的MAC地址,以达到最终在主机上建立IP地址和MAC地址的映射关系——ARP表。
2.5层也就是在网络层和数据链路层之间。
我们根据数据的封装来看看ARP协议。
上图是简化的标准数据封装过程,下面我们看看ARP数据包的结构。
我们能看到,ARP协议数据封装在802.1Q后面,整个数据帧包含以太网头部的源MAC地址和目的MAC地址,ARP数据及载荷被二层封装,里面并不涉及IP选址和路由选择,没有IP报文头部,所以我应该算是2.5层协议,注意ARP协议在点到点网络中不需要,我们这里只讨论广播类型网络。
ARP在网络转发中的作用这个非常重要,一台主机访问相同网段主机和不同网段主机的过程。
如图有过程如下:
1.使用PC2访问相同网段主机PC3,首先PC2查询路由表,会得到<1.1.1.0 255.255.255.0 在链路上 >表明是直连的,相同网段,于是直接发送ARP request包请求目的IP为1.1.1.3的PC3的MAC地址,目的地址是广播地址<FFFF.FFFF.FFFF>,ARP数据包还同时携带了PC2的MAC地址和IP地址。
2.ARP数据到S1交换机,交换机记录下MAC地址表 <0000.0000.0002 Gi0/2接口> ,由于ARP包的目的地址是广播地址<FFFF.FFFF.FFFF>,所以交换机洪泛(每个接口都转发)该报文。
3.PC3就收到该报文,发现是请求的是自己的MAC地址,就记录下ARP信息<1.1.1.2 0000.0000.0002>,并发送ARP响应给PC2,目的MAC地址为<0000.0000.0002>,S1交换机收到该响应,记录下对应MAC地址表<0000.0000.0003 Gi0/3接口>,PC2收到后将<1.1.1.3 0000.0000.0003>加入到自己的ARP表中,到这里PC2和PC3就完成了ARP的学习,ARP的作用就是这样。后面他们发送数据就知道对方的MAC地址,可以进行前面的数据封装了(你想如果不知道对方MAC地址是不是到了数据链路层的时候就不知道该加上什么目的MAC了?)。
当访问不同网段的情况下(楼主的问题):
1.使用PC2访问不同网段主机PC1<2.2.2.2>,首先PC2查询路由表,发现不是直连,只能通过默认路由<0.0.0.0 0.0.0.0 1.1.1.1>进行转发,默认路由下一跳是网关地址<1.1.1.1>,网关地址肯定是相同网段的吧,重复进行上面的ARP过程,这里就不赘述。
2.得到了1.1.1.1的MAC地址,然后跟据路由把数据发给R1,R1查询路由表,去往2.2.2.2的下一跳是3.3.3.2,于是再进行上述ARP过程获得3.3.3.2的MAC地址,然后封装数据,将数据帧源MAC改为3.3.3.1的MAC地址,目的地址改为3.3.3.2的MAC地址,其他内容不变。
3.数据包转发到3.3.3.2也就是到R2了,R2查询路由表,发现是直连的网段,且目的地址是2.2.2.2,于是向2.2.2.2发送ARP请求,还是上面的过程,并将数据帧的源MAC改为2.2.2.1的MAC地址<0000.0000.0021>目的地址改为2.2.2.2的MAC地址<0000.0000.0022>,PC1收到数据包是发给自己的于是拆开数据包,发现目的IP也是自己,就这样PC1收到了来自PC2的数据包。
4.同理PC1回应PC2的过程也是一样。
结论根据上面的内容我们可以得出,二层到三层的转发完全依赖ARP协议,ARP协议是二层MAC地址和三层IP地址互通的桥梁,需要我们好好理解。而且ARP协议仅仅只能运行在一个广播域内,也就是相同网段,当访问的目的主机不在同一个网段,我们的数据是直接送给网关的,并不需要知道目的主机的MAC地址,是由数据传递的过程中的路由器完成ARP解析和数据包的转发,故本地主机的ARP表中也就不能看到。
这是我本机的ARP表,排除静态组播地址,你可以看到都是同一个网段的主机,希望我的回答能让你明白并理解其中的原理。
本人某厂商网络攻城狮,业余时间对电脑DIY有浓厚兴趣积累,游戏,电影,音乐,运动都是生活的一部分,欢迎点赞加关注丢硬币丢香蕉。
使用虚拟机手机会中病毒吗?
使用虚拟机手机当然也会中病毒。虚拟机跟普通机子一样,存在ARP病毒或者通过局域网传播的病毒就会中毒。因此虚拟机装好了以后创建一个快照,可以避免中毒。
ARP查询MAC地址中IP从哪里获取?
ARP是广播数据包,该IP收到广播包后会答复自己的MAC地址,流程是这样的:
1. 发送方:该IP的MAC地址是多少?
2. 接收方:我的MAC地址是xxxx。
wireshark怎么抓端口?
抓取别人的数据包有几种办法!
第一种是你和别人共同使用的那个交换机有镜像端口的功能,这样你就可以把交换机上任意一个人的数据端口做镜像,然后你在镜像端口上插根网线连到你的网卡上,你就可以抓取别人的数据了;
第二种,把你们局域网的交换机换成一个集线器,这样的换所有的数据包都是通发的,也就是说,不管是谁的数据包都会路过这个集线器上的每一个计算机,只要你将网卡设置为混杂模式就能抓到别人的包;
第三种,利用mac地址欺骗,在局域网内发送arp包,使其他计算机都误以为你是网关,这样的话,其他计算机都会将它们的数据包发送到你这里,你就可以抓到它们的包了,不过如果你用这种方法,建议还是自己写个程序比较好,现在很多无良工具都是截获别人的数据请求不转发,最好转发一下,这样其它计算机就不会发现你在做mac欺骗了;
第四种,如果你们是共用一个adsl猫上网的话,有条件的情况下,你还可以给自己的电脑安装两个网卡,一个网卡接猫,一个接交换机,然后把接猫的网卡共享,这里接猫的网卡的ip设置为192.168.1.1,让这个网卡做网关,别的电脑都通过这个网卡上网,所以你可以轻易的在这个网卡上捕获别的电脑的数据包。上述四种方法仅作为技术研究在此讨论。
内网延迟大?
1,检查网线接口,是否老化,松动2,用snifeer抓一下包,可能是某台机器网卡出错,导致网络内循环发包,及时找到问题3,病毒存在,全面杀毒lz有抓包看过么, 这个问题 较多的是 arp的问题 不知道lz有了解 免疫网络这个概念么? 不仅仅是彻底解决内网arp问题,而且内网的其他的攻击(syn flood 、ip 分片等各类ddos)都会被有效的拦截,这个从源头保证你网络的稳定 LZ 不知道是那里的用户, 欣向全国都有办事处的,LZ可以去联系他们。解决内网问题 只有免疫网络。