第 5 篇:MAC 地址——IP 管远方,MAC 管眼前

📅 2026/7/5 15:17:56
第 5 篇:MAC 地址——IP 管远方,MAC 管眼前
MAC地址不是身份证是快递单上的下一站网络基本功系列第5篇先回答一个几乎所有初学者都问过的问题既然有IP地址了为什么还要MAC地址这问题我当年也问过。师父看了我一眼说“你有家庭住址为什么还要写收件人电话”住址告诉快递员往哪送电话告诉快递员到了联系谁——两个信息解决两个问题。网络也一样。IP管到哪去MAC管下一站给谁。两个维度缺一不可。一、先画一张图IP和MAC各管哪一段假设你电脑192.168.1.10要访问一台远程服务器93.184.216.34数据包出门长这样目标MAC: 网关你的电脑IP: 192.168.1.10MAC: AA网关路由器IP: 192.168.1.1MAC: GG互联网MAC每跳都在变目标服务器IP: 93.184.216.34MAC: ZZ看两个关键字段字段值谁在管目标IP93.184.216.34服务器IP层从头到尾不变目标MACGG:GG网关的MAC链路层每跳都在变你的电脑根本不关心服务器的MAC地址它只负责把帧扔给网关。网关收到后重新封装帧把目标MAC改成下一跳的MAC。这就是IP和MAC的分工IP地址端到端寻址MAC地址逐跳转发。像快递单收件地址IP最终目的地全程不变驿站取件码MAC每一站的交接凭证过了这站就失效二、MAC地址长啥样怎么读MAC地址48位6个字节十六进制表示00:1A:2B:3C:4D:5E前3个字节00:1A:2B是OUIOrganizationally Unique Identifier厂商标识。查这个前缀能知道大概是谁家生产的网卡。后3个字节厂商自己分配。但别太当真。虚拟机、容器、手机随机MAC查出来可能跟实际厂商毫无关系。看MAC地址时记住一点它只在这条二层链路里有效。出了交换机没人关心你是谁。三、MAC地址工作的核心场景场景一同网段通信——直接找对方主机AIP: 192.168.1.10MAC: AA交换机主机BIP: 192.168.1.20MAC: BB帧内容源MACAA主机A 目标MACBB主机B 源IP192.168.1.10 目标IP192.168.1.20同一个网段IP和MAC的目的地一致都是主机B。符合直觉。场景二跨网段通信——目标MAC是网关这是最容易搞混的地方。访问远程服务器时帧是这样的源MACAA主机A 目标MACGG网关不是服务器 源IP192.168.1.10 目标IP93.184.216.34远程服务器看到没目标IP是服务器目标MAC是网关。很多人第一次抓包看到这个直接懵了——“我明明访问的是服务器为什么包发给路由器了”因为你的电脑只负责把数据送到下一跳。后面的路由是网关的事。技术对应目标IP 最终目的地址目标MAC 当前链路的下一跳地址四、交换机怎么用MAC地址交换机工作在数据链路层核心就是查MAC地址表MAC地址端口AA:AAPort 1BB:BBPort 2收到帧后流程有没有收到以太网帧记录源MAC和端口查目标MAC在哪个端口表里有吗只从对应端口转发广播到所有其他端口交换机会学习收到帧时把源MAC和进来的端口记下来。下次要给这个MAC发数据就知道从哪个端口出去了。如果目标MAC不在表里就泛洪flooding——除了来源端口所有端口都发一份。等对方回复了MAC表就学会了。交换机就是个机械化的快递分拣员见过一次的地址就记下来没见过的就全网广播问谁认识这个地址五、MAC地址的几种类型类型地址用途单播Unicast第一个字节最低位0如00:1A:2B:...点对点通信多播Multicast第一个字节最低位1如01:00:5E:...一组设备接收广播BroadcastFF:FF:FF:FF:FF:FF所有设备都收广播MAC最常见场景是ARP请求。你问谁有192.168.1.1的MAC地址但不知道对方的MAC只能用广播发出去。六、常见排查场景1. 同网段ping不通检查ARP表ipneigh看目标IP的MAC地址是否已学习。如果显示INCOMPLETE说明ARP解析失败——要么目标不存在要么广播域不通VLAN隔离、防火墙拦截等。2. 抓包看到目标MAC是网关很奇怪正常。访问外网时目标MAC就是你配置的默认网关的MAC。检查网关MAC是否正确ipneigh|grep网关IP如果网关MAC显示为INCOMPLETE说明网关ARP没学到外网肯定不通。3. 怀疑MAC地址冲突MAC冲突会导致交换机MAC表来回跳网络时断时续。检查方法在交换机上看MAC表看同一个MAC是否在多个端口出现。Linux下临时查MAC表bridge fdb show4. 虚拟机/容器网络不通检查虚拟网卡的MAC是否正常生成有没有跟其他虚机冲突。云平台偶尔会出现MAC冲突重启实例换个宿主机可能就恢复了。七、几个容易踩的坑坑一MAC地址全球唯一只能说通常唯一。虚拟机、容器、随机MAC、手动修改都会产生重复。排查网络异常时把这条当经验而不是铁律。坑二远程服务器的MAC能在本地抓到抓不到。本地只会看到目标MAC网关。服务器的MAC只存在于它自己的局域网里出了那个网段就被替换了。坑三MAC地址只能在物理机上看到虚拟机、容器、网桥、隧道接口都有MAC地址。ip link看到的每一个接口都有自己的MAC。八、一句话总结IP告诉你最终要去哪MAC告诉你下一步交给谁。一个管战略一个管执行。分清楚了网络就入门了一半。下一篇预告有了IP想知道对应的MAC地址就得靠ARP协议。下一篇我们来拆ARP广播问谁是192.168.1.1为什么要全网都知道ARP缓存中毒又是怎么回事