4

HCNP Routing&Switching之MAC地址防漂移 - Linux-1874

 1 year ago
source link: https://www.cnblogs.com/qiuhom-1874/p/16632239.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

HCNP Routing&Switching之MAC地址防漂移

  前文我们了解了二层端口安全技术相关话题,回顾请参考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地址漂移

1503305-20220828090409986-1155390178.png

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

1503305-20220828090908932-218917410.gif

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

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

1503305-20220828091130965-596102769.gif

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

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

1503305-20220828091412671-683746106.png

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

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

1503305-20220828091737027-1210076373.gif

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

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

  删除优先级配置

1503305-20220828092136693-1495490014.png

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

1503305-20220828092449665-1476603003.png

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

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

1503305-20220828092830891-599443655.gif

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

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

  恢复交换机默认配置

1503305-20220828093357247-2062280884.png

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

1503305-20220828093546463-88588120.png

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

1503305-20220828093643027-1268879480.png

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

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

  quit-vlan惩罚动作的配置

  把三个接口都加入到vlan10

1503305-20220828094926333-1001618453.png

  全局开启MAC地址漂移检测

1503305-20220828100634599-1069164375.png

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

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

1503305-20220828100825012-1530650421.png

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

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

1503305-20220828101855541-321081707.gif

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

  查看MAC地址漂移记录

1503305-20220828102146832-2025982808.png

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

1503305-20220828102304400-1670326248.png

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

  修改quit-vlan默认恢复时间

1503305-20220828102559897-1076134252.png

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

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

1503305-20220828102933538-909798580.png

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

  err-down惩罚动作的配置

1503305-20220828103617300-386673866.png

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

1503305-20220828104200225-305429749.gif

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

  查看err-down

1503305-20220828104439829-347351611.png

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

  设置err-down的恢复时间

1503305-20220828104729246-1176636054.png

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

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

1503305-20220828110111546-2041961427.gif

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK