现在的位置: 首页 > 综合 > 正文

局域网中具有相同mac地址的主机试验

2013年03月29日 ⁄ 综合 ⁄ 共 3874字 ⁄ 字号 评论关闭

网络数据从高层下来后,到达网络层,封装为IP数据包,在这一层的传输,只认识IP地址。再到达数据链路层的时候,封装为数据帧,在这一层,只认识MAC地址。在交换环境中,是靠着MAC来传输数据的。交换机的工作原理,大家也都知道,每一个交换机的端口都有学习功能,可以记住端口所连接NIC的MAC地址,然后有数据传输需求的时候,就会智能的建立专用传输通道,分隔了冲突域,也在一定程度上保证数据安全。

可是改成同一个MAC地址,那将怎么访问呢。

于是做了一次试验:
A(192.168.30.1)、B(192.168.30.2)、C(192.168.30.3),3台
A、B的MAC修改成一样。
这个时候当然A是访问不到B的,因为A访问B的数据,在交换机那里,已经不能精确的利用世界唯一的MAC来判断目标端口了!因为他们的地址是一样的,这让我想起了思科的单臂路由。但这仅仅是假设,如果要确定,A发出的数据是立即向与B具有同一个MAC的自己转回来,还是向所有具有相同于B的MAC的端口(包括自己)转发数据帧,最好利用嗅探来确定。而且交换机的说明中绝对不会告诉你,交换碰到一样的MAC怎么处理。

毕竟交换机的产生基础就是唯一的MAC地址。
总之,A和B之间访问不到了。我确定。不管是网上邻居,还是PING,还是用别的应用层软件,都不能够互相访问。

结论一:局域网出现了相同的MAC的机器,之间不可以互相访问。

现在说说C,他的MAC地址和A、B的不一样,直到现在看上去好像并没有受到影响。
现在C来PING机器A:
D:/Documents
and Settings/Administrator>PING 192.168.30.1 -t

Pinging 192.168.30.1 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Reply from
210.72.28.253: bytes=32 time<10ms TTL=64
Request timed out.

看上去C不能很顺利PING通A。
再用C来PING机器B,
D:/Documents and
Settings/Administrator>PING 192.168.30.2

Pinging 192.168.30.2 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request
timed out.
Request timed out.
同样。机器A和机器B在局域网中发生了某些改变……

结论二:局域网中没有修改MAC并保持唯一MAC的机器,在访问修改成重复MAC的机器时候,产生大量随机性障碍。

