[精彩] 关于LAN上有两个相同MAC地址的问题

http://www.chinaunix.net 作者:cgweb  发表于:2006-08-22 01:14:11
发表评论】 【查看原文】 【Linux讨论区】【关闭

关于LAN上有两个相同MAC地址的问题 


目的: 验证发往目的IP的数据包是通过目的MAC来传递 
  
linux server  的MAC是 aa:aa:aa:aa:aa:aa 

windows 98    的MAC是 BB:BB:BB:BB:BB:BB 


windos 2000   的MAC是 cc:cc:cc:cc:cc:cc 


将linux MAC改为与win98的MAC相同,那么LAN上有两个相同的MAC  BB:BB:BB:BB:BB:BB 


此时win2000还能正常和linux , windows 98通信,  Why???????????



 nasvel 回复于:2003-09-03 14:17:01

据我所知,不可能有两块ethernet cards有相同的MAC地址。这由硬件制造商保证的。


 cgweb 回复于:2003-09-03 14:25:01

咳!大哥,没看清楚,俺在写一便"将linux MAC改为与win98的MAC相同"


 supengnest 回复于:2003-09-03 14:29:18

我也想知道,顶一下


 sakulagi 回复于:2003-09-03 14:33:23

我怀疑是不是gatway里面还是有mac的cache,不受你改动的影响。不管怎么改mac,最后网卡在发送包的时候还是会自动将mac的信息附加上去。我对网络不是很熟,猜测而已。


 cgweb 回复于:2003-09-03 14:37:13

linux#ping win98 
有回音 
#tcpdump 
原MAC >; 目的MAC              一样.


 孙轩 回复于:2003-09-03 14:57:31

所谓正常,是什么现象?


 cgweb 回复于:2003-09-03 15:05:39

linux能mount win98的共享目录win98能通过linux上网.


 好好先生 回复于:2003-09-03 15:36:41

挺有意思,我也关注结果.


 xinyv 回复于:2003-09-03 15:53:43

看了楼主的帖子,自己实验了一下,确实在linux8.0下存在以上问题,还发现了帮定了相同的ip地址也不会提示冲突。但是其他机器不能访问这两个相同MAC的机器了,但相同MAC的机器对外访问不会影响。


 cgweb 回复于:2003-09-03 15:57:50

why??


 mb 回复于:2003-09-03 16:04:07

接点是不是有交换机呀


 cgweb 回复于:2003-09-03 16:43:39

HUB


 cgweb 回复于:2003-09-03 16:44:29

要是有一台机器发ARP广播,两台MAC的机器谁回应呢


 cgweb 回复于:2003-09-03 17:06:54

UP


 jinxingvenus 回复于:2003-09-03 17:20:30

水不够深,关注中。。。。。


 cgweb 回复于:2003-09-04 09:53:04

请高手看看 谢谢了。


 czsz 回复于:2003-09-04 10:07:10

我们公司用盗版PSOS,6.7台电脑都改成同一个MAC,怎么还是一样上网?一点冲出没有!


 xinyv 回复于:2003-09-04 10:12:15

关注中.


 marlborolj 回复于:2003-09-04 10:17:32

可能是有缓存 
linux机器重新启动没有, 
你用arp试试!!!!


 pondka 回复于:2003-09-04 10:32:57

可是,MAC怎么能改呢?不是固定在板子中的吗? 
不明白!


 platinum 回复于:2003-09-04 10:38:13

有命令可以改 

咱们再做个实验吧!把两个相同MAC的网卡分别插到两台机器上,同时重装系统,然后配网,用不同IP,最后再连线,确保无CACHE


 marlborolj 回复于:2003-09-04 11:43:16

在同时去ping一台机器,用arp在看看他们的mac地址


 xinyv 回复于:2003-09-04 12:07:28

cache应该是有时间的,不会一直存在吧。


 cgweb 回复于:2003-09-04 12:31:46

我把更改MAC地址的命令写到起动脚本里 , 情况同上。


 j4fun 回复于:2003-09-04 12:34:20

首先HUB是广播的,每一台接入HUB的主机都能受到所有的数据帧,然后对帧中的目的MAC地址进行检查,如果是本机的MAC地址就会将数据帧传给网络层处理。 
网络层查看PACKET的目的IP地址,如果是本机的IP地址就分析是什么协议的数据包,然后传给相应协议处理。

即便主机受到了目的MAC地址与本机MAC地址相同的情况也会进一步发现目的IP地址不同而丢弃该PACKET. 

关于ARP:  ARP request 是IP--->;MAC的查询,因此会在一个广播域中进行广播查询,目的MAC地址是FFFFFF 
每一台主机都会接收并将该帧传给网络层处理,如果目的(即查询)IP地址是自己的IP,才会返回一个ARP REPLY,否则就丢弃该包!只要LINUX与win98主机的IP地址不同,只会由一台主机对该包进行回应! 

