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地址过滤掉。

时间: 2024-07-30 10:17:02

linux 2.6.21版本的内核合法的MAC地址的相关文章

远程批量获取Linux和Windos操作系统版本(内核)

在不登录远程主机的情况下,可以查看远程主机的服务器操作系统版本(内核). 脚本执行前提: 1.拷贝check_snmp到脚本执行的主机中或在此主机中安装nagios; 2.保持list.txt中只有一个IP列 1 #!/bin/bash 2 #echo "">list_os.txt 3 \cp list.txt list_1.txt 4 awk {'print $1'} list.txt |while read line 5 do 6 echo $line 7 info=`/us

找出Linux的名称,版本以及内核详细

This short tutorial is intended to help newbies who don't know how to find out the Linux distribution name, version and kernel details via command line. Method 1 – Distribution & Version Details Command: cat /etc/*-release Sample Output On CentOS 6.4

遍历交换机里面的mac地址,与公司登记mac合法的mac地址进行对比

脚本目的:查找mac黑名单 日    期:2015年08月20日 联系邮箱:[email protected] Q Q  群:1851 15701 51CTO博客首页:http://990487026.blog.51cto.com 开源社区,有你更精彩! 简介: 遍历交换机里面的mac地址,与公司登记mac合法的mac地址进行对比,匹配到了是合法的,未匹配到就是黑名单. 需求分析:查找mac黑名单 公司登记的PC,MAC,Server设备的mac地址,有一个表单 rmac文件 公司登记的是这样的

【转】Linux(Ubuntu)系统查看版本及内核信息

原文网址:http://www.shangxueba.com/jingyan/121649.html 查看ubuntu版本号方法一: cat  /etc/issue返回结果:Ubuntu 6.06.2 LTS \n \l 方法二:sudo lsb_release -a 返回结果:No LSB modules are available.Distributor ID:    UbuntuDescription:    Ubuntu 6.06.2 LTSRelease:    6.06Codenam

合法的mac地址

以太网的地址为48位,由ieee统一分配给网卡制造商,每个网卡的地址都必须是全球唯一的.共6个字节的长度 字节 5 4 3 2 1 0 位 47..40 39..32 31..24 23..16 15..8 7..0 例子 08 00 09 A0 4A B1 我们需要注意的是以太网地址的第32位是组播地址的标志位: 位 47..33 32 31..24 23..0    制造厂商标识 组播标志位 制造厂商标识 系列号 共 6个字节,其中前面3个字节(除了第32位),组成制造厂商的标识,每个制造厂

linux 下C实现获取网卡IP和MAC地址

本文使用getifaddrs 函数获取网卡的IP和MAC地址.getifaddrs函数有个特点,就是获取地址时以链表方式返回,且每个链表节点要么是IP,要么是MAC,所以如果要将网卡的IP和MAC地址同时返回的话,需要对对返回链表进行查找和重新组合.本文实现目的,在于以网卡名方式返回IP和MAC地址.代码如下: #ifndef _MYLIB_H #define _MYLIB_H #include <stdlib.h> #include <errno.h>   #define err

Linux下如何修改网卡MAC地址

网上有很多关于linux下修改MAC地址的方法,大多依葫芦画瓢,似乎都没验证过,达不到修改的目的.经过我的详细测试,最终成功解决了这个问题. 误区一:#ifconfig eth0 down #ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #ifconfig eth0 up 然后重新启动主机.结论:按照这种方法修改MAC地址,重新启动主机系统后,MAC地址会自动还原. 误区二:#ifconfig eth0 down#cd /etc/sysconfig/netwo

运用Python语言编写获取Linux基本系统信息(一):获得Linux版本、内核、当前时间

申请博客有一段时间了,然而到现在还一篇没有写过..... 主要因为没有想到需要写些什么,最近在学习Python语言,照着书上看了看最基础的东西,发现根本看不进去,而且光看的话今天看了觉得都理解懂了,过两天自己回顾这部分内容的时候发现就又忘了,于是自己就想到自己边学边写一些小程序,以便能更好的让自己记住语法. 一.开发环境以及测试环境 Python2.7.10.pycharm.VM虚拟机.CentOS6.3 二.代码实现 代码结构: commands.py —> os_info_in.py —>

查看Linux系统版本和内核信息

Linux 查看Linux系统版本信息 1. 查看内核版本 1) 方法一:登录到linux执行cat /proc/version [[email protected]_32bit_ip12 ~]$ cat /proc/version  Linux version 2.6.18-194.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:35 EDT 2010