CISCO交换机中的IP和MAC地址绑定
在cisco交换机中为了防止ip被盗用或员工乱改ip,可以做以下措施,既ip与mac地址的绑定,和ip与交换机端口的绑定。
一、通过IP查端口
  先查MAC地址,再根据MAC地址查端口:
  bangonglou3#show arp | include 208.41   或者show mac-address-table   来查看整个端口的ip-mac表
  nternet   10.138.208.41            4    0006.1bde.3de9   ARPA    Vlan10
  bangonglou3#show mac-add | in 0006.1bde
  10     0006.1bde.3de9     DYNAMIC      Fa0/17
  bangonglou3#exit


二、ip与mac地址的绑定,这种绑定可以简单有效的防止ip被盗用,别人将ip改成了你绑定了mac地址的ip后,其网络不同,(tcp/udp协议不同,但netbios网络共项可以访问),具体做法:
     cisco(config)#arp 10.138.208.81 0000.e268.9980 ARPA
这样就将10.138.208.81 与mac:0000.e268.9980 ARPA绑定在一起了

三、ip与交换机端口的绑定,此种方法绑定后的端口只有此ip能用,改为别的ip后立即断网。有效的防止了乱改ip。

     cisco(config)#   interface FastEthernet0/17

     cisco(config-if)# ip access-group 6 in        

     cisco(config)#access-list 6 permit 10.138.208.81

这样就将交换机的FastEthernet0/17端口与ip:10.138.208.81绑定了。

============================================

    最常用的对端口安全的理解就是可根据MAC地址来做对网络流量的控制和管理,比如MAC地址与具体的端口绑定,限制具体端口通过的MAC地址的数量,或者在具体的端口不允许某些MAC地址的帧流量通过。


1.MAC地址与端口绑定,当发现主机的MAC地址与交换机上指定的MAC地址不同时,交换机相应的端口将down掉。当给端口指定MAC地址时,端口模式必须为access或者Trunk状态。

3550-1#conf t

3550-1(config)#int f0/1

3550-1(config-if)#switchport mode access /指定端口模式。

3550-1(config-if)#switchport port-security mac-address 00-90-F5-10-79-C1 /配置MAC地址。

3550-1(config-if)#switchport port-security maximum 1 /限制此端口允许通过的MAC地址数为1。

3550-1(config-if)#switchport port-security violation shutdown /当发现与上述配置不符时,端口down掉。

2.通过MAC地址来限制端口流量,此配置允许一TRUNK口最多通过100个MAC地址,超过100时,但来自新的主机的数据帧将丢失。

3550-1#conf t

3550-1(config)#int f0/1

3550-1(config-if)#switchport trunk encapsulation dot1q

3550-1(config-if)#switchport mode trunk /配置端口模式为TRUNK。

3550-1(config-if)#switchport port-security maximum 100 /允许此端口通过的最大MAC地址数目为100。

3550-1(config-if)#switchport port-security violation protect /当主机MAC地址数目超过100时,交换机继续工作,但来自新的主机的数据帧将丢失。

上面的配置根据MAC地址来允许流量,下面的配置则是根据MAC地址来拒绝流量。

1.此配置在Catalyst交换机中只能对单播流量进行过滤,对于多播流量则无效。

3550-1#conf t

3550-1(config)#mac-address-table static 00-90-F5-10-79-C1 vlan 2 drop /在相应的Vlan丢弃流量。

3550-1#conf t

3550-1(config)#mac-address-table static 00-90-F5-10-79-C1 vlan 2 int f0/1 /在相应的接口丢弃流量。


============================================

    在网络安全越来越重要的今天,高校和企业对于局域网的安全控制也越来越严格,普遍采用的做法之一就是IP地址、网卡的MAC地址与交换机端口绑定,但是MAC与交换机端口快速绑定的具体实现的原理和步骤却少有文章。
   

    我们通常说的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


上面这几天命令解释和前面静态讲到原因一样,不再说明。
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