PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

Win10的ARP居然会相应跨网段网段的请求

[复制链接]
跳转到指定楼层
1#
点击数:6212|回复数:15
本帖最后由 haierccc 于 2017-7-22 22:34 编辑

先来看一道题,据说招聘老师问出这道题,能答出来的寥寥无几。
拓扑很简单:

xp1和xp2的默认网关相同,差别就是掩码不同,xp1的掩码是255.255.255.0,而xp2的掩码是255.255.255.224
问题是:xp2能否ping通xp1?

我们分析一下流程:
1、xp2 ping xp1,首先要把目标地址与掩码进行“与”运算,发现目标与自己不在一个网段,应该把ICMP包发往网关192.168.26.2
2、但目前还不知道网关的MAC,于是向网关发出ARP请求,网关回应后,ICMP包发向网关。
3、网关收到ICMP包,知道要发往xp1,但还不知道xp1的MAC,于是向其发出ARP请求(刚刚收到的ICMP包被丢弃),xp1回应后得知其MAC地址。
4、xp1迟迟等不到ICMP的回应(因为在第3步被路由器丢弃了),于是显示出第一行timout,并再次发出ICMP给XP1。
5、路由器正确把包发给xp1,xp1要回应该ICMP,但不知道xp2(192.168.26.3)的MAC地址,因为经过掩码的“与”运算,发现xp2与自己处于同一网段,于是直接向xp2发出ARP请求。
6、神奇的地方到了!大伙说说,xp2能回应这个ARP请求么?合理的答案是不能。因为经过与运算,发现xp1与xp2不处于一个网段,所以应该不响应该ARP请求(也正是因为2个IP不在一个网段,第1步的ICMP包才会发往默认网关)
xp1因为迟迟得不到ARP回应,所以不知道XP2的地址,通信失败。
但事实却是,xp2响应了!于是通信成功。
以上可不是我编的,有Wireshark抓包为证:






2#
XXHJACK 发表于 2017-7-22 22:26 | 只看该作者
先说sw1是什么交换机,做了什么设置。再说r1里的设置是什么,自动生成的路由表还是手动设置的路由表
3#
haierccc  楼主| 发表于 2017-7-22 22:34 | 只看该作者
XXHJACK 发表于 2017-7-22 22:26
先说sw1是什么交换机,做了什么设置。再说r1里的设置是什么,自动生成的路由表还是手动设置的路由表{:1_454 ...

GNS3里的傻瓜交换机,路由器就是配了IP地址
4#
XXHJACK 发表于 2017-7-22 22:41 | 只看该作者
haierccc 发表于 2017-7-22 22:34
GNS3里的傻瓜交换机,路由器就是配了IP地址

仅仅只是这些是不会通的,要配路由表。
5#
haierccc  楼主| 发表于 2017-7-22 22:59 | 只看该作者
我感觉应该是通的,ARP不检查对方的IP是否与自己处于同一网段。
6#
XXHJACK 发表于 2017-7-22 23:08 | 只看该作者
7#
XXHJACK 发表于 2017-7-22 23:12 | 只看该作者
本帖最后由 XXHJACK 于 2017-7-22 23:20 编辑

如果你真要做局域网用划分这类得治的方式我是特别不建议的。计算复杂不说还容易出错,大了还要产生超级多的丢弃包和风暴包。我的建议还是c类vlan,一个能有255个地址,公司就算25500个设备也就100个vlan,觉得麻烦还有nat。还有基于所有的路由思路:首先ip是唯一的,不管怎么划永远只有一个。2掩码是用来将ip规划在一个区域内的东西。3网络地址也是唯一的,你不可能用不同的正确IP+掩码算出同一个地址来。4同一个段才能不设置路由直接通讯。5没有什么通讯是三层搞不定的。
8#
haierccc  楼主| 发表于 2017-7-22 23:25 | 只看该作者
XXHJACK 发表于 2017-7-22 23:12
如果你真要做局域网用划分这类得治的方式我是特别不建议的。计算复杂不说还容易出错,大了还要产生超级多的 ...

考虑建议!         
9#
Pale_Cheung 发表于 2017-7-23 11:42 | 只看该作者
这里不是 网关帮忙了么?

不在同一掩码内的,就给网关处理,
网关拿了包,按网关自己的路由表处理
10#
haierccc  楼主| 发表于 2017-7-23 15:47 | 只看该作者
Pale_Cheung 发表于 2017-7-23 11:42
这里不是 网关帮忙了么?

不在同一掩码内的,就给网关处理,

去时网关帮忙,回来的时候没有经过网关
11#
Apache 发表于 2017-7-23 16:19 | 只看该作者
把R1拿掉,肯定是不通的。  这题就难在R1上了,很多人会忽视R1
12#
haierccc  楼主| 发表于 2017-7-23 21:33 | 只看该作者
Apache 发表于 2017-7-23 16:19
把R1拿掉,肯定是不通的。  这题就难在R1上了,很多人会忽视R1

的确是这样
这件事我绕脑袋,就绕在了PT上。
PT的模拟结果和GNS3真机的模拟结果居然不一样,PT是不通的,而GNS3是通的。
这说明ARP会响应不同网段的ARP解析请求
13#
Pale_Cheung 发表于 2017-7-24 09:27 | 只看该作者
haierccc 发表于 2017-7-23 15:47
去时网关帮忙,回来的时候没有经过网关

回来当然不用,因为那台机器上的计算结果是在同一网段的!

计算掩码时候,要“站在”计算的那个节点上考虑,不要从最初的节点上来算。
14#
sizhou 发表于 2017-7-24 13:02 | 只看该作者
什么  可变子网掩码 技术
15#
NOIP117 发表于 2017-7-24 21:01 | 只看该作者
不同段网关介入了啊,实际应用要看你设备具体配置的
16#
kinno 发表于 2017-7-26 19:55 | 只看该作者
楼主的问题我在工作中遇到过。
我记得是范围大的网络可以ping通范围小的网络,反过来不行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部