- MAC地址的学习
CAM表:存放的是源MAC地址和接收接口之间的关联信息。
过程:
当交换机接收到一个数据帧的时候,会查看数据帧中的源MAC地址,对照自己的CAM表。若表中有该源MAC地址相应信息,则新的信息会覆盖掉旧的信息;若表中没有该源MAC地址相应信息,则进行学习,将该MAC地址和接收接口以及相应的VLAN信息记录在CAM表中。
- 数据帧的转发和过滤
对比: |
过滤 |
转发 |
交换机 |
没有目标MAC地址的信息,从而进行泛洪 |
根据CAM表转发数据 |
路由器 |
没有目标网段的路由信息,从而进行丢包 |
根据路由表转发数据 |
过程:
当交换机接收到一个数据帧的时候,会查看数据帧里面的目的MAC地址,再查看本地的CAM表。若本地CAM表中有相应的MAC地址信息,那么就根据CAM表去转发该数据帧;若本地CAM表中没有相应的目的MAC地址信息,则就会泛洪,即向除了接收接口以外的其他所有接口都发出去。
数据帧的种类:
- 已知单播帧:发送的数据帧里面的源MAC地址和目的MAC地址是具体的,并且交换机里有相应的条目。
处理:根据MAC地址表进行转发
- 广播帧:发送的数据帧里面的源MAC地址是具体的,目的地址是全F的。
处理:泛洪
- 未知单播帧:发送的数据帧里面的源MAC地址和目的MAC地址是具体的,但是交换机里没有相应的条目。
处理:交换机地址表里没有,则就是进行泛洪,则相当于把一个单播帧变成了一个广播帧。
形成的原因:
- 自然原因:MAC地址的老化时间
交换机的MAC地址表的老化时间是300s(5min)
PC的MAC地址表老化时间是600s(10min)
解决:将交换机和PC的MAC地址表老化时间改成一样的
- 人为原因:攻击
1)客户端一直发送数据帧,其中帧的源MAC地址是随机的,即源MAC地址是不断改变的,会导致交换机不断地进行MAC地址学习,由于交换机的CAM表是有上限的,从而会将旧的有用的MAC地址条目替换。如果此时原正常用户发送正常数据帧到交换机的时候,交换机会查找不到相应的条目,进而会进行泛洪。
2)客户端一直发送数据帧,其中帧的目的MAC地址是随机的,交换机就收到一大串未知的目的MAC,就会进行泛洪,容易造成使网络的负担大。
避免:
- 可以设置交换机的该端口最多可以学习MAC地址的数量。
- 将正常主机的MAC地址和端口进行一个手动绑定。
- 环路的避免
背景:为了防止单点故障,使用冗余链路,然而会产生环路。
环路产生的问题:广播风暴、帧的多个副本、MAC地址数据库的不稳定
解决:STP生成树机制
原理:通过STP生成树机制,将多余链路进行阻塞,即通过选举机制选出一个端口使其在逻辑上堵塞,形成一个无环的网络环境。