关于ARP CACHE:  每台主机都会有一个ARP的CACHE 默认是空的(当然windows的主机开机是会PING网关以确认其MAC地址,因此开机后会有一条记录)。ARP CACHE中的内容一般都是通过发送ARP request得到的,是动态的,若干分钟后会清空(是具体OS而定),除非你使用静态的记录。 
主机在通讯前都会先通过ARP CACHE查询目的ip对应的mac,如果没有就发送ARP request查询,网络中只有与目的IP相应的主机才会返回其mac地址。接着源就能与目的进行通讯了!在一个ARP CACHE存在一个MAC对应不同IP是允许的,这也是在SWITCH环境中IP包截获的基础。 

因此,如果LINUX与win98的主机用了相同的MAC主机,他们都能很好的HUB的环境下和外界进行通讯。当然SWITCH的环境就不同了,可能会造成这两天主机都无法与外界联系的情况! 

有兴趣的朋友可以拜读一下W.Richard Stevens 的 TCP/IP Illustrated Volume 1---The Protocols  这本传世宝典!


 xinyv 回复于:2003-09-04 12:40:26

我晕,楼上的,发广播是开始,数据包出去以后要返回的,回送给哪个网卡呀。MAC相同两个都给????


 j4fun 回复于:2003-09-04 12:44:23

返回给每个人,因为是HUB,一个冲突域啊!任何主机都可以受到网络的所有帧。 

然后根据目的MAC决定是否丢弃,即便主机受到了目的MAC地址与本机MAC地址相同的情况也会进一步检验目的IP地址,不同则丢弃该PACKET。


 cgweb 回复于:2003-09-04 12:49:56

j4fun  写的好阿!


 j4fun 回复于:2003-09-04 12:54:53

谢谢,小弟也就对TCP/IP有微薄的认识。


 sakulagi 回复于:2003-09-04 13:47:38

谢谢j2fun的回答。 
谢谢cgweb最近发起的很多不错的讨论。


 好好先生 回复于:2003-09-04 13:55:46

写的是不错.谢谢!


 joseyu 回复于:2003-09-07 12:53:00

那假设IP,MAC都改成一样呢? 
我试过两台机器都可以上网,但是会丢失数据


 jfcat 回复于:2003-09-07 13:31:36

感谢这位老兄的回答,这多半是网络协议的操作控制问题 


做网络的应该不光学习系统对网络也要有不少了解才行啊 

感谢老兄 :)


 scy99 回复于:2003-09-08 23:15:08

通过软件修改mac地址,到http://www.unixedu.com下载


 q1208c 回复于:2003-09-09 14:08:44

数据包在以太网上是本网段广播的,所以两能机器都能收到数据包,但只有一台能的网络(IP)层会响应,另一个则丢弃数据包。所以,应该能通信的。一点看法,大家共同研究。


 cgweb 回复于:2003-09-09 14:34:25

如果是交换机每一个port 都是一个冲突域呀!


 q1208c 回复于:2003-09-09 16:23:10

那也没关系,如果是交换机,会不停的更新交换机自己的ARP表,如果本机的ARP表没有那个表项,就会的ARP广播,也就学到了IP,但如果有的话,那就会有问题了吧。我没试过。


 JohnBull 回复于:2003-09-09 16:48:30

正常,你的网肯定是用HUB组的. 
所以只要IP不一样就没有任何问题.


 JohnBull 回复于:2003-09-09 16:52:07

引用:原帖由 "q1208c"]那也没关系,如果是交换机,会不停的更新交换机自己的ARP表,如果本机的ARP表没有那个表项,就会的ARP广播,也就学到了IP,但如果有的话,那就会有问题了吧。我没试过。
 发表:

      

普通交换机里面没有arp表! 只不过有些低档交换机如果发现两个端口上有同一个MAC,就会广播处理.


 q1208c 回复于:2003-09-09 16:56:41

说错了,MAC-ADDRESS-TABLE


 theseus 回复于:2003-09-10 00:20:30

引用:原帖由 "cgweb" 发表:
关于LAN上有两个相同MAC地址的问题 


目的: 验证发往目的IP的数据包是通过目的MAC来传递 
  
linux server  的MAC是 aa:aa:aa:aa:aa:aa 

windows 98    的MAC是 BB:BB:BB:BB:BB:BB 


windos 2000   的MAC是..........

      
目的: 验证发往目的IP的数据包是通过目的MAC来传递 
  
linux server  的MAC是 aa:aa:aa:aa:aa:aa 

windows 98    的MAC是 BB:BB:BB:BB:BB:BB 


windos 2000   的MAC是..........
      
