前文我们了解了二层端口安全技术相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16631222.html;今天我们来聊一聊MAC地址防漂移技术;

  首先我们来了解下什么叫做MAC地址漂移呢?所谓MAC地址漂移是指在交换机上的一个端口学习到的MAC在同VLAN下的其他端口也学习到了相同的MAC地址;即该MAC地址在同一交换机下的相同VLAN的多个端口之间来回漂浮,一会在这口,一会在那口;我们把这种现象叫做MAC地址漂移现象;发生MAC地址漂移现象的原因只有两种,一种是网络中存在环路;一种就是网络中存在恶意用户伪造MAC地址来欺骗交换机;

  防止MAC地址漂移核心思想

  1、我们知道默认情况下交换机的所有端口学习MAC地址的优先级是相同的(优先级为0),同时默认情况下交换机也是允许相同优先级学习到的MAC地址漂移;所以我们想要防止某个端口下学习到的MAC不会漂移到其他接口下,我们可以提高该端口学习到MAC地址的优先级,这样一来交换机如果再从其他端口学习到相同MAC地址,会对比优先级;这样一来我们就可以优先的防止相同MAC在其他端口学习到(相同MAC是指在我们配置的端口下正常该学习到的MAC);

  2、默认交换机是开启了允许相同优先级学习到的MAC漂移,我们关闭了该功能即可;

  3、MAC-Spoofing-Defend,该技术是用来配置信任端口来防止MAC地址漂移;具体就是我们在全局开启该功能以后,然后在信任的端口下使用相同命令配置对应端口为信任端口;这样一来,在信任端口下学习到的MAC地址在其他非信任端口下就不能够被学习;

  MAC地址漂移惩罚动作

  MAC地址漂移惩罚是指当交换机检查到有MAC地址漂移时,触发的保护动作;

  1、quit-VLAN:该动作表示退出当前VLAN;即当交换机检测到有MAC地址漂移,就就会把对应端口提出对应VLAN,从而来保护现有网络的稳定;

  2、err-down:该动作表示关闭接口,即一旦交换机检测到有MAC地址漂移,即把对应端口给shutdown掉;

  防止MAC地址漂移配置

  实验:如下拓扑,配置防止MAC地址漂移

  如上配置,我们在三个pc1和pc2正常通信的情况下,来查看mac地址表

  提示:可以看到pc1和pc2正常通行,交换机正常学习和记录对应mac地址和对应接口;

  当pc3模拟pc1发包,看看对应mac地址会发生变化呢?

  提示:可以看到当pc3一发包,对应交换机的mac地址表项就发生了变化,从原来的1口变为了3口;这是因为交换默认开了相同优先级的mac地址可以漂移;

  1、通过配置优先级来限制MAC地址漂移现象

  提示:上述命令表示在g0/0/1口学习到的mac地址,优先级为1;

  验证:先pc1发包,然后pc3再发包,看看对应交换机的mac地址表项是否会发生变化呢?

  提示:可以看到现在配置了mac地址学习优先级以后,pc3再次发包欺骗,对应交换机是不会学习pc3发送的源mac;同时交换机也告警,接口g0/0/1的mac在g0/0/3上浮动,请检查网络;

  2、通过取消相同优先级允许mac地址漂移来防止mac地址漂移

  删除优先级配置

  取消允许相同优先级为0的mac漂移

  提示:该命令在全局模式下使用,表示取消所有端口运行相同优先级为0mac地址浮动;

  验证:先pc1发包,然后pc3再发包,看看对应交换机的mac地址表项是否会发生变化呢?

  提示:可以看到交换机的mac地址表项没有发生变化,对应pc1的mac对应g0/0/1,pc2的mac对应g0/0/2;pc3攻击欺骗交换机,对应交换机没有学习pc3的源mac,同时也给出了告警;

  3、通过MAC-Spoofing-defend来限制mac地址漂移

  恢复交换机默认配置

  在交换机全局开启MAC-Spoofing-Defend

  在信任的接口下开启mac-spoofing-defend

  提示:这个是模拟器bug,在真机是可以正常开启的;

  配置发生MAC漂移的惩罚动作

  quit-vlan惩罚动作的配置

  把三个接口都加入到vlan10

  全局开启MAC地址漂移检测

  提示:不管后面的惩罚动作是quit-vlan,还是err-down,都需要先在全局开启MAC地址漂移检查功能,对应配置才会生效;

  在g0/0/3下配置发生mac地址漂移时,退出vlan10

  提示:需要惩罚那个接口,就在那个接口下配置即可;

  验证:先pc1正常发包,然后pc3攻击欺骗交换机,看看对应g0/0/3口是否会退出vlan 10 呢?

  提示:可以看到当交换机检侧出发生了MAC地址漂移后,对应会把g0/0/3口踢出vlan10,从而阻断g0/0/3的接口的流量流入vlan10;这里需要注意检测需要检测出一定次数才会触发这个保护动作;

  查看MAC地址漂移记录

  修改mac地址漂移记录老化时间

  提示:默认老化时间为300秒;

  修改quit-vlan默认恢复时间

  提示:默认quit-vlan恢复时间为10分钟;设置为0表示不自动恢复;

  再次查看漂移记录?对应接口是否回到vlan呢?

  提示:可以看到现在g0/0/3已经恢复到vlan10;

  err-down惩罚动作的配置

  验证:先pc1发包,然后pc3发包,看看对应接口是否会被down掉?

  提示:可以看到当mac地址漂移发生一定次数以后,对应接口就会down,并发出告警;

  查看err-down

  提示:可以看到g0/0/3是因为mac地址漂移而触发的err-down;并且对应没有恢复时间;

  设置err-down的恢复时间

  提示:设置了err-down恢复时间,它这个不针对之前的err-down,只对设置后发生mac地址漂移触发的err-down生效;如果在没有设置自动恢复时间,我们可以先把接口shutdown,然后再undo shutdown,来恢复接口;

  重新触发err-down,看看对应接口是否会自动恢复呢

  提示:可以看到当触发了err-down以后,对应接口会被down掉;当自动恢复时间到期以后,对应接口又会重新恢复到up状态;

