首页 > 代码库 > OpenWrt Mac地址修改错误SIOCSIFHWADDR: Cannot assign requested address
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就不会出现这个问题了。
/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就被认为是有效的
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。