zoukankan      html  css  js  c++  java
  • linux 2.6.21版本的内核合法的MAC地址

    当执行ifconfig eth0 hw ether 11:22:33:44:55:66时,当前内核显示修改成功,但是ping时只无限发送ARP包,PC机也已经给板子回ARP包,但没有任何ICMP包的信息,怀疑是MAC地址不合法造成的。

    网上文章是这么说的:

    当输入第二句命令是会提示:SIOCSIFHWADDR: Cannot assign requested address。原来是MAC地址设置不对。
    IP地址分为三类:广播,组播和单播。广播就是:FF:FF:FF:FF:FF:FF。组播:第一字节最后一位是1,如47:72:65:65:6e:00,
    47的最后一位是1。单播:第一字节最后一位是0,如48:72:65:65:6e:00
    。把上面的地址改为48就不会出现这个问题了。

    问题深入学习:

    IEEE 802定义MAC地址为

    |<--------- 24 bit --------->|<--------- 24 bit -------->|
    | ccccccug cccccccc cccccccc | xxxxxxxx xxxxxxx xxxxxxxx |

    由ug控制mac地址类型:

    u: 0:由 IEEE 指定ID统一管理
        1:本地管理
    g: 0:单播
        1:多播
    也就是12位MAC地址分为四类,由其中第二位决定
    第二位为
     0 | 4 | 8 | C :(00)统一管理的单播 MAC
     1 | 5 | 9 | D :(01)统一管理的多播 MAC
     2 | 6 | A | E :(10)本地管理的单播 MAC
     3 | 7 | B | F: (11)本地管理的多播 MAC

    =================================================================
    由于针对ADSL路由等这样的网络终端,一般使用的都是 统一管理的单播MAC
    所以会判断 02:10:18:01:00:01 或者(11:01:18:00:00:30)为无效MAC,导致无线等功能失效,或者网络连接失败等现象。
    而对于 00:25:5E:08:DE:43 这样的MAC就被认为是有效的

    但是2.6.21修改成错误的mac地址它并没有提示,MAC地址不合法,但后面又会把这个MAC地址过滤掉。

  • 相关阅读:
    Redis企业级数据备份与恢复方案
    使用canal增量同步mysql数据库信息到ElasticSearch
    SpringBoot基于数据库实现简单的分布式锁
    SpringBoot+ShardingSphere实现分库分表 + 读写分离
    SpringBoot 使用JestClient操作Elasticsearch
    Java 操作 MongoDB
    VS C#开发中WinForm中Setting.settings的作用
    Sql 触发器禁用和启用
    ROW_NUMBER over (order by **)
    Aspen 安装
  • 原文地址:https://www.cnblogs.com/yangv/p/5520087.html
Copyright © 2011-2022 走看看