首页 » 资料 » 局域网中具有相同mac地址的主机试验

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

 

网络数据从高层下来后,到达网络层,封装为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打开浏览器,习惯的输入网址,打开了,鼻涕,汗!

机器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,也因为交换机处理数据包的瞬间操作。

 

原文链接:局域网中具有相同mac地址的主机试验,转载请注明来源!

0