打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于命题“网络规划中一个VLAN要对应一个网段”的证明
通过抓包分析讨论广播域与子网划分的关系,帮助理解为什么在实际规划中要一个VLAN对应一个网段。

小弟刚学网络,CCNA还没过,只是最近从论坛上学了不少东西,总结一下自己学的知识,要是哪个地方说错了,大牛们一定要帮我指出来。
文档下载链接:http://down.51cto.com/data/206701

2011.6.2:多谢大家的意见,现在把网关的掩码补充道图片里了。

前提设定:
AIP地址为:10.10.142.70
BIP地址为:10.10.142.129

上面A和B的IP地址可能存在于不同、相同网络,也有可能存在于不同、相同的广播域。现在问,
AB处于相同网络还是不同网络?     答,关键是看AB的子网掩码的设定。
AB处于相同广播域还是不同广播域? 答,关键是看AB的通信链路中间有没有路由器。

为了观察广播域和网络划分之间的关系,我按照四种情况进行了试验:

1.通信双方AB处于同一广播域,相同的网络内


此时,设定AB的掩码都为255.255.255.0
显然AB处于相同网络。这时A ping B的情况如下,以A的视角来看:
起初Aarp缓存中没有任何记录:


输入:ping 10.10.142.129
由于AB处于同一网络,且AB连在同一个二层交换机,所以AB处于同一广播域中。但是,A不知道BMAC地址,所以A发出ARP广播

B回应A

这时再看Aarp缓存:

可见,当A判断和B处于同一 网络时,不经过网关,直接在本网络发出ARP广播,和B通信。用tracert命令可以证明这一点:

结论:当AB处于同一广播域,相同网络时(即,连接在同一个二层设备上,且掩码相同)。网关对AB之间的通信来说,毫无意义。AB可以不设定网关,直接用交换机通信。数据包的路径如下图所示:



2AB处于同一广播域;A认为处于不同网络;B认为处于相同网络
此时,设定A的掩码为255.255.255.128,而B的掩码不变。
这种情况在实际网络中是不合法的,但是为了说明网络划分、广播域之间的关系,就勉为其难了。
这时,A认为AB处于不同网络中,即:
A认为A处于10.10.142.0中,B处于10.10.142.128中,因为A设定的掩码是255.255.255.128;
B认为:BA仍处于同一网络10.10.142.0中,因为B的掩码仍然是255.255.255.0。

这时,我们再用A ping B看看会发生什么情况
首先输入arp -d清空Aarp缓存,再输入arp –a查看结果:


,可见,没有任何arp缓存。然后输入,ping 10.10.142.129
由于A判断与B处于不同网络中,因此,ICMP数据包将通过网关转发。由于MAC地址不能跨越网络传输。所以A首先要获取网关的MAC地址:

因为网关此时已经有了Barp缓存,所以网关不需要再发出arp广播了。
由于B判断和A处于同一网络,且不知道AMAC地址,所以B要获取AMAC地址,而不是获取网关的MAC地址,如图所示:

再来看看ABICMP包的路径:


AMAC地址为:compalin_63:f2:4e(00:1e:ec:63:f2:4e)
BMAC地址为:Cadmusco_e4:c7:d2(08:00:27:e4:c7:d2)
网关MAC地址为:Hangzhou_49:fd:fa(00:0f:e2:49:fd:fa)

可见,A在二层封装中,目的MAC地址写的是网关的MAC地址;而三层封装中目的IP地址写的是BIP地址。很显然,这时因为A判断和B处于不同网络,把ICMP包先交给了网关导致的。这点可以通过tracert命令来证明:


相反,由于B的掩码仍然是255.255.255.0,所以B不会把ICMP的应答报文交给网关转发,而是直接发给A


如图所示,这份BAICMP应答报文中,目的MAC地址写的是AMAC地址compalin_63:f2:4e,而不是网关的MAC地址。且目的IP地址也是AIP地址10.10.142.70
结论:这种情况下A走了弯路。A视角下,处于同一广播域,不同网络时,数据包通过网关转发。B视角下,仍然是同一广播域,相同网络,直接与A通信。由此可见,在实际网络规划中,应该保持广播域与网段的一一对应,一个VLAN对应一个网段。否则就要走弯路。数据包的路径如下图所示:

3AB处于相同广播域,不同网络时
AB的掩码都设定为255.255.255.128时,AB处于不同的网络
有了上面的基础,我们再来看看这种情况。AB的发包过程与2.2节讲述的AICMP包的过程完全相同。ABICMP包都通过网关转发。即:

但我想讨论的并不是这个问题。我想讨论的是掩码的大小对arp广播报文的影响。
4AB处于不同广播域,相同或不同网络时
为了说明问题,我换个拓扑图来讲:

AIP地址为10.111.1.1,掩码为255.0.0.0
BIP地址为10.222.2.2,掩码为255.0.0.0
AB认为他们处于同一个10.0.0.0的网络中,当A ping B时:
由于A认为B和自己在同一网络,所以A直接发arp广播包请求BMAC地址。但是,AB在不同广播域,路由器会丢弃所有广播包,所以A无法pingB。要解决这个问题,只有加大掩码:
A的掩码设为255.255.0.0
B的掩码设为255.255.0.0就可以了。
这时A认为B与自己在不同网络,所以会发arp广播包请求网关的MAC地址,然后把ICMP包交给网关转发。最后A能够pingB了。
结论:AB处于不同广播域、相同网络时,无法通信。而处于不同广播域,不同网络时,可以通信。在给运营商或企业的内网做漏洞扫描或其他项目时,需要接入他们的内网。如果发现再给定的IP地址和网关下,无法ping通远程网络的主机,应适当加大掩码。
上面讨论了,四种情况:

相同广播域 相同网络 正常通信
相同广播域 不同网络 走弯路才能通信
不同广播域 相同网络 无法通信
不同广播域 不同网络 正常通信

可见,在网络规划中,广播域与网络划分应该保持一致性,要相同都相同,要不同都不同。也即,VLAN划分与网络划分应该保持一致性,要相同都相同,要不同都不同。


本帖最近评分记录


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在不使用路由功能的前提下,两个不同网段的主机如何ping通?
同个网段和不同网段的ping过程
三层交换机ping原理(整理日记)
ping的详细过程
Ping过程 原理 详解(图)
两个不同网段的IP地址能ping通,但是为什么不能在ARP上找到另一个的MAC地址?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服