4、数据链路层故障(一):MAC地址冲突、ARP攻击、VLAN配置错误
数据链路层,说白了就是二层网络的核心。咱们平时说的交换机、MAC地址、ARP协议,全在这一层干活。很多接入故障,其实根源就在这儿。我处理过的网络问题里,至少有一半跟这层脱不了干系。
今天咱们就聊聊三个最常见的坑:MAC地址冲突、ARP攻击、还有VLAN配置错误。嗯,一个一个来。
4.1 MAC地址冲突
MAC地址冲突,听起来挺基础的对吧?但真遇到了,能把人折腾得够呛。
现象是什么?
用户突然断网,或者网络时断时续。你查交换机端口,发现MAC地址表在疯狂抖动——同一个MAC地址,一会儿出现在这个端口,一会儿又跑到那个端口。这就是典型的冲突信号。
为什么会这样?
说白了,就是局域网里有两台设备,用了同一个MAC地址。交换机一看,这地址怎么两边都在说话?它就开始“左右横跳”,不知道该把数据发给谁。结果就是,两台设备都受影响,甚至整个广播域都跟着遭殃。
- 第一步,登录核心交换机,查MAC地址表。命令:
display mac-address | include xxxx-xxxx-xxxx - 第二步,看这个MAC地址出现在几个端口上。如果超过一个,基本实锤了。
- 第三步,顺着端口往下找,看是哪个傻瓜交换机或者终端设备在搞鬼。
我在项目中遇到过一件事。某公司财务部突然集体断网,我过去一看,MAC地址表里有个地址在20多个端口上轮番出现。最后发现,是财务主管自己带了个家用路由器,把WAN口和LAN口接反了,导致路由器把内网MAC地址广播了出去。拔掉那台路由器,网络立刻恢复。
4.2 ARP攻击
ARP攻击,这玩意儿比MAC地址冲突更隐蔽,也更危险。它利用的是ARP协议的一个“天生缺陷”——无状态、无认证。说白了,谁都可以发ARP应答,交换机也不验证真假。
攻击原理:
攻击者伪造一个ARP应答包,告诉网关:“我是某某IP,我的MAC地址是XX:XX:XX:XX:XX:XX”。网关信了,就把本该发给那个IP的数据,全转发给了攻击者。这就是典型的ARP欺骗。
症状表现:
- 用户能上网,但速度极慢,或者某些网站打不开
- 网关ping不通,或者延迟忽高忽低
- 内网出现大量ARP广播包
你想想看,如果攻击者把网关的IP也骗了,那所有用户的数据都得经过他手里过一遍。这不光是断网的问题,还是严重的安全隐患。
arp -s 192.168.1.1 00-11-22-33-44-55,就能把网关的MAC地址静态绑定成一个错误的地址。
怎么防?
我个人建议,从三个层面下手:
- 端口安全: 在交换机上配置端口安全,限制每个端口允许通过的MAC地址数量。命令示例:
port-security max-mac-num 5 - DAI(动态ARP检测): 这是思科和华为交换机都支持的功能。它会检查ARP包的真实性,只有DHCP Snooping表里有的IP+MAC组合,才允许通过。
- 静态ARP绑定: 在核心设备和网关上,把关键IP(比如网关、服务器)的ARP条目写成静态的。这样攻击者再怎么发假包,也改不了。
arp.duplicate-address-detection 或者 arp.opcode == 2。如果看到同一个IP对应多个MAC地址,那基本就是有人在搞鬼了。
4.3 VLAN配置错误
VLAN配置错误,是我见过最“低级”但也是最常见的故障。很多时候,就是少配了一个VLAN,或者端口类型搞错了,结果整个业务全瘫。
典型错误一:Access端口和Trunk端口搞混
Access端口只允许一个VLAN通过,Trunk端口允许多个。如果你把接PC的端口配成了Trunk,PC可能拿不到IP。反过来,如果你把交换机互联的端口配成了Access,那不同VLAN的数据就传不过去。
我记得有一次,客户说新装的几台电脑死活上不了网。我过去一看,交换机互联端口配的是Access,只允许VLAN 10通过。但新电脑在VLAN 20里,数据根本过不去。改成Trunk,允许VLAN 10和20通过,问题立刻解决。
典型错误二:Native VLAN不匹配
Trunk端口上有个Native VLAN的概念。默认是VLAN 1。如果两端交换机的Native VLAN配得不一样,那不打标签的数据帧就会跑到错误的VLAN里去。轻则网络不通,重则造成环路。
- 华为/华三:
display port vlan - 思科:
show interfaces trunk
重点看两端的Native VLAN是否一致,以及允许通过的VLAN列表是否匹配。
典型错误三:VLAN被删了或者没创建
这个听起来很傻,但真有人犯。比如你配了端口属于VLAN 100,但交换机上根本没创建VLAN 100。那这个端口就相当于“黑户”,数据发不出去也收不进来。
知识体系总览
下面这张图,是我梳理的数据链路层故障排查逻辑。你可以把它当成一个“决策树”来用。
好了,这一章的内容就到这儿。数据链路层的故障,说难不难,说简单也不简单。关键是养成好的排查习惯——从MAC地址表入手,结合抓包工具,再核对VLAN配置。这三板斧用好了,大部分二层问题都能搞定。
可可精品资料库