MAC地址

1. 介绍

 MAC(Media Access Control,介质访问控制)地址,或称为MAC位址、硬件地址,用来定义网络设备的位置。MAC集成在网卡,由48bit的16进制的数字组成,0~23位数字叫作组织唯一标志符(organizationally unique,是识别局域网节点的标识)。24~47位是由厂家自己分配,其中第48位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM芯片中,芯片中的数据可以通过程序进行擦写,它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。也就是说,在网络底层的物理传输过程中,数据传输是通过物理地址来识别主机的,它一定是全球唯一的。

2. 结构

 网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不去更改自己的MAC地址,那么MAC地址在世界上就是唯一的。

3. 作用

 IP地址就如同一个职位,而MAC地址则像是去应聘这个职位的人。职位既可以由甲担任,也可以由乙担任。同理,一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。

 无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol,地址解析协议)负责将IP地址映射到MAC地址上来完成的。

4. ip vs mac

IP地址和MAC地址相同点是它们都唯一,不同的特点主要有

  • 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址是基于网络拓扑设计出的,同一台设备或计算机上,改动IP地址是很容易的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址不可由本地连接内的配置进行修改。如果一个计算机的网卡坏了,在更换网卡之后,该计算机的MAC地址就变了。
  • 长度不同。IP地址为32位,MAC地址为48位。
  • 分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商。
  • 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。

5. 获取

5.1 windows

C:\Users\cmz>ipconfig

Windows IP 配置

.....

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::ed0a:9ca1:cefb:f69c%8
   IPv4 地址 . . . . . . . . . . . . : 192.168.2.112
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.2.1

5.2 linux

root@leco:~# ifconfig enp3s0
enp3s0    Link encap:以太网  硬件地址 74:27:ea:b0:aa:2c  
          inet 地址:192.168.5.110  广播:192.168.5.255  掩码:255.255.255.0
          inet6 地址: fe80::7627:eaff:feb0:aa2c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:52246353 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:58477006 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:11250372112 (11.2 GB)  发送字节:78706990128 (78.7 GB)

6. 烧录mac

我很久之前做嵌入式的时候的笔记,关于使用的intel82572EI,X1的光口烧写eeprom和mac

准备:

  • eeprom 型号是AT25320
  • Intel82572EI的X1的光纤卡
  • Intel烧写网卡的dos工具eeupdate
  • 能起dos的u盘(推荐dos盘或者老毛桃)

6.2 详细步骤

  • 1、u 盘启动dos
  • 2、找到eeupdate工具。Eeupdate 查看有哪些网卡,注意找到事先插上去的PCIEX1的网卡。
  • 3、刷EEPROM 和mac地址

用法:在DOS下

  • eeupdate -all -dump 提取代码文件
  • eeupdate -nic=1 -d 82572X1.EEP写入代码文件
  • eeupdate -nic=1 -mac=000AC45D7800写入MAC

其中-nic=1 1表示第一个,这个要看是否是对应的烧写的光纤,使用上述的台式机就是1。

我烧写的网卡的mac地址分别是000AC45D7800,000AC45D7801,000AC45D7802,000AC45D7803 注意烧完eeprom,开机进入windows看一下是否能找到网卡是否能ping通,之前就发现虽然烧写成功了,但是进入xp却找不到网卡,重复以上操作,再烧写一次.eep和mac,直到能找到网卡和ping通网卡。还有使用外购的光转电的模块,光口的位置不是很牢固,接触不好,有时候不通是接触问题动动光模块。

常见问题

  • 1、未烧写之前插上x1的光纤卡,进入系统,xp识别不了网卡。

重新插拔X1的光纤卡。

  • 2、烧写网卡的eep和烧写mac地址。进入系统xp识别不了网卡。

重新烧写一次eep和mac地址。

  • 3、烧写网卡的eep和烧写mac地址。进入系统xp识别了网卡,但是ping不了。

注意外界设备光纤口部分的两根光纤线方向有TX和RX之分(看光模块上靠近光纤部分丝印的箭头方向)。同时查看光纤和电口的接触是否良好,之前就发现光模块和SFP的连接器没接触好,动了动光模块就ping通了。