HCNP Routing&Switching之MAC地址防漂移的更多相关文章

  1. HCNP Routing&Switching之MAC安全

    前文我们了解了GRE over IPSec 相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16601491.html:今天我们来聊一聊mac安全相关话 ...

  2. HCNP Routing&Switching之DHCP安全

    前文我们了解了MAC地址防漂移技术,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16632239.html:今天我们来了解下DHCP安全相关话题: 回顾DHC ...

  3. HCNP Routing&Switching之组播技术-组播地址

    前文我们聊到了组播技术背景,单播.广播在点到多点应用中的问题,以及组播对比单播.广播在点到多点的网络环境中的优势.劣势,相关回顾请参考https://www.cnblogs.com/qiuhom-18 ...

  4. HCNP Routing&Switching之代理ARP

    前文我们了解了端口隔离相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16186451.html:今天我们来聊一聊ARP代理相关话题: 端口隔离之破解之 ...

  5. HCNP Routing&Switching之IP安全

    前文我们了解了DHCP安全相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16637627.html:今天我们来聊一聊IP安全相关话题: 技术背景 随着 ...

  6. HCNP Routing&Switching之ARP安全

    前文我们了解了IP安全相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16652367.html:今天我们来聊一聊ARP安全相关话题: 什么是ARP? ...

  7. HCNP Routing&Switching之OSPF网络类型

    前文我们了解了PPPoE协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15182512.html:今天我们聊聊一聊OSPF中的网络类型相关话题: ...

  8. HCNP Routing&Switching之IS-IS邻居建立、LSDB同步、拓扑计算和路由形成

    前文我们了解了IS-IS的报文结构和类型相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15260670.html:今天我们来聊一聊IS-IS建立邻居. ...

  9. HCNP Routing&Switching之BGP报文结构、类型和状态

    前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...

随机推荐

  1. redis相关知识点

    redis 的相关知识点 启动 启动代码 redis-cli -a 密码 通用命令 expire: 设置有效期 expire name 10 key key * 相关数据类型 String set:添 ...

  2. Python基础学习笔记_02

    Python中的运算符 标准算术运算符 加(+) 减(-) 乘(*) 除(/) 整除(//) print(1+1) #加法运算 print(1-1) #减法运算 print(2*4) #乘法运算 pr ...

  3. 重学ES系列之Set实现数组去重、交集、并集、差集

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Linux文件的通配符

    通配符的作用:匹配文件名 常见的通配符: *:表示任意个字符(不包括隐藏文件) ?:单个任意字符(中文也算一个字符) []:表示匹配一范围或者其中一个 表示匹配范围: [a-z] --- 不但包括了小 ...

  5. 图片放在div中低下会出现一条缝

    页面要达到的样子 中间写的是时候是向div里面放一张图片就行了 <head> <link rel="stylesheet" href="reset.cs ...

  6. Burnside 引理与 Pólya 定理

    群 群的定义 在数学中,群是由一种集合以及一个二元运算所组成的,符合"群公理"的代数结构. 一个群是一个集合 \(G\) 加上对 \(G\) 的二元运算.二元运算用 \(\cdot ...

  7. Cascade-LSTM: A Tree-Structured Neural Classifier for Detecting Misinformation Cascades(KDD20)

    Cascade-LSTM是一个用于虚假信息级联检测的树结构神经分类器,它本质上是一个谣言(假新闻)检测模型,它将谣言检测任务视为一个树分类问题. Cascade-LSTM在递归神经网络(本文具体基于T ...

  8. Linux操作系统(5):网络命令

    Linux 网络环境配置①自动获取 缺点: linux 启动后会自动获取 IP,缺点是每次自动获取的 ip 地址可能不一样.这个不适用于做服务器,因为我们的服务器的 ip 需要时固定的. ②直 接 修 ...

  9. 常用类-LocalDate、LocalTime、LocalDateTime

    详情解释请看下方代码区 点击查看代码 @Test public void test1(){ //实例化:now()获取当前日期.时间.日期 + 时间 LocalDate localDate = Loc ...

  10. 透过Redis源码探究Hash表的实现

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/667 本文使用的Redis 5.0源码 概述 我们在学习 Redis ...