在
这种正常的MAC地址学习过程被黑客利用,变成了交换机的漏洞。因为黑客可以发送成千上万的源MAC地址变化的报文,把交换机的MAC地址表填满,从而造成正常用户之间通信的报文也以泛洪的形式来转发,从而阻塞整个网络.
下面举个例子来说明MAC地址表溢出攻击及其防御措施。
拓扑图
交换机的四个端口E0/0-3都在同一个VLAN10中;假设交换机的最大MAC地址表项值为5(最多可创建5个条目);攻击者不断发送源MAC地址已经改变的消息(源MAC一共改变了5次);PC2向PC1发送一条消息。测试配置
PC的配置:PC1、PC2和PC3都很相似。以PC1为例。
PC1配置
交换机配置:所有PC都在同一个VLAN中。
开关配置
测试过程
攻击者不断发送源MAC地址发生变化的报文,会导致交换机的所有MAC表项被占用,如下图所示:MAC地址表已经达到最大值(5);攻击者填写MAC地址表。
PC2访问PC1,发送的报文到达交换机;交换机取出报文的目的MAC地址,查找MAC地址表,发现没有PC1的条目;PC2发送的消息
交换机将从同一VLAN的所有接口发送此消息,从而形成泛洪;在这种情况下,PC1和PC3都能收到PC2发送给PC1的报文,这不仅会导致网络中出现冗余流量,还会使PC2发送的数据变得不安全。造成这种现象的原因是,如果因为交换机没有学习PC1的MAC地址,如果交换机学习了PC1的MAC地址,则PC2的流量只会从E0/1转发出去,不会泛洪。但是攻击者把MAC地址表填充满了,交换机没有能力把PC1的MAC加入到表中。的网络规模比较大,网络中所有的PC互通流量都会涌入网络,带宽很快就会被占用。
MAC地址老化是防止MAC地址表溢出的天然手段,但只能在正常使用环境下使用,如果出现黑客攻击场景,作用非常有限。
因为黑客会继续发送消息,导致交换机也持续不断的刷新MAC地址表,这样交换机永远没有机会把正常PC的源MAC记录在MAC地址表中.
防御手段2:限制MAC地址数量
MAC地址溢出攻击非常容易判断。当发现来自一个或几个端口的MAC地址填满了整个MAC地址表时,可以判断这是一次MAC地址表溢出攻击。
如下图:打印MAC地址表后,发现来自E0/1的MAC占用了所有条目。
E0/1接口MAC太多。
此时,可以使用限制MAC地址数量的方法来防止攻击。将最大允许的MAC地址数量设置为2,超过的报文都丢弃,这样就能让交换机腾出表项,学习其它正常PC的MAC,配置如下图所示:
配置MAC地址限制
MAC地址表溢出攻击也要引起足够的重视,别说交换机性能够强,就不用担心这样的攻击。事实上,如果不采取措施,任何交换机都无法抵御MAC地址洪水攻击,因为黑客很容易发送数亿条MAC地址发生变化的消息。
经过以上描述,你已经了解MAC地址表溢出攻击了吧?
有问题请留言说一下!也欢迎关注我的头条号,一起探讨网络问题!