默认情况下,交换机每个端口能够接入的安全MAC地址数量是128个,这个值也是端口能支持的最大值。以图4-5为例,在交换机上可以使用指令“sh port-security int f0/3”查看端口的安全配置信息。
端口f0/3连接的PC3的MAC地址是:4016.9ff2.48ca,目前该端口安全地址的最大个数是默认值128,交换机在该端口能记录128个安全地址,如果超出128个,将产生违例。从下列指令可以看出,当前f0/3端口已经记录的MAC地址表中只有一条记录,并且类型为动态学习(Dynamic)获得,这条记录是当PC3发送数据包时交换机f0/3端口动态学习到的。
如果将f0/3端口的最大连接数改为1,在PC3上“ping”主机PC1,结果显示可以通信。改动拓扑,将PC2连接在f0/3端口,在PC2上“ping”主机PC1,结果显示也可以通信,但此时端口f0/3下的安全MAC地址表为如下所示。
可以看到,安全MAC地址表中依然是只有一条记录,不过这条记录是PC2的MAC地址,虽然限制了最大个数为1,但此最大个数表示的含义是安全MAC地址中存储记录的最大值。当PC3离开交换机的f0/3端口后,交换机改变此端口的状态为DOWN,并且清空了安全MAC地址表。PC2接入交换机后,f0/3端口重新学习到了PC2的MAC地址,所以此时MAC地址表中只有一条记录,就是PC2的MAC地址。
安全MAC地址表中的记录除了交换机动态学习,还可以由管理员手工配置,下列指令为f0/3端口添加一个安全MAC地址。
添加的安全地址是PC2的MAC地址,在PC2上“ping”主机PC1,结果显示可以通信,查看安全MAC地址表如下。
此时查看到的类型不再是动态学习获得,而是管理员配置获得(Configured)。原拓扑为PC2连接f0/2端口,PC3连接f0/3端口,在PC3上“ping”主机PC1,结果显示不可以通信。交换机上会出现安全违例发生的提示:(www.xing528.com)
此时因为安全地址表中静态配置的MAC地址不会被删除,并且限制了最大连接数为1,所以交换机在收到PC3的数据包时认为多于1个连接发生,因此产生违例。在交换机上删除手工配置的安全MAC地址后再次测试PC3与PC1的连通性,结果显示可以通信。
在交换机级联的情况下,计算端口安全MAC地址要考虑交换机本身的MAC地址。仍然以图4-5所示的拓扑为例,三层交换机端口f0/1直连了PC1,端口f0/24级连了二层交换机,对于端口f0/24来讲,安全MAC地址数在计算的时候要考虑到二层交换机是否具备MAC地址。在三层交换机上查看MAC地址表,指令如下。
将结果与图4-5中的MAC地址比对可知,MAC地址001a.a97e.1d6d就是二层交换机的本机MAC地址,二层管理型交换机都具备一个MAC地址,在一些协议中会用到,如生成树协议。下面将三层交换机的f0/24端口的安全地址最大个数配置为2,这将会导致一台设备的数据包不能通过该端口,可能是PC2或者PC3,也可能是二层交换机发出的数据包。
首先断开二层交换机和三层交换机之间的链路,也断开PC3与二层交换机之间的链路,在三层交换机上配置f0/24端口开启端口安全功能,并设置安全地址最大个数为2,指令如下。
断开链路的目的是清空端口上自动学习到的MAC表。再次连接二层交换机和三层交换机之间的链路,在PC2上使用“ping”命令测试与PC1的连通性,结果显示可以通信。在三层交换机上查看端口安全MAC地址表,指令如下。
此时表中的记录数已经有2条,接下来连接PC3与二层交换机之间的链路,在PC3上使用“ping”命令测试与PC1的连通性,结果显示不可以通信,原因就是三层交换机的f0/24端口已达最大连接数2。在三层交换机上配置最大连接数为3,再次测试PC3上与PC1的连通性,测试结果将是可以通信。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。