我们通常说的MAC地址与交换机端口绑定其实就是交换机端口安全功能。端口安全功能能让您配置一个端口只允许一台或者几台确定的设备访问那个交换机;能根据MAC地址确定允许访问的设备;允许访问的设备的MAC地址既可以手工配置,也可以从交换机“学到”;当一个未批准的MAC地址试图访问端口的时候,交换机会挂起或者禁用该端口等等。
一、首先必须明白两个概念:
可靠的MAC地址。配置时候有三种类型。
静态可靠的MAC地址:在交换机接口模式下手动配置,这个配置会被保存在交换机MAC地址表和运行配置文件中,交换机重新启动后不丢失(当然是在保存配置完成后),具体命令如下:
Switch(config-if)#switchport port-security mac-address Mac地址
动态可靠的MAC地址:这种类型是交换机默认的类型。在这种类型下,交换机会动态学习MAC地址,但是这个配置只会保存在MAC地址表中,不会保存在运行配置文件中,并且交换机重新启动后,这些MAC地址表中的MAC地址自动会被清除。
黏性可靠的MAC地址:这种类型下,可以手动配置MAC地址和端口的绑定,也可以让交换机自动学习来绑定,这个配置会被保存在MAC地址中和运行配置文件中,如果保存配置,交换机重起动后不用再自动重新学习MAC地址,虽然黏性的可靠的MAC地址可以手动配置,但是CISCO官方不推荐这样做。具体命令如下:
Switch(config-if)#switchport port-security mac-address sticky
其实在上面这条命令配置后并且该端口得到MAC地址后,会自动生成一条配置命令
Switch(config-if)#switchport port-security mac-address sticky Mac地址
这也是为何在这种类型下CISCO不推荐手动配置MAC地址的原因。
二、违反MAC安全采取的措施:
当超过设定MAC地址数量的最大值,或访问该端口的设备MAC地址不是这个MAC地址表中该端口的MAC地址,或同一个VLAN中一个MAC地址被配置在几个端口上时,就会引发违反MAC地址安全,这个时候采取的措施有三种:
1.保护模式(protect):丢弃数据包,不发警告。
2.限制模式(restrict):丢弃数据包,发警告,发出SNMP trap,同时被记录在syslog日志里。
3.关闭模式(shutdown):这是交换机默认模式,在这种情况下端口立即变为err-disable状态,并且关掉端口灯,发出SNMP trap,同时被记录在syslog日志里,除非管理员手工激活,否则该端口失效。
具体命令如下:
Switch(config-if)#switchport port-security violation {protect | restrict | shutdown }
下面这个表一就是具体的对比
Violation Mode Traffic is forwarded Sends SNMP trap Sends syslog message Displays error
message Shuts down port
protect No No No No No
restrict No Yes Yes No No
shutdown No Yes Yes No Yes
表一
配置端口安全时还要注意以下几个问题:
端口安全仅仅配置在静态Access端口;在trunk端口、SPAN端口、快速以太通道、吉比特以太通道端口组或者被动态划给一个VLAN的端口上不能配置端口安全功能;不能基于每VLAN设置端口安全;交换机不支持黏性可靠的MAC地址老化时间。protect和restrict模式不能同时设置在同一端口上。
下面把上面的知识点连接起来谈谈实现配置步骤的全部命令。
1.静态可靠的MAC地址的命令步骤:
Switch#config terminal
Switch(config)#interface interface-id 进入需要配置的端口
Switch(config-if)#switchport mode Access 设置为交换模式
Switch(config-if)#switchport port-security 打开端口安全模式
Switch(config-if)#switchport port-security violation {protect | restrict | shutdown }
上面这一条命令是可选的,也就是可以不用配置,默认的是shutdown模式,但是在实际配置中推荐用restrict。
Switch(config-if)#switchport port-security maximum value
上面这一条命令也是可选的,也就是可以不用配置,默认的maximum是一个MAC地址,2950和3550交换机的这个最大值是132。
其实上面这几条命令在静态、黏性下都是一样的,
Switch(config-if)#switchport port-security mac-address MAC地址
上面这一条命令就说明是配置为静态可靠的MAC地址
2.动态可靠的MAC地址配置,因为是交换机默认的设置。
3.黏性可靠的MAC地址配置的命令步骤:
Switch#config terminal
Switch(config)#interface interface-id
Switch(config-if)#switchport mode Access
Switch(config-if)#switchport port-security
Switch(config-if)#switchport port-security violation {protect | restrict | shutdown }
Switch(config-if)#switchport port-security maximum value 字串4
上面这几天命令解释和前面静态讲到原因一样,不再说明。
Switch(config-if)#switchport port-security mac-address sticky
上面这一条命令就说明是配置为黏性可靠的MAC地址。
最后,说说企业中如何快速MAC地址与交换机端口绑定。在实际的运用中常用黏性可靠的MAC地址绑定,现在我们在一台2950EMI上绑定。
方法1:在CLI方式下配置
2950 (config)#int rang fa0/1 - 48
2950 (config-if-range)#switchport mode Access
2950 (config-if-range)#switchport port-security
2950 (config-if-range)#switchport port-security mac-address violation restrict
2950 (config-if-range)#switchport port-security mac-address sticky
这样交换机的48个端口都绑定了,注意:在实际运用中要求把连在交换机上的PC机都打开,这样才能学到MAC地址,并且要在学到MAC地址后保存配置文件,这样下次就不用再学习MAC地址了,然后用show port-security address查看绑定的端口,确认配置正确。
方法2:在WEB界面下配置,也就是CMS(集群管理单元)
我们通过在IE浏览器中输入交换机IP地址,就可以进入,然后在port—port security下可以选定交换机端口,在Status和Sticky MAC Address中选Enable或Disabled,Violation Action可以选Shutdown、Restrict、Protect中的一种,Maximum Address Count(1-132)可以填写这个范围的数值。
当然还有要求绑定IP地址和MAC地址的,这个就需要三层或以上的交换了,因为我们知道普通的交换机都是工作在第二层,也就是使数据链路层,是不可能绑定IP的。假如企业是星型的网络,中心交换机是带三层或以上功能的。我们就可以在上绑定,
Switch(config)#arp Ip地址 Mac地址 arpa