MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address),硬件地址(Hardware Address)或物理地址(Physical Address),可见“MAC地址”实际上就是适配器地址或适配器标识符EUI-48,用来确认网络设备位置的位址。在
OSI模型中,第三层网络层负责
IP地址,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个
网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址 。
简介
MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的
EPROM(一种闪存芯片,通常可以通过程序擦写)。
IP地址与MAC地址在计算机里都是以
二进制表示的,IP地址是32位的,而MAC地址则是48位的 。
MAC地址由48位二进制数(6个字节)组成,通常表示为6位十六进制数,格式为XX-XX-XX-XX-XX-XX。如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由
IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性 。
结构
网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,由网络设备制造商生产时写在硬件内部。MAC地址则是48位的(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址。具体如下图所示,其前3字节表示OUI(Organizationally Unique Identifier),是IEEE的注册管理机构给不同厂家分配的代码,区分不同的厂家。后3字节由厂家自行分配。
MAC地址最高字节(MSB)的低第二位(LSb)表示这个MAC地址是全局的还是本地的,即U/L(Universal/Local)位,如果为0,表示是全局地址。所有的OUI这一位都是0。
MAC地址最高字节(MSB)的低第一位(LSb),表示这个MAC地址是单播还是多播。0表示单播。
MAC地址分为三种类型:物理MAC地址、
广播MAC地址和
组播MAC地址。物理MAC地址是唯一一个标识以太网终端的地址。广播MAC地址用于向局域网上的所有终端设备发送数据,其所有位都设置为1(即FF-FF-FF-FF-FF-FF)。组播MAC地址用于向局域网上的一组终端设备发送数据,其第8位为1。
工作过程
网络上的
数据包从初始点开始 ,经过一个个中间节点最终到达目标节点 ,数据包是如何从初始节点开始识别一个个中间节点最终找到目标节点的呢? 实际上初始节点是根据目标节点的地址 ,将目标节点的IP地址映射到中间节点的MAC地址,找到第一个中间节点。从第一个中间节点出发,根据目标节点的IP地址映射到第二个中间节点的MAC地址,从而找到第二个中间节点……,以此类推,直到当找到最后一个中间节点后,从最后一个中间节点出发,根据目标节点的地址映射到目的节点的MAC地址,从而将
数据包传送给目标主机。所以数据包的传送过程就是:不断地将目标节点的地址映射到一个个中间节点的MAC地址,再从一个个中间节点出发,直到找到最终的目标节点 。
数据包传送的关键是将目标节点的IP地址映射到中间节点的MAC地址。IP地址与MAC地址的映射要通过ARP地址解析协议来完成,它可将网络中的IP地址映射到主机的MAC地址,如交换机可以根据网络中的IP地址来找到本地主机的MAC地址。具体过程是:当交换机接收到来自网上一个数据包时,会根据该数据包的目标IP地址,查看交换机内部是否有跟该IP地址对应的MAC地址 ,如果有上次保留下来的对应的MAC地址,就会将该数据包 转发到对应MAC地址的主机上去。如果在交换机内部没有与目标)地址对应的MAC地址,则交换机会根据ARP协议将目标IP地址按照“表”中的对应关系映射成MAC地址 ,数据包就被转送到对应的MAC地址的主机上 。
作用
MAC地址的主要作用是在网络通信中标识和定位网络设备。当数据需要在网络上传输时,发送方会将目标设备的MAC地址封装在数据帧的头部,以便网络设备根据MAC地址进行寻址和转发。MAC地址确保了数据能够准确地被传送到目标设备,而不是被广播到整个网络。
IP 地址是基于逻辑的,比较灵活,不受硬件的限制,也容易记忆。而 MAC地址在一定程度上与硬件一致,是基于物理的,能够标识具体的网络节点。这两种地址各有优点,使用时也因条件不同而采取不同的地址 。
大多数接入Internet的方式是把主机通过局域网组织在一起,然后再通过交换机或路由器等设备和 Internet 相连接。这样一来就出现了如何区分具体用户,防止 IP地址被盗用的问题。由于IP地址只是逻辑上的标识,任何人都能随意修改,因此不能用来具体标识一个用户。而 MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件即网卡,否则一般是不能被冒名顶替的。基于 MAC 地址的这种特点,因此局域网采用了用MAC地址来标识具体用户的方法 。
在具体的通信过程中,通过交换机内部的交换表把 MAC地址和 IP 地址一一对应。当有发送给本地局域网内一台主机的数据包时,交换机首先将数据包接收下来,然后把数据包中的 IP 地址按照交换表中的对应关系映射成 MAC地址,然后将数据包转发到对应的 MAC地址的主机上去。这样一来,即使某台主机盗用了这个 IP 地址,但由于此主机没有对应的 MAC地址,因此也不能收到数据包,发送过程和接收过程类似 。
所以,无论是
局域网,还是广域网中的计算机之间进行通信时,最终都表现为将数据包从某种形式的链路上的一个初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的传递都是由 ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到 MAC地址上来完成的 。
身份证就是用来证明一个人的身份。平日身份证的作用并不是很大,但是到了有的关键时刻,必须有身份证来说明一个人的一切。那么,IP地址与MAC地址绑定,就如同在日常生活中一个人与身份证的关系。因为,IP地址可以随意的,但MAC地址是唯一说明IP地址身份的。例如,为防止IP地址被盗用,通常交换机的端口绑定(端口的MAC表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改MAC地址的盗用,如果是三层设备还可以提供交换机端口、IP地址和MAC地址三者的绑定 。
特点
获取方法
在命令提示符下输入命令“ipconfig /all”回车之后就会显示当前计算机的一些网络信息,其中“Physical Address”字样的这一项就是当前计算机中网卡的 MAC地址。当然,如果计算机中安装有多个网卡,则会有多个“Physical Address”字样 。
与IP地址区别
IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:
1.对于网络上的某一设备,如一台计算机或一台路由器,其IP地址是基于网络拓扑设计出的,同一台设备或计算机上,改动IP地址是很容易的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址不可由本地连接内的配置进行修改。如果一个计算机的网卡坏了,在更换网卡之后,该计算机的MAC地址就变了 。
2.长度不同。IP地址为32位,MAC地址为48位 。
3.分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商。
4.寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。
MAC攻击
(1) MAC泛洪攻击
(2) MAC欺骗攻击
MAC安全
(1) MAC-Spoofing-Defend技术
通过配置信任端口来防止MAC地址漂移,当接口配置为信任端口后,从此接口学习到的MAC地址不会在其他的接口上再学习到。缺省情况下接口都是非信任端口。
1.mac-spoofing-defend enable 全局模式下开启此功能
2.mac-spoofing-defend enable 接口模式下,将此接口配置为信任端口
(2) MAC地址漂移技术
通过配置接口的优先级来防止MAC地址漂移,具体分为两种:第一,同一MAC地址,从高优先级接口学习到的会覆盖从低优先级接口学习到的;第二,当接口优先级相同时,可以让后学习到的不会覆盖之前学习到的(默认会覆盖)。
1.Mac-learning priority 1 配置接口的优先级(缺省是0,越大越优先)
2.Mac-learning priority flapping-defend action discard 配置禁止MAC地址漂移时报文的处理动作为丢弃
3.Undo mac-learning priority 2 allow-flapping 允许相同优先级为2的接口发生漂移
(3) 禁止/限制MAC地址学习配置
1.Mac-address learning active disable 禁止MAC地址学习功能
2. Mac-limit maximum 10 限制MAC地址学习数量