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

MAC 地址会消耗光吗?它与 IP 有没有可比性?

  •  
  •   mostkia · 2020-06-12 16:05:16 +08:00 · 7140 次点击
    这是一个创建于 1623 天前的主题,其中的信息可能已经有所发展或是发生改变。

    忽然发现,IPV6 的长度已经比 MAC 长太多了,以后 MAC 地址消耗光了怎么办? 但忽然想到以下场景,不在同一个网段应该问题不大吧?比如:像以前的山寨机,一般都是小作坊,根本没有资质买 MAC 地址吧?都是随便写的,为什么能够连入互联网?还有 windows 虚拟机,也是专门买了一段 MAC 供全球用户使用。但应该也不够使用的,所以我这边得出了个结论,也就是说 MAC 地址是可以重复的?只要不是在一个网段里面?

    45 条回复    2020-06-14 19:26:03 +08:00
    TangMing
        1
    TangMing  
       2020-06-12 16:09:29 +08:00 via iPhone
    uuid ?
    hyperbin
        2
    hyperbin  
       2020-06-12 16:11:03 +08:00 via Android   ❤️ 9
    mac 只要在同一网关下不重复就行,就像通过省长 /市长 /村长来找人,人名就够了
    ddefewfewf
        3
    ddefewfewf  
       2020-06-12 16:11:04 +08:00
    MAC 地址都可以随便修改
    jimmyismagic
        4
    jimmyismagic  
       2020-06-12 16:11:16 +08:00
    MAC 地址还可以伪造呢
    yinzhili
        5
    yinzhili  
       2020-06-12 16:12:19 +08:00
    对,可以重复
    GeruzoniAnsasu
        6
    GeruzoniAnsasu  
       2020-06-12 16:12:46 +08:00
    跨了 3 层交换机 mac 地址就没用了。。 你觉得呢
    jdgui
        7
    jdgui  
       2020-06-12 16:14:28 +08:00
    2 的 48 次方,基本上无法重复吧
    geeglo
        8
    geeglo  
       2020-06-12 16:19:43 +08:00
    @ddefewfewf
    @jimmyismagic

    真实的 MAC 不是随意改的。



    另外终端设备重复也没什么大问题。不会造成网络瘫痪。

    路由交换设备有分区销售策略,比如思科可以保证,正规渠道采购的话,某片区内绝对无重复。
    sbmzhcn
        9
    sbmzhcn  
       2020-06-12 16:20:59 +08:00   ❤️ 2
    为什么 Mac 地址不需要全球唯一

    https://draveness.me/whys-the-design-non-unique-mac-address/
    gzfrankie
        10
    gzfrankie  
       2020-06-12 16:21:47 +08:00 via iPhone
    mac 地址 48 位呢,2^48,相当于全世界每人能分 4 万个地址。

    ipv4 只有 32 位,比 mac 地址少了 65536 倍,每个人都分不到一个地址。

    而且理论上只要同一个局域网的 mac 不冲突就没问题,厂商是可以复用自己买回来的 mac 地址块的。
    loading
        11
    loading  
       2020-06-12 16:35:51 +08:00 via Android
    ios 连 wifi 都是随机 mac,
    网卡硬件出厂时就划分好的,基本已经很难能到三层交换机里面出现重复。
    tsui
        12
    tsui  
       2020-06-12 16:47:15 +08:00   ❤️ 1
    @loading iOS scanning 的时候是随机 Mac,连接上了还是真实 Mac 的
    Jirajine
        13
    Jirajine  
       2020-06-12 16:49:02 +08:00 via Android
    mac 是链路层通讯使用的,只要一个子网内不重就没有任何问题。
    mostkia
        14
    mostkia  
    OP
       2020-06-12 17:58:12 +08:00
    @hyperbin @yinzhili @sbmzhcn @gzfrankie @Jirajine 好的,感谢解答,印证了一个我的假设。
    mostkia
        15
    mostkia  
    OP
       2020-06-12 18:10:50 +08:00
    目前还是有些好奇,以前的一些 MTK 山寨机,甚至是今天的手机(毕竟安卓开源,杂牌手机还是有的)。MAC 究竟是买了吗?还是随便胡诌一个用用?这些设备大量充斥在我们周围的话,假如恰好 MAC 重复了,这个时候网络会不会出问题?类似的问题还有 IMEI 识别码,这些我感觉杂牌机基本都是乱用的吧。
    caola
        16
    caola  
       2020-06-12 18:14:32 +08:00
    @mostkia 以后全民 ipv6 了,几乎每个 mac 地直都处于公网环境中,确实有可能会造成冲突
    mostkia
        17
    mostkia  
    OP
       2020-06-12 18:17:48 +08:00
    @caola 嗯,可能性会增加很多,比如物联网设备,单片机就算很便宜实惠,也是一台微型计算机,也需要 MAC 地址,这个时候这类产品门槛不高,小厂制作的情况下,MAC 的确可能会重复。除开物联网,我感觉一般的情况下,大家其实都已经习惯使用路由器了,安全又方便,还有 WIFI 可以用,现在谁没事还拨号上网啊,哈哈,太麻烦了。
    testcaoy7
        18
    testcaoy7  
       2020-06-12 18:20:47 +08:00
    @mostkia 我也好奇,MAC 地址重复会造成啥结果,不知道虚拟机能不能展现这个问题
    keygen88
        19
    keygen88  
       2020-06-12 18:27:07 +08:00
    @mostkia 网卡总不能伪造吧,网卡出厂时的就固定了 MAC 地址
    caola
        20
    caola  
       2020-06-12 18:27:33 +08:00
    @mostkia 在 ipv6 下,默认情况下即使你是处于内网中,分配到的也是外网的 ipv6 地址,
    也就是说默认情况下,所有的设备都分配到外网 ipv6 地址,不管是处于几级路由之下的内网
    pinkSlime
        21
    pinkSlime  
       2020-06-12 19:31:31 +08:00
    @keygen88 可以改啊 sohu 家某软件每次启动都会给你刷一次
    mostkia
        22
    mostkia  
    OP
       2020-06-12 19:47:34 +08:00
    @testcaoy7 个人感觉会出现这 3 种可能性:1,网关设备内存中的 MAC 地址会被更新成最新载入的设备,旧设备被覆盖,也就是被挤下线。2,允许 MAC 冲突的设备同时在线,发包时同时给这两个设备一起发。3,允许 MAC 冲突的设备同时在线,随机发包给其中一台设备。后两者感觉软件层可能会出故障。
    mostkia
        23
    mostkia  
    OP
       2020-06-12 19:50:21 +08:00
    @caola 那么叼吗?那安全性基本和 DMZ 主机没什么差别了吧,相当于直接暴露在外网,这内网的服务有些危险呐,如果外网无法访问这些地址,那分配这些地址的意义是什么。。
    rrfeng
        24
    rrfeng  
       2020-06-12 19:51:40 +08:00 via Android
    回去复习一下数据链路层协议……
    codehz
        25
    codehz  
       2020-06-12 20:04:07 +08:00
    @caola #16 ???哪里的事情,只是不 NAT 而已,怎么就都公网了
    bitdepth
        26
    bitdepth  
       2020-06-12 20:18:43 +08:00 via iPad
    @caola 錯,只有 ndp proxy 的場合才會如此,就算 ISP 分了很大的段,也是 route 給你用的
    no1xsyzy
        27
    no1xsyzy  
       2020-06-12 21:13:00 +08:00
    @caola #16 但不在同一个以太网下,全都在公网又不是没有路由了
    no1xsyzy
        28
    no1xsyzy  
       2020-06-12 21:15:39 +08:00
    @mostkia #23 防火墙,请
    我觉得相比这些原内网机器,直接暴露在公网的路由器安全性更堪忧…… 几乎从未更新过固件。
    spadger
        29
    spadger  
       2020-06-12 21:33:25 +08:00
    ipv6 太长是因为装 B,本来 64 位就足够了,甚至 48 位就够了,NAT 是客观需要,不仅仅是为了节约 IP 地址
    caola
        30
    caola  
       2020-06-13 09:36:10 +08:00
    @mostkia #23 默认路由是开启防火墙的,你不关闭就不会暴露外网
    @bitdepth #26 普通支持 ipv6 路由器,默认就这样, isp 分配了一段,再由路由来分配这一段给不同的内网设备
    txydhr
        31
    txydhr  
       2020-06-13 12:13:28 +08:00 via iPhone
    @caola ipv6 现在不会根据 mac 生成了,即使发现已经被占用冲突也可以换 ip
    realpg
        32
    realpg  
       2020-06-13 13:57:35 +08:00
    其实 MAC 地址危机主要出现在 IDC……

    我的机房出现过好多次这个问题……

    核心原因就是有一些非常广泛的软件破解,MAC 地址是计算注册码的一部分……

    网上的破解版,让你改成一个特定 mac 地址给你注册码

    然后一个 LAN 里好几个机器用这个破解软件……
    realpg
        33
    realpg  
       2020-06-13 13:58:15 +08:00
    @caola #16
    孩子,多学习知识再出来说……
    bitdepth
        34
    bitdepth  
       2020-06-13 14:00:10 +08:00 via iPad
    @caola 你重複講一遍有什麼用
    ipv6 ndp 了解一下,怎麼可能會看到 router 後的訊息?唯獨就是違例的 ndp proxy
    caola
        35
    caola  
       2020-06-13 14:10:05 +08:00
    @txydhr #31 我们谈的是 mac 冲突,你却说 ipv6 冲突……
    而你所说的,早在蛮多年之前就解决了
    caola
        36
    caola  
       2020-06-13 14:26:51 +08:00
    @realpg @bitdepth 我所说的是普通家用路由器都默认支持,来达到自动分配 ipv6 而已,
    你们却跟我说具体实现的技术,搞笑…
    realpg
        37
    realpg  
       2020-06-13 14:28:12 +08:00
    @caola #36
    没文化,真可怕。
    txydhr
        38
    txydhr  
       2020-06-13 17:23:03 +08:00 via iPhone
    @caola #35
    没文化,真可怕
    Hardrain
        39
    Hardrain  
       2020-06-13 17:51:52 +08:00
    MAC 地址在二层,对三层(IP, etc)以上无影响,只要在同一个 LAN 里不重复即可
    DOLLOR
        40
    DOLLOR  
       2020-06-13 18:38:20 +08:00
    MAC 地址就像全国各地的乡镇名称,这么大的国家难免会有重名的乡镇。
    但是,我们只需保证县级行政区名称不重名,并且同一个县级行政区下没有重名的乡镇,就能通过报县名+乡镇名称,来唯一确定一个乡镇。
    DOLLOR
        41
    DOLLOR  
       2020-06-13 19:10:26 +08:00
    @caola
    即使直接通过公网 IP 接入互联网,ISP 也会把用户划分在不同的子网里,只要每个子网里没有相同的 MAC 就不会冲突,而且一个子网里出现相同 MAC 的概率太低了。
    (我这里的“子网”是网络层的 IP 协议概念里的“子网”,不是 NAT 概念里的那种“内部网络”)
    msg7086
        42
    msg7086  
       2020-06-13 19:39:29 +08:00
    @caola #35 强烈建议学习 MAC 相关的基础知识。这回复都快让我们给看哭了。
    MAC 是物理地址,管 IPv6 啥事,你线头插在哪,MAC 就到哪。
    nickr
        43
    nickr  
       2020-06-13 23:30:27 +08:00
    https://media.geeksforgeeks.org/wp-content/uploads/mac.jpg

    Format of MAC Address –

    MAC Address is a 12-digit hexadecimal number (6-Byte binary number), which is mostly represented by Colon-Hexadecimal notation. First 6-digits (say 00:40:96) of MAC Address identifies the manufacturer, called as OUI (Organizational Unique Identifier). IEEE Registration Authority Committee assign these MAC prefixes to its registered vendors.

    Here are some OUI of well known manufacturers :

    CC:46:D6 - Cisco
    3C:5A:B4 - Google, Inc.
    3C:D9:2B - Hewlett Packard
    00:9A:CD - HUAWEI TECHNOLOGIES CO.,LTD

    所以一个厂商有 2^24 的空间. 1600w 张网卡之后 wrap. 还是有可能在一个局域网里出现冲突的. 虽然概率很小.
    jedihy
        44
    jedihy  
       2020-06-14 09:10:51 +08:00
    @caola 冲突是没问题的,你那个源端的 mac 地址,过了一跳就覆盖了。
    daimiaopeng
        45
    daimiaopeng  
       2020-06-14 19:26:03 +08:00
    亲,这边建议您重新复习一下计算机网络
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5497 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:39 · PVG 14:39 · LAX 22:39 · JFK 01:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.