基于端口的流控制 本章描述如何在交换机上配置基于端口的流控制特性。 CLI有关本节引用的命令的详细使用信息及说明,请参照CLI命令集 本章由以下一些部分组成: 风暴控制 Port Blocking Protected Port 端口安全 风暴控制 本节包括以下内容: 概述 配置风暴控制 查看风暴控制使能状态 概述 当一个端口上接收到过量的广播、未知名多播或未知名单播包时,一个数据包的风暴就会产生,这会导致网络变慢和报文传输超时几率大大增加。协议栈的执行错误或对网络的错误配置都有可能导致风暴的产生。 我们可以分别针对广播、未知名多播和未知名单播数据流进行风暴控制。S21交换机的千兆接口支持打开/关闭风暴控制,百兆接口不支持。打开端口对应风暴控制开关,则该端口对应输入报文的速度为12288帧/秒。百兆接口缺省广播和未知名单播的速度,为12288帧/秒。 配置风暴控制 缺省情况下,针对广播、未知名多播和未知名单播的风暴控制功能均被关闭。 你可以针对千兆接口打开其各种数据流(广播、未知名多播和未知名单播)的风暴控制开关。 从模式开始,你可以通过以下步骤来配置风暴控制功能: 步骤2 命令 interface interface-id 含义 进入全局配置模式。 进入接口配置模式。 打开对广播风暴的控制功能 打开对未知名多播风暴的控制功能 打开对未知名单播风暴的控制功能 回到模式。 验证你的配置。 保存配置(可选)。 步骤1 configure terminal 步骤3 storm-control broadcast 步骤4 storm-control multicast 步骤5 步骤7 storm-control unicast show storm-control [interface-id] 步骤6 end 步骤8 copy running-config startup-config 你可以在接口配置模式下通过命令no storm-control broadcast ,no storm-control multicast , no storm-control unicast 来关闭接口相应的风暴控制功能。 下面的例子说明了打开物理端口GigabitEthernet 1/1 上的未知名多播风暴控制功能, 并验证你的配置。 Switch# configure terminal Switch(config)# interface GigabitEthernet 1/1 Switch(config-if)# storm-control multicast Switch(config-if)# end 查看风暴控制使能状态 在模式下,你可以通过下面的命令来查看接口的风暴控制使能状态: 步骤1 命令 show storm-control [interface-id] 含义 显示风暴控制信息。 下面的例子为显示接口Gi1/1的风暴控制功能的使能状态: Switch# show storm-control GigabitEthernet 1/1 Interface Broadcast Control Multicast Control Unicast Control -------------------- ----------------- ----------------- -------------- Gi1/1 Disabled Enabled Disabled 你也可以一次查看所有接口的风暴控制功能的使能状态: Switch# show storm-control Interface Broadcast Control Multicast Control Unicast Control -------------------- ----------------- ----------------- --------------- Fa0/1 Disabled Disabled Disabled Fa0/2 Disabled Disabled Disabled Fa0/3 Disabled Disabled Disabled Fa0/4 Disabled Disabled Disabled Fa0/5 Disabled Disabled Disabled Fa0/6 Disabled Disabled Disabled . . . . . . . . . . . . Gi1/1 Disabled Enabled Disabled Port Blocking 本节包括以下内容: 概述 配置Port Blocking 查看Port Blocking状态 概述 缺省情况下,交换机任意端口会将接收到的广播报文、未知名多播报文、未知名单播报文转发到所有和该端口在同一个VLAN的其它所有端口,这样造成其它端口负担的增加。通过Port Blocking 功能,可以配置一个接口拒绝或者接收其它端口转发的广播/未知名多播/未知名单播报文,您可以设置接口的Port Blocking功能,有针对性对广播/未知名多播/未知名单播报文中任意一种或者多种进行屏蔽,拒绝/接收其它端口转发的任意一种或多种报文。 配置Port Blocking 缺省情况下,所有端口都可以接收广播/未知名多播/未知名单播报文。 从模式开始,你可以通过以下步骤来配置Port Blocking功能: 步骤2 命令 interface interface-id 含义 进入全局配置模式。 进入接口配置模式。 步骤1 configure terminal 步骤3 步骤4 步骤5 步骤7 switchport block broadcast switchport block multicast switchport block unicast show interfaces [interface-id] 打开对广播报文的屏蔽功能 打开对未知名多播报文的屏蔽功能 打开对未知名单播报文的屏蔽功能 回到模式。 验证你的配置。 保存配置(可选)。 步骤6 end 步骤8 copy running-config startup-config 你可以在接口配置模式下通过命令no switch block {broadcast|multicast|unicast} 来关闭接口相应的Port Blocking功能。 下面的例子说明了打开物理端口FastEthernet 0/1 上对广播报文的屏蔽功能, 并验证您的配置。 Switch# configure terminal Switch(config)# interface FastEthernet 0/1 Switch(config-if)#switch block broadcast Switch(config-if)# end Switch(config)# show interfaces FastEthernet 0/1 查看Port Blocking状态 在模式下,你可以通过下面的命令来查看接口的Port Blocking状态: 步骤1 命令 show interfaces [interface-id] 含义 显示Port Blocking状态 下面的例子为显示接口 Fa 0/1的Port Blocking状态: Switch# show interfaces FastEthernet 0/1 Interface : FastEthernet100BaseTX 0/1 ... Broadcast blocked: enabled Unknown multicast blocked: enabled Unknown unicast blocked: enabled ... Protected Port 本节包括如下内容: 概述 配置Protected Port 概述 有些应用环境下,要求一台交换机上的有些端口之间不能互相通讯。在这种环境下,这些端口之间的通讯,不管是单址帧,还是广播帧,以及多播帧,都只有通过三层设备进行通讯。在S2126G,S2150G交换机上,您可以通过将某些端口设置为保护口(Protected Port)来达到目的。 当您将某些端口设为保护口之后,保护口之间互相无法通讯,保护口与非保护口之间可以正常通讯。 当您将两个保护口设为一个SPAN端口对时,SPAN的源端口发送或接收的帧将按照SPAN的设置发到SPAN目的端口。因此您最好不要将SPAN目的端口设为保护口(这样您还可以节约系统资源)。 对于S2150G交换机,它的端口区间分为两个部分,端口1-24及模块1为区间A,端口25-48及模块2为区间B。不同区间设置的保护口只对本区间有效,对另一个区间无效。换言之,如果您将区间A的某一个端口设为保护口A,同时将区间B的某一个端口设为保护口B,则保护口A与保护口B之间还是可以正常通讯,对保护口A来讲,保护口B还是非保护口,就像它们是在两台交换机上的端口一样,反之亦然。因此您如果要在这两个区间都设置Protected Port,最好将它们划分至两个不同的VLAN。 S2126G,S2150G交换机支持将Aggregated Port设置为保护口,当您将一个Aggregated Port设置为保护口时,Aggregated Port的所有成员口都被设置为保护口。 1. 对于需要保证用户信息安全的环境,您可以通过将用户端口设置为Access Port,并使能该Access Port的Protected Port功能,但是这些用户有责任对自己的信息安全作出保证,即用户要保证不发送tagged帧,交换机保证发送到Access Port的所有帧均为untagged帧。如果一个Access Port收到tagged帧,在S2126G,S2150G交换机上将按照正常转发。对于一个使能了Protected Port功能的Access Port,如果收到tagged未知名单址帧、未知名多播帧和广播帧,本交换机将按照普通端口的转发规则转发给所有其它端口。 2. 您最好不要将一个Trunk Port设置为Protected Port,对于使能了Protected Port功能的Trunk Port,交换机对该端口收到的单址帧可以保证不转发给其它Protected Port。但是对于该端口收到的tagged未知名多播帧,未知名单址帧和广播帧,交换机将按照普通端口的转发规则转发给所有其它端口。 一个UNIT (UNIT(单元)定义详见堆叠管理)中,只要有一个端口是PVLAN的成员口,那么所有的端口都不能再设置成为保护口;相同的, 只要有一个端口设置成为了保护口,那么所有的端口都不能再成为PVLAN的成员口了。 配置Protected Port 进入配置模式,您可以通过如下步骤将一个端口设置为保护口: 步骤2 命令 interface interface-id 含义 进入全局配置模式。 指明一个接口,并进入接口 配置模式。 将该接口设置为保护口 退回到模式。 验证配置 保存配置。 步骤1 configure terminal 步骤3 switchport protected 步骤4 end 步骤5 show interfaces switchport 步骤6 copy running-config startup-config 您可以通过命令 no switchport protected接口配置命令将一个端口重新设置为非保护口。 保护口和其它策略管理模块共享硬件资源,所以相互之间会存在影响。详细参见《配置安全ACLs》章节的“在S21系列交换机上配置ACLs的注意事项”部分的“ACL与系统中其它的应用的关系”的描述。 端口安全 本节包括以下内容: 概述 配置端口安全 查看端口安全信息 端口安全和其它应用的关系 概述 利用端口安全这个特性,你可以通过允许访问交换机上某个端口的MAC地址以及IP(可选)来实现严格控制对该端口的输入。当你为安全端口(打开了端口安全功能的端口)配置了一些安全地址后,则除了源地址为这些安全地址的包外,这个端口将不转发其它任何报。此外,你还可以一个端口上能包含的安全地址最大个数,如果你将最大个数设置为1,并且为该端口配置一个安全地址,则连接到这个口的工作站(其地址为配置的安全M地址)将独享该端口的全部带宽。 为了增强安全性,你可以将MAC地址和IP地址绑定起来作为安全地址。当然你也可以只指定MAC地址而不绑定IP地址。 如果一个端口被配置为一个安全端口,当其安全地址的数目已经达到允许的最大个数后,如果该端口收到一个源地址不属于端口上的安全地址的包时,一个安全违例将产生。当安全违例将产生时,你可以选择多种方式来处理违例,比如丢弃接收到的报,发送违例通知或关闭相应端口等。 当你设置了安全端口上安全地址的最大个数后,你可以使用下面几种方式加满端口上的安全地址: 你可以使用接口配置模式下的命令switchport port-security mac-address mac-address[ip-address ip-address]来手工配置端口的所有安全地址。 你也可以让该端口自动学习地址,这些自动学习到的地址将变成该端口上的安全地址,直到达到最大个数。需要注意的是,自动学习的安全地址均不会绑定IP地址,如果在一个端口上,你已经配置了绑定IP地址的安全地址,则将不能再通过自动学习来增加安全地址。 你也可以手工配置一部分安全地址,剩下的部分让交换机自己学习。 当违例产生时,你可以设置下面几种针对违例的处理模式: protect:当安全地址个数满后,安全端口将丢弃未知名地址(不是该端口的安全地址中的任何一个) 的包 restrict:当违例产生时,将发送一个Trap通知 shutdown:当违例产生时,将关闭端口并发送一个Trap通知。 配置端口安全 我们通过以下几个章节描述如何配置端口安全 端口安全的缺省配置 配置端口安全的 配置安全端口及违例处理方式 配置安全端口上的安全地址 配置安全地址的老化时间 配置安全地址的ARP报文检查 端口安全的缺省配置 下表显示的端口安全的缺省配置: 内容 端口安全开关 安全地址 违例处理方式 缺省设置 所有端口均关闭端口安全功能 无 保护(protect) 最大安全地址个数 128 配置端口安全的 配置端口安全时有如下一些: z 一个安全端口不能是一个aggregate port。 z 一个安全端口不能是SPAN的目的端口。 z 一个安全端口只能是一个access port。 一个静态模块上的百兆端口(FastEthernet,固定在交换机上)上最多支持20个绑定IP地址的安全地址(包括IP地址+MAC、单IP地址),一个动态模块(可插拔模块)上的端口则最多支持到110个。另外,由于这种同时绑定IP的安全地址占用的硬件资源与ACLs、802.1x认证功能所占用的系统硬件资源共享,因此当您在某一个端口上应用了ACLs或者您使能了802.1x认证功能,则相应地该端口上所能设置的申明IP地址的安全地址个数将会减少。 使能了802.1x认证功能的端口不能使能端口安全,使能了端口安全的端口不能使能802.1x。 安全地址有三种:单MAC、单IP、IP+MAC,建议一个安全端口上的安全地址的格式保持一致,如果同时设置,只有一种生效。三种地址的优先级顺序由低到高为: 单MAC 单IP / MAC + IP (谁后设置谁生效) 单MAC的安全地址优先级比绑定IP的安全地址优先级低,当有绑定IP的安全地址时,单MAC的都不生效。单IP和MAC+IP则是谁后设置(优先级取决于两种类型的安全地址第一条安全地址的顺序)谁生效。所以建议您不要同时设置两种IP安全地址,因为两种IP安全地址不能同时生效,而且浪费硬件的表项资源。 由于绑定IP安全地址和其它应用如ACL共享硬件过滤域表项和模板,如果其它应用将硬件表项资源耗尽,则绑定IP的安全地址无法设置成功。 配置安全端口及违例处理方式 从模式开始,你可以通过以下步骤来配置一个安全端口和违例处理方式: 命令 含义 进入接口配置模式。 设置接口为access模式(如果确定接口已经处于access模式,则此步骤可以省略)。 打开该接口的端口安全功能 设置接口上安全地址的最大个数,范围是1-128,缺省值为128。 步骤1 Configure terminal 进入全局配置模式。 步骤2 Interface interface-id 步骤3 switchport mode access 步骤4 switchport port-security 步骤5 switchport port-security maximum value 步骤6 switchport port-security violation{protect | restrict | shutdown} 设置处理违例的方式: protect:保护端口,当安全地址个数满后,安全端口将丢弃未知名地址(不是该端口的安全地restrict:当违例产生时,将发送一个Trap通知 shutdown:当违例产生时,将关闭端口并发送一个Trap通知。当端口因为违例而被关闭后,recovery 来将接口从错误状态中恢复过来。 步骤7 End 回到模式。 步骤8 show port-security 验证你的配置。 interface[interface-id] 步骤9 copy running-config 保存配置(可选)。 startup-config 在接口配置模式下,你可以使用命令no switchport port-security来关闭一个接口的端口安全功能。使用命令no switchport port-security maximum来恢复为缺省个数。使用命令no switchport port-security violation来将违例处理置为缺省模式。 下面的例子说明了如何使能接口fastethernet 0/3上的端口安全功能,设置最大地址个数为8,设置违例方式为protect Switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)# interface fastethernet 0/3 Switch(config-if)# switchport mode access Switch(config-if)# switchport port-security Switch(config-if)# switchport port-security maximum 8 Switch(config-if)# switchport port-security violation protect Switch(config-if)# end 配置安全端口上的安全地址 从模式开始,你可以通过以下步骤来手工配置一个安全端口上的安全地址: 步骤2 命令 interface interface-id 含义 进入全局配置模式。 进入接口配置模式。 手工配置接口上的安全地址。 mac-address(可选): 为这个安全地址绑定的Mac地址。 ip-address(可选): 为这个安全地址绑定的IP地址。 步骤4 end 步骤5 show port-security address 步骤6 copy running-config startup-config 回到模式。 验证你的配置。 保存配置(可选)。 步骤1 configure terminal 步骤3 switchport port-security [mac-address mac-address] [ip-address ip-address] 在接口配置模式下,你可以使用命令no switchport port-security [mac-address mac-address][ ip-address ip-address]来删除该接口的安全地址。 下面的例子说明了如何为接口fastethernet 0/3配置一个安全地址:00d0.f800.073c,并为其绑定一个IP地址:192.168.12.202。 Switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)# interface fastethernet 0/3 Switch(config-if)# switchport mode access Switch(config-if)# switchport port-security Switch(config-if)# switchport port-security mac-address 00d0.f800.073c ip-address 192.168.12.202 Switch(config-if)# end 配置安全地址的老化时间 你可以为一个接口上的所有安全地址配置老化时间。打开这个功能,你需要设置安全地址的最大个数,这样,你就可以让交换机自动的增加和删除接口上的安全地址。 从模式开始,你可以通过以下步骤来配置端口安全功能: 命令 含义 进入全局配置模式。 进入接口配置模式。 步骤1 configure terminal 步骤2 interface interface-id 步骤3 switchport port-security aging{static | time time } 步骤4 End 步骤5 show port-security interface [interface-id] static: 加上这个关键字,表示老化时间将同时应用于手工配置的安全地址和自动学习的地址,否则Time :表示这个端口上安全地址的老化时间,范围是0-1440,单位是分钟。如果你设置为0,则老回到模式。 验证你的配置。 保存配置(可选)。 步骤6 copy running-config startup-config 你可以在接口配置模式下使用命令no switchport port-security aging time来关闭一个接口的安全地址老化功能(老化时间为0),使用命令no switchport port-security aging static来使老化时间仅应用于动态学习到的安全地址。 下面的例子说明了如何配置一个接口fastethernet 0/3上的端口安全的老化时间,老化时间设置为8分钟,老化时间应用于静态配置的安全地址: Switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)# interface fastethernet 0/3 Switch(config-if)# switchport port-security aging time 8 Switch(config-if)# switchport port-security aging static Switch(config-if)# end 配置安全地址的ARP报文检查 缺省情况下,安全地址只会检查IP报文,有时管理员还需要检查ARP报文的合法性,那么可以通过全局配置模式下的port-security arp-check [cpu]来打开对ARP报文的检查,这个功能只在S2126/50G上支持,S2126S不支持。 从模式开始,你可以通过以下步骤来配置端口安全的ARP检查: 步骤2 命令 port-security arp-check [cpu] 含义 进入全局配置模式。 打开端口安全的ARP报文检查. 其中cpu是ARP Check的选项,检查送到交换机CPU的报文,打开该选项可能导致CPU负载提升。 您必须在打开了arp-check后,再打开cpu选项才生效。 回到模式。 验证你的配置。 步骤1 configure terminal 步骤3 End 步骤4 show port-security arp 步骤5 copy running-config startup-config 保存配置(可选)。 你可以在全局配置模式下使用命令no port-security arp-check[cpu]来关闭安全地址的ARP报文检查功能。 ARP报文检查的: 1. 打开端口安全地址的ARP报文检查会使所有端口的绑定IP的安全地址最大数目减少一半。 2. 打开端口安全地址的ARP报文检查对已经存在的安全地址不生效。如果你要使以前设置的安全地址生效,可以重新关闭、打开该端口的安全。 端口ARP报文检查使用了策略管理模块,和其它策略管理模块共享硬件资源。如果硬件资源不足时,可能出现部分安全地址ARP报文检查不生效的现象。 3. 当MAC+IP的安全地址表项比较多时,打开ARP check cpu,对CPU性能影响比较大, 会降低CPU效率。 ARP打开报文检查可以有效防止安全端口上欺骗ARP,防止非法信息点冒充网络关键 设备的IP(如服务器),造成网络通讯混乱。 查看端口安全信息 在模式开始,你可以通过下面的命令来查看端口安全的信息: 命令 含义 查看接口的端口安全配置信息。 步骤1 show port-security interface [interface-id] 查看安全地址信息。 步骤2 show port-security address 显示某个接口上的安全地址信息 步骤3 show port-security [interface-id] address 显示所有安全端口的统计信息,包括最大安全地址数,当前安全地址数以及违例处理方式等。步骤4 show port-security 下面的例子显示了接口fastethernet 0/3上的端口安全配置: Switch# show port-security interface fastethernet 0/3 Interface : Fa0/3 Port Security: Enabled Port status : down Violation mode:Shutdown Maximum MAC Addresses:8 Total MAC Addresses:0 Configured MAC Addresses:0 Aging time : 8 mins SecureStatic address aging : Enabled 下面的例子显示了系统中的所有安全地址 Switch# show port-security address Vlan Mac Address IP Address Type Port Remaining Age(mins) ---- --------------- --------------- ---------- -------- ------------------ 1 00d0.f800.073c 192.168.12.202 Configured Fa0/3 8 1 00d0.f800.3cc9 192.168.12.5 Configured Fa0/1 7 你也可以只显示一个接口上的安全地址,下面的例子显示了接口fastethernet 0/3 上的安全地址 Switch# show port-security address interface fastethernet 0/3 Vlan Mac Address IP Address Type Port Remaining Age(mins) ---- --------------- --------------- ---------- -------- ------------------ 1 00d0.f800.073c 192.168.12.202 Configured Fa0/3 8 下面的例子显示的是安全端口的统计信息 Switch#show port-security Secure Port MaxSecureAddr(count) CurrentAddr(count) Security Action ------------ -------------------- ------------------ ---------------- Fa0/1 128 1 Restrict Fa0/2 128 0 Restrict Fa0/3 8 1 Protect 端口安全和其它应用的关系 1.端口安全和ACL的关系 在同一个端口上不能同时应用绑定IP的安全地址和安全ACL,否则系统会提示“属性冲突” ,即在同一个端口上,这两种功能是互斥的,如果一个功能已经设置,则禁止另外一个功能设置。