V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zjsxwc
V2EX  ›  程序员

局域网里如果 2 个设备 MAC 地址相同会怎么样?

  •  
  •   zjsxwc ·
    zjsxwc · 2017-12-02 08:38:52 +08:00 · 13360 次点击
    这是一个创建于 2549 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以太网数据链路 MAC 层, 靠 MAC 地址来广播帧, 但好多设备都能够更改自己的 MAC 地址, 是不是改成相同的 MAC 地址就可以窃听到被克隆 MAC 地址的设备数据了?

    35 条回复    2017-12-03 19:47:04 +08:00
    Sylv
        1
    Sylv  
       2017-12-02 08:46:35 +08:00 via iPhone
    窃听局域网数据并不用克隆 MAC 地址。
    jimzhong
        2
    jimzhong  
       2017-12-02 08:56:35 +08:00
    局域网内窃听 ARP Spoof 最简单了。
    mchong
        3
    mchong  
       2017-12-02 09:11:13 +08:00
    这样会导致两个设备随机无法上网。我遇到过
    qakito
        4
    qakito  
       2017-12-02 09:14:27 +08:00
    二层交换机会发现 mac 地址迁移并修改二层转发表,其中一个设备在刷新交换机二层转发表之前就断流
    baidu123
        5
    baidu123  
       2017-12-02 09:36:16 +08:00
    好像不会怎么样 曾经在学校的机房里 一台电脑可以上网 我电脑不可以上网 我把我电脑 mac 改成那台上网电脑一样的 然后内网 ip 地址也是一样 这样我就可以上网了
    lrigi
        6
    lrigi  
       2017-12-02 09:40:34 +08:00 via iPhone
    路由器接收应该不存在问题
    在转发的时候是不是查自己的什么表
    然后往先找到的 mac 地址对应的端口发数据?
    97dog
        7
    97dog  
       2017-12-02 09:41:11 +08:00
    @baidu123 但是你得提前比那个人先开电脑啊。不然你就上网不了
    lrigi
        8
    lrigi  
       2017-12-02 09:41:27 +08:00 via iPhone
    局域网窃听用 arp 是不是可以劫持所有流量
    @jimzhong
    jasontse
        9
    jasontse  
       2017-12-02 09:48:25 +08:00 via iPad
    会造成交换机 MAC 表混乱双方不能正常上网
    rssf
        10
    rssf  
       2017-12-02 10:11:35 +08:00
    参考 arp 病毒
    yezhiye
        11
    yezhiye  
       2017-12-02 10:35:30 +08:00 via Android
    不用同 ip,混淆模式就可以了。网卡是可以收到同网段所有的包,只是在确认不是给自己的包之后就丢掉了。
    torbrowserbridge
        12
    torbrowserbridge  
       2017-12-02 10:37:35 +08:00 via Android
    混杂模式
    Cannikin
        13
    Cannikin  
       2017-12-02 10:37:46 +08:00 via Android
    两台电脑不间断出现无法上网的故障
    leafleave
        14
    leafleave  
       2017-12-02 10:48:14 +08:00 via Android
    我见过一篇博客实验过这个问题,ip 重复,mac 重复等等,结论是毫无影响,你百度搜一下。
    baidu123
        15
    baidu123  
       2017-12-02 10:52:27 +08:00
    @97dog 一起上课 都是开机的
    churchmice
        16
    churchmice  
       2017-12-02 11:41:18 +08:00 via Android
    @leafleave 贴出来让大家开开眼
    tinybaby365
        17
    tinybaby365  
       2017-12-02 11:49:14 +08:00 via iPhone
    TCP 连接无法正常建立,另一个机器会发 RST 包。
    leafleave
        18
    leafleave  
       2017-12-02 12:02:11 +08:00 via Android
    @churchmice http://m.zol.com.cn/techbbs/d16_37745.html
    不是原帖地址,原帖还有图,不过找不到了
    nbstoner
        19
    nbstoner  
       2017-12-02 12:05:31 +08:00
    如果两个地址见面肯定会吓一跳
    jimzhong
        20
    jimzhong  
       2017-12-02 12:34:34 +08:00
    @lrigi 可以。
    @torbrowserbridge 仅开启混杂模式依然不能在使用交换机的局域网里窃听其他主机流量。
    gamexg
        21
    gamexg  
       2017-12-02 13:03:31 +08:00
    @torbrowserbridge #12
    @yezhiye #11

    mac 地址一样,不用混杂模式也能收到。


    其实这个问题主要在 ip 地址是不是一样,如果一样不能上网,互相之间会 reset tcp 连接。

    如果 ip 地址不一样,是可以上网,只是速度会变慢。
    交换机会不断的修改 mac 映射的端口。
    dns 请求收不到回应系统会重发,多次总有几率收到。
    tcp 连接本身就有重发机制,也会收到。
    gamexg
        22
    gamexg  
       2017-12-02 13:07:25 +08:00
    @gamexg #21 好吧,看了一下那篇实测,相同 ip 也可以工作...
    看起来需要仔细研究下 tcp 协议了。
    likuku
        23
    likuku  
       2017-12-02 13:07:29 +08:00
    如 #3 #9 所述,都在线的话,就这样子。
    churchmice
        24
    churchmice  
       2017-12-02 13:25:08 +08:00 via Android
    @leafleave 原帖讲了啊,如果这两台机器同时上网,是会有问题的,本来会给 A 的包 B 也会收到,B 会懵逼啊
    lrigi
        25
    lrigi  
       2017-12-02 13:46:56 +08:00
    @churchmice
    “原来同时具有相同的 MAC 和 IP 的机器,发出上网请求的时候,依然是交换机记住了对应的端口,然后在有数据返回的时候,按照原端口在发回去,机器还是收到了数据。!!!
    信息传递是很快的。数据发出到返回瞬间就完成了!”
    不仅仅是 b 也会收到吧,只有一个会收到,a 数据返回的瞬间端口变成了 b 的话 a 就收不到消息了,b 就开始懵逼
    lrigi
        26
    lrigi  
       2017-12-02 13:49:55 +08:00
    @gamexg a 和 c 建立了 tcp,发过来给 a 的时候结果 b 收到了,然后 c 就重传
    根据那篇文章可以推测出路由器只会发给一个端口,不会去遍历转发表,找到了也没有必要遍历浪费时间
    这样是有可能全部发到 b 那里,工不工作是随缘的吧
    gamexg
        27
    gamexg  
       2017-12-02 13:54:45 +08:00
    @lrigi #26 但是当 b 发包时交换机会更新 mac 表,之后的就会发给 b 了。
    操作系统使用网络时发包很频繁,也就是交换机会快速切换,两者快速轮流可以收到数据,会丢失一部分,但是 tcp 重传可以应付,就是网络速度会有影响。

    但是我奇怪当同一 ip 时收到不正确的 tcp 包居然不会 reset 连接?
    也许防火墙在起作用,碰到未知的端口直接拦截了,未进入 tcp 协议栈,所以没有发出 reset 回应。
    lihongjie0209
        28
    lihongjie0209  
       2017-12-02 15:08:35 +08:00
    在 vmware 上测试一下, 一起克隆虚拟机的时候遇到过, 重置地址并重启后就 ok 了, 没有深入研究
    togodo
        29
    togodo  
       2017-12-02 15:23:56 +08:00
    用过虚拟机的知道,mac 重复很常见
    MikuM97
        30
    MikuM97  
       2017-12-02 15:27:19 +08:00
    交换机 mac 地址表翻动,看交换机品牌,可能间歇性丢包
    zjqzxc
        31
    zjqzxc  
       2017-12-02 16:54:22 +08:00
    mac - ip 均相同,可以上网,但(假设其中一台是 linux ) ssh 连不上
    mac 同 ip 不同没试过

    从交换机(假设是一般的几十块钱的非网管交换机)的角度来看,交换表会不断更新。导致发往这个 mac 地址的包间隙性(但不是随机)发往这两台电脑其中的一台。
    一般来说,更新时机是电脑主动发数据后。交换机检测数据包中的源 mac 地址,并将交换表中该源 mac 地址对应的端口更新到指向这个来源端口
    注:以上端口指插网线那个端口,不是 tcp 的端口
    realpg
        32
    realpg  
       2017-12-03 00:38:50 +08:00
    @yezhiye #11
    您还用上古时期的 hub 呢?这玩意现在想找都难了……
    JayaOcean
        33
    JayaOcean  
       2017-12-03 03:36:57 +08:00
    高中时学校公共 WIFI 免密但用 MAC 过滤,然后有一天偷拿到班主任的电脑 MAC 地址,然后修改越狱 iPhone MAC 地址成功蹭网。。之后用局域网扫描软件把整层楼的连接设备 MAC 全导出来分享给同学们了。。于是老是会有老师抱怨电脑上不了网...深藏功与名
    20015jjw
        34
    20015jjw  
       2017-12-03 07:53:31 +08:00
    @JayaOcean 差不多
    leafleave
        35
    leafleave  
       2017-12-03 19:47:04 +08:00
    @churchmice 我只考虑了上 INTERNET 网的情况
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   968 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:48 · PVG 06:48 · LAX 14:48 · JFK 17:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.