不知道你所说的通讯是什么协议的, 
就原理来说TCP是肯定不行的,ICMP,UDP是可以的。 
以太网的协议是走带冲突检测的总线协议的,所以任何一台局域网的机器发送的ehter包,其他的网卡都可以接收到。但是网卡在没有设置成promisc的方式下,只会接收MAC地址是自己MAC地址的包,其他的包都会被丢掉。所以win2000向98发送的ICMP 和UDP包 linux和98都会接收到。UDP是无连接状态的,ICMP更不是了。UDP的包接受到以后linux没有相应的监听端口,所以UDP包会自动被linux drop掉。但是98监听了,所以就发给2000回应。如此, 
2k和98就正常通讯了。至于ICMP 包,回应一次,也是可以理解的了。 
但是TCP是绝对不行的,在主动连接起始阶段,2k向98 发送的SYN包在98接受到以后,98也会向2k发送ACK和SYN 包。2k发送的SYN包也会被linux接收到,但是linux没有相应的监听端口,所以就会向2k发送RST包。无论linux的RST包还是98的ACK/SYN包哪个先到达2k,linux的RST包都会使这个连接中断。


 zerg_009 回复于:2003-09-24 10:42:32

猜测一下:两台机器MAC相同,但是除自己以外没有相同的,所以发出的包能够顺利到达其他的PC而不会产生冲突,但是同网段内有相同的MAC,无法确定哪个是目标,所以其他的PC无法访问这两台MAC相同的PC. 

菜鸟的意见.


 cgweb 回复于:2003-09-24 12:37:57

theseus说的好。


 whao 回复于:2003-09-24 14:00:11

ask of vegetable, how to change MAC?


 bearzhang 回复于:2003-09-24 14:24:23

引用:原帖由 "cgweb"]j4fun  写的好阿!
 发表:

      

举四只手称赞!


 srjiao 回复于:2003-09-24 14:26:20

我看也可能是缓存,多挺一会儿试验一下结果


 godfrey 回复于:2003-10-05 11:00:51

在一个HUB里可能可以访问,在交换机不同端口应该不可以的


 rinehart 回复于:2003-10-10 09:22:00

我也早就发现这样的问题了,但是有一点大家没有注意到,两台机中时常有网络中断的现象发生,我想对于广播的问题可能是有些随机性 . (2002年测试过)


 pinksnoopy 回复于:2003-11-02 16:02:04

这问题我也碰过,,之前我做过测试,,,也不知道原因是什么

我在linuxsir发了有关这贴子,到现在问了很多人都得不到解决!!!!


 namtso 回复于:2004-04-10 22:33:16

引用:原帖由 "theseus" 发表:
     
不知道你所说的通讯是什么协议的, 
就原理来说TCP是肯定不行的,ICMP,UDP是可以的。 
以太网的协议是走带冲突检测的总线协议的,所以任何一台局域网的机器发送的ehter包,其他的网卡都可以接收到。但是网卡?.........


linux并不会发送rst包,它判断收到的包里目的ip与自己的ip不一致时,只是丢弃这个包。如果linux回应rst包,就可能会被别人用来做dos攻击。 
其实这情况跟一个网卡配置两个ip的情况是一样的。


 UTOYHW 回复于:2004-05-09 12:45:32

在我们的局域网中有两个网关,一个512K 一个2M ,但两个网关共享在同一个局域网,我是在512K的,所以常盗用隔壁2M 的网关,后来进行MAC-IP绑定,我把自己的机的IP MAC改为隔壁一个同学的,竟然没有IP 冲突. 不过我那台机被我改了很多地方,天网也自己加了很多定义,TTL也改为255的.我用GOOGLE找了很多文章还不能有个清楚的答案!有谁比较清楚.


 UTOYHW 回复于:2004-05-09 12:48:48

操作系统是XP, LINUX下我还是用原来的IP,没有改,我同学也是XP .


 UTOYHW 回复于:2004-05-09 12:49:26

操作系统是XP, LINUX下我还是用原来的IP,没有改,我同学也是XP .


 qq_t1514 回复于:2005-05-21 14:21:05

这个是没有问题的,两个相同的mac互相发包,自己也会收到


 aaaaaaa 回复于:2006-08-22 01:14:11

我在局域网内两台WINXP的机器(A,B)台机器的MAC地址修改成和一台一样,IP地址自动捕获,结果IP地址也一样了,但计算机名不同,在B飞鸽列表里能看到B,看不到A飞鸽传书,A给B发信息,自己能收到B收不到,给C发信息,C看到的是A发的,给A回信息,结果B收到了.



c.gif

原文链接:http://linux.chinaunix.net/bbs/viewthread.php?tid=153868
转载请注明作者名及原文出处

转载于:https://www.cnblogs.com/hnrainll/archive/2011/09/22/2185050.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值