OpenWrt Mac地址修改错误SIOCSIFHWADDR: Cannot assign requested address


问题

设置mac地址 11:22:33:44:55:66, 在OpenWrt正在开发的主trunk上就没有SIOCSIFHWADDR: Cannot assign requested address, 这个问题。
但是到attitude adjustment最新的trunk上就出现了,估计是内核版本不同,导致都mac地址的限制不同导致。
最新的反而不严格了?这个不科学啊。

解决方法:
http://blog.csdn.net/evenness/article/details/7674038
http://blog.csdn.net/hds_yx/article/details/17285873

在Linux下修改网卡的MAC地址命令:

/sbin/ifconfig eth0 down
/sbin/ifconfig eth0 hw ether 47:72:65:65:6e:00
/sbin/ifconfig eth0 up

当输入第二句命令是会提示: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就被认为是有效的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱国正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值