关于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收到了.
|