A和B不能互访了,:(。
那能不能访问C呢?A虽然和B现在用了同样的MAC地址,在交换环境中,显然和传输规则背道而驰,但是测试还是继续下去吧。。。
首先在A上面PING没有修改MAC的机器C:
D:/Documents
and Settings/Administrator>PING 192.168.30.3

Pinging 192.168.30.2 with 32 bytes of data:

Reply from 210.72.28.253: bytes=32 time<10ms TTL=64
Reply from
210.72.28.253: bytes=32 time<10ms TTL=64
Reply from 210.72.28.253:
bytes=32 time<10ms TTL=64
Reply from 210.72.28.253: bytes=32 time<10ms
TTL=64
Reply from 210.72.28.253: bytes=32 time<10ms
TTL=64
…………情况不错
再机器B上面,PING机器C:
结果同上。。
这个道理不难哦,C没有修改MAC,交换机可以唯一的确定通过并且仅通过一个端口发送数据给C。

结论三:局域网中修改成为相同MAC的机器,访问没有修改MAC的机器时候,没有受到影响。

这些以前我都没有碰到,天知道谁闲得没事会去修改成为同一个MAC,自己和自己的局域网闹别扭……
紧接着,就到了测试连接INTERNET网络了,古典辣M°说这样可以上网,我绝对否定,刚才的例子证明了,修改成为同样的MAC地址,是影响交换机工作的。结论二,说明了这一点。
用机器A打开浏览器,习惯的输入HACKBASE.COM/BBS/INDEX.PHP……
打开了,鼻涕,汗!
机器B,赶紧,习惯的输入地址,!$##^@#$%
#^
,网速和平时一样的快,郁闷。
机器C应该没问题吧,毕竟是世界唯一MAC的机器哦,……果然没问题,很快的打开了网址。
……机器A与机器B,具有同样的MAC,在一个局域网中,竟然可以同时上网,而且几乎察觉不出停滞就打开了不同的网页。
更换URL,同样,都能够很快的打开,聊天软件,也可以。……
还记得结论二吧,“局域网中没有修改MAC并保持唯一MAC的机器,在访问修改成重复MAC的机器时候,产生大量随机性障碍”,那是没问题的,

我不是PING了几分钟就下的结论,我可是PING了并且观察了将近40分钟。。。
怎么可能局域网网关,在把WEB服务器返回的结果传给A和B的时候,就似乎没有障碍了呢????
我试了IE,FTP,QQ,都可以……确实很快。
原因后面说。

结论四:具有相同的MAC地址的机器,在局域网中可以同时上INTERNET网。

如果你知道是怎么回事,当然不郁闷。
可是我郁闷,我不知道为什么网关在把INTERNET上的数据请求结果发回给机器A和B时,为什么不出错?通过交换机的时候认得那么准?他们的

MAC是一样的啊。。
于是我做了这样的测试,首先我用机器C来PING机器A。结果很不好。像结论2所述,ICMP消息返回的很少,只是偶尔出来一个REPLY。
这个时候,我跑到机器A,在A上PING机器C,这个当然可以很好的,个个ECHO的结果都是REPLY,都可以PING通。
而就在这个时候,机器C上面的结果出现了变化,C在PING机器A的结果也变成了个个都能PING
通。
我在C上新开了一个CMD窗口,PING机器B,没有PING通。
这个时候我跑到机器B,输入PING 机器C -t
,再看机器C,也可以PING通B了。效果还可以。
说明一下,我刚刚用的PING都加了-t。这样可以不断的PING。
现在我又跑到机器A,终止了PING
机器C的命令。
……机器C上的结果又产生了变化,PING到A的返回出现了大量的超时。
反复重复了几次上面的动作。得出:

结论五:当修改成统一的MAC机器,在向没有更改MAC的机器提出通讯要求的时候,交换机记住了提出要求的修改成统一MAC的机器的所在端口,然后没有更改MAC的机器,可以把结果数据通过交换机的那个端口发送给请求的机器。
这就是为什么结论四,局域网网关可以把INTERNET服务器返回的数据返回给局域网中修改过MAC的机器的原因。

我开始觉得修改成同样MAC的机器竟然可以上INTERNET网,很奇怪,知道原因后,也就觉得正常了,同时对交换机有了新的认识。
现在我想恢复我的网络,不要这么多重复的MAC了,因为这样局域网操作是不能使用的。
首先我把设定的IP删除掉,但是机器们很快就自己从还在运行的DHCP服务器上获得了新的IP地址!!
而且都是一样的IP地址,晕!~~
这是因为MAC都是一样的,DHCP给主机分配IP的原理就是每个MAC分配一个不同的IP。
现在由于A和B的机器都是同样的MAC,所以被同时赋予了一样的IP地址,这并不奇怪。。
但是……我发现他们被赋予同样的IP的时候,并没有IP冲突的提示。这倒是我没有想到的。呵呵。
高兴之余,我没有忘记顺手测试他们的上网功能。
!¥……%!¥%!·#%他们竟然都能上网。!!!这次我才是真的晕了。
原来同时具有相同的MAC和IP的机器,发出上网请求的时候,依然是交换机记住了对应的端口,然后在有数据返回的时候,按照原端口在发回去

,机器还是收到了数据。!!!
信息传递是很快的。数据发出到返回瞬间就完成了!

结论六:具有同样MAC的机器设置同样的IP地址,不会报IP地址冲突错误。而且依然可以上网!!

哈,很搞笑吧,这么配置是没有意义。
我之所以这么做,一方面是为了赌赛,一方面是为了娱乐,竟然知道局域网中机器可以用同样的IP同样的MAC来上INTERNET网。
这个消息很好。
大家都知道ADSL宽带,以前可以随意连接小型家庭局域网,共享上网。
可是后来网络尖兵,这个BT的设备,让人困惑,他阻止私自共享上网。
网络尖兵,具有过滤和探测功能,他可以捕获流过的数据包中是否含有多种IP和MAC地址,可以探测用户有没有安装代理和NAT设备,以次判断

是否有共享网络的存在。
我假设如果家庭中,我说一般家庭,机器少的情况下,可以修改统一的MAC,配置统一的IP,连接ADSL去上网,网络尖兵还能怎么查?

最后:
以上的情况都是在统一的MAC和统一的IP机器数量少的情况下做的。如果机器很多的话,上网是会出现问题的。
因为很有可能,交换机在给一个机器返回数据结果的当中,有其他的统一的MAC和统一的IP机器发出上网请求,这样的话,瞬间交换机就不知道这个数据包该给那个端口返回了,因为他们具有同样的MAC地址,所以他晕了……
不过还好,我们的应用一般都是以TCP为主,发现丢包的话,机器还再次向INTERNET要一个,所以延迟一下,只要不超时,还是可以维持网络应用的。就算是UDP的QQ,也因为交换机处理数据包的瞬间操作

【上篇】
【下篇】

抱歉!评论已关闭.