一、 交换机概述
交换机可看成是一台特殊的计算机,同样有CPU、存储介质和操作系统,只是与计算机的稍有不同。作为数据交换设备,交换机主要用于在第二、三层甚至更高层进行快速的数据交换。
下图是华为型号为S2700-9TP-SI-AC的8口百兆二层网管企业级交换机的前面板图,其他型号的交换机的外观可能略有不同。

交换机由硬件和软件两部分组成。硬件主要包含CPU、端口、存储介质,软件主要包含操作系统(如IOS,Internet Operating System,互联网操作系统)和配置文件。
CPU负责执行交换机操作系统的命令和各种用户输入的命令。
局域网交换机的端口主要有:
以太网端口(Ethernet,10Mbit/s);
快速以太网端口(FastEthernet,100 Mbit/s);
吉比特以太网端口即千兆位以太网端口(GigabitEthernet,1Gbit/s);
万兆位以太网端口(TenGigabitEthernet,10Gbit/s);
控制台端口(Console),可通过Console线与终端连接。初始配置交换机必须通过控制端口。
二、 交换机作用
交换机的主要功能包括物理编址、网络拓扑结构、错误校验、帧序列、流控、支持VLAN、支持链路汇聚,甚至有的还具有防火墙的功能。
作为二层设备的交换机可以隔离冲突域,将冲突域的范围缩小,交换机的每个端口就是一个冲突域。同一个冲突域中的每一个节点都能收到所有被发送的帧,也就是说同一时间内只有一台设备发送信息。冲突域中的每一个节点在发送数据之前首选要侦听网络是否空闲,如果空闲就发送数据。否则,继续侦听直到网络空闲。如果两个站点同时检测到介质空闲并同时发送一帧数据,则会导致数据帧的冲突,双方的数据帧均被破坏。这时,两个站点将采用"二进制指数退避"的方法各自等待一段随机的时间再侦听、发送。如下图所示,一个交换机直连三台PC和一台集线器,集线器下直连有2台PC。由前可知,交换机能缩小冲突域,所以一个交换机端口就是一个冲突域。下图中有3台PC和1台集线器直连到交换机上,所以,这里的冲突域有4个,同时还有一个广播域。

交换机没有过滤广播通信的功能。如果交换机收到一个广播数据包后,它会向其所有的端口转发此广播数据包。因此,交换机和其所有接口所连接的主机共同构成了一个广播域。第三层设备才能隔离广播域,比如路由器,路由器的每一个端口就是一个广播域。
三、 交换机工作原理
交换机收到数据后,首先检查它的MAC地址,然后把数据从目的主机所对应的端口转发出去。交换机实现这一步的前提是交换机内部有一个MAC地址表,记录了网络中所有MAC地址与交换机端口的对应信息。某一数据帧需要转发时,交换机在MAC地址表中查找数据帧的MAC地址所对应的端口,找到后从这个端口转发出去。二层交换机的工作原理简单来说,可分为以下几个步骤:
1.交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。
2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。
3.如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)。
4.广播帧和组播帧向所有的端口转发。
四、交换机分类
华为1+X网络系统建设与运维初级资料--认识交换机
五、命令模式特点
在交换机和路由器中输入的命令具有以下特点:
●命令不区分大小写。
●命令可以使用简写。 命令中的每个单词只需要输入前几个字母。如:configureterminal命令可简写为conf t。
●用 Tab 键可补全命令。如:输入conf(Tab) 命令可自动补全为命令configure 。
●可以调出历史来简化命令的输入。 历史是指曾经输入过的命令,可以用“↑”键和“↓”键翻出历史命令再回车即可执行此命令。(注:只能翻出当前提示符下曾经输入过的命令)
六、命令模式说明
交换机和路由器的命令是按模式分组,而各种模式可通过命令提示符进行区分,命令提示符的格式是:
提示符名 模式
此处的提示符名是指设备的名字,交换机的默认名字为“Switch”,模式表示当前所位于的模式,如:“>”代表用户模式,“#”代表特权模式。交换机常见的命令模式如下表所示:
交换机和路由器的模式大体可分为四层:用户模式→特权模式→全局配置模式→其它配置模式。交换机和路由器的的命令模式之间的关系如下表所示。从下一级模式退回至上一级时可通过exit命令实现,从其他模式直接退回至特权模式时可通过执行end命令实现。
七、端口安全概念
交换机的端口安全一般分为两种:
1. 限制交换机端口的最大MAC地址数目
正常情况下,MAC地址表存储了交换机端口下连接的计算机的真实MAC地址。攻击者可通过MAC flooding,使目标网络中的交换机不断泛洪大量不同源MAC地址(即虚假的MAC地址)的数据包,导致交换机内存不足,MAC地址表不能存放真实的客户机MAC地址和物理端口对应关系,导致客户机不能正常上网,网络性能大幅下降。思科的设备可通过开启Port Security功能防范这种攻击。
2. 交换机端口进行MAC地址绑定
正常网络中,同一个广播域的设备接受到客户机的ARP广播后,查看此广播包中请求的IP地址是不是自己,如果不是,则不做回应。但是网络中的攻击者会在收到ARP请求后,伪造被请求的IP地址对应的MAC地址,并将这个虚假的MAC地址发送给客户机。客户机与这个虚假的MAC地址进行通信,则找不到对应的计算机。这种情况可以通过绑定计算机的MAC地址与交换机的端口解决,这样,只有地址为绑定MAC地址的计算机才能成功连接至该交换机端口。如果同时将安全MAC地址的数量限制为一个,则该计算机将获得端口的全部带宽。
八、端口安全命令
交换机端口安全常用配置命令如下所示:
(1)开启端口安全
Switch(config-if)#switchport port-security
(2)端口绑定MAC地址
Switch(config-if)#switchport port-security mac-address <MAC地址>
(3)端口允许通过的MAC地址的最大数目
Switch(config-if)#switchport port-security maximum ?
<1-132> Maximum addresses
一个端口允许通过1-132个MAC地址。
(4)端口发生安全违规时的措施
Switch(config-if)#switchport port-security violation {restrict|shutdown|protect}
当一个端口已经达到了允许通过的MAC地址的最大数目时,此时再有一个MAC地址要通过此端口连接,就发生了安全违规。(4)中定义了发生安全违规的三个命令参数:
restrict(限制):当端口已经达到了允许通过的MAC地址的最大数目时,此时如果有新的计算机想要连接,数据包将会被丢弃,同时会得到安全违规的通知。
shutdown(关闭):当端口已经达到了允许通过的MAC地址的最大数目时,此时如果有新的计算机想要连接,该接口将会关闭,导致原已连接的计算机和新连接的计算机都不能进行通信,需要将此接口用命令“no shutdown”打开。
protect(保护):当端口已经达到了允许通过的MAC地址的最大数目时,此时如果有新的计算机想要连接,将不能接入,但是不会影响原已连接的计算机,同时不会得到安全违规的通知。
(5)显示交换机指定端口的端口安全设置。
Switch#show port-security
九、拓展——MAC地址洪泛攻击
网络安全问题,已经越来越引起大家的重视。其实仔细从OSI 7层模型(图1)上我们可以很容易地发现,要让你的网络出现问题除了在物理层动手脚(比如剪线),那就是在2层上去动作了。2层设备遭到了攻击,不管你的装了多强的病毒防火墙软件,都是无法防范。
图1:

那么针对2层设备(交换机)的攻击有哪些形式了?又如何去防范?首当其冲的攻击方式就是MAC地址泛洪攻击。
(1)二层交换机是基于MAC地址去转发数据帧的。
(2)转发过程中依靠对CAM表的查询来确定正确的转发接口。
(3)一旦在查询过程中无法找到相关目的MAC对应的条目,此数据帧将作为广播帧来处理。
(4)CAM表的容量有限,只能储存不多的条目,当CAM表记录的MAC地址达到上限后,新的条目将不会添加到CAM表中。(CAM表,就是指二层交换机上运行的Cisco IOS在内存中维护的一张表,CAM表是交换机在二层转发数据要查找的表,表中有MAC地址,对应的端口号,端口所属的VLAN。)
基于以上原理,我们会发现一个非常有趣的现象。某台PC不断发送去往未知目的地的数据帧,且每个包的源MAC地址都不同,当这样的数据包发送的速度足够快之后,快到在刷新时间内将交换机的CAM表迅速填满。CAM表被这些伪造的MAC地址占据,真实的MAC地址条目却无法进入CAM表。那么任何一个经过交换机的正常单播数据帧都会以广播帧的形式来处理。如下图所示



解决方法:限制端口的mac地址数
十、交换机的基本配置管理
任务:访问到交换机后,对交换机进行基本的配置,主要包括交换机的命名、远程访问管理交换机、特权密码的配置、基本接口的配置等。
拓扑图:计算机首先通过Console线连接到二层交换机进行访问,再通过直通双绞线连接计算机的网卡和交换机的FastEthernet 0/24进行远程管理访问。
(1)设置交换机的特权模式密码
Switch>en //进入特权模式
Switch#conf t //进入全局配置模式
Switch(config)#enable password wangluo //设置普通密码wangluo
Switch(config)#enable secret wangluo123 //设置普通密码wangluo123(密文)
(2)设置主机名
Switch(config)#hostname SWA //设置交换机的主机名为SWA
SWA(config)#
(3)设置远程管理telnet登录
Switch(config)#line vty 0 4 //同时允许5个虚拟终端登录进行配置
Switch(config-line)#password admin //设置登录密码为admin
Switch(config-line)#login //开启登录验证
Switch(config-line)#exit
Switch(config)#interface vlan 1
Switch(config-if)#ip address 192.168.10.1 255.255.255.0 //配置IP地址
Switch(config-if)#no shutdown
Switch(config-if)#
%LINK-5-CHANGED: Interface Vlan1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to up
Switch(config-if)#
上述配置在vlan接口设置了管理地址,位于vlan1上的计算机可以通过改地址telnet远程登录交换机进行访问管理。交换机中默认存在vlan1,当交换机端口没有进行vlan划分时,计算机连接交换机后,默认位于vlan1。
1、给登录计算机设置的IP地址
C:\>ipconfig
FastEthernet0 Connection:(default port)
Connection-specific DNS Suffix..:
Link-local IPv6 Address.........: FE80::200:CFF:FE72:9DC9
IPv6 Address....................: ::
IPv4 Address....................: 192.168.10.10
Subnet Mask.....................: 255.255.255.0
Default Gateway.................: ::
0.0.0.0
2、远程telnet登录交换机。
图中,password处均输入之前在交换机上已配置的密码,只是输入的密码不会以任何形式显示出来。
C:\>telnet 192.168.10.1
Trying 192.168.10.1 ...Open
User Access Verification
Password:
Switch>en
Password:
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#
3、接口基本配置
Switch(config)#interface f0/1
Switch(config-if)#duplex ? //接口模式
auto Enable AUTO duplex configuration //自动
full Force full duplex operation //全双工
half Force half-duplex operation //半双工
Switch(config-if)#speed ? //接口速率
10 Force 10 Mbps operation //自适应
100 Force 100 Mbps operation //10M
auto Enable AUTO speed configuration //100M
4、查看交换机各项信息
Switch#show version //查看交换机的版本信息
Switch#show mac-address-table //查看交换机的MAC地址
Switch#show running-config //查看当前正在运行的配置
Switch#show startup-config //查看保存在NVRAM中的配置
5、保存配置命令
Switch#copy running-config startup-config //保存配置在startup-config文件
Switch#write //也可以用write命令直接保存
十一、端口安全配置
任务
网络管理员在局域网管理中,需要识别非法用户的接入,避免ARP病毒利用ARP协议进行欺骗等网络问题,对二层交换机端口绑定MAC地址。
方法1 :端口静态绑定MAC地址
方法2 :端口动态绑定MAC地址
拓扑图
1、端口静态绑定MAC实训文档
(1)交换机SWA端口安全配置
Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interfacefastEthernet 0/1
Switch(config-if)#switchport mode access //交换机设置成access模式
Switch(config-if)#switchport port-security //开启交换机端口安全
Switch(config-if)#switchport port-security maximum 1 //该端口下只允许一个设备接入,即MAC地址的最大数目为1,默认就为1
Switch(config-if)#switchport port-security violation restrict //如果超过端口限制的maximum数值,就不允许接入
Switch(config-if)#switchport port-security mac-address 0002.1613.3ED0 //绑定MAC地址为0002.1613.3ED0
Switch(config-if)#exit
Switch(config)#interface fastEthernet 0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport port-security
Switch(config-if)#switchport port-security maximum 1
Switch(config-if)#switchport port-security violation restrict
Switch(config-if)#switchport port-security mac-address 00D0.BAC8.5DE5
Switch(config-if)#exit
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 1
Switch(config-if)#switchport port-security violation restrict
Switch(config-if)#switchport port-security mac-address 00E0.F903.5B58
Switch(config-if)#exit
在SWA上使用show mac address-table命令查看MAC地址表,可以看到f0/1,f0/2,f0/3端口分别绑定了PC0,PC1,PC2的地址,绑定地址的类型(Type)都是静态的(STATIC)
Switch#show mac ad
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0002.1613.3ed0 STATIC Fa0/1
1 00d0.bac8.5de5 STATIC Fa0/2
1 00e0.f903.5b58 STATIC Fa0/3
在交换机上显示端口Fa0/1的端口安全配置
Switch#show port-security interface fastEthernet 0/1
Port Security : Enabled
Port Status : Secure-up //启动了端口安全
Violation Mode : Restrict //端口发生安全违规的措施
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 1 //此端口允许的安全MAC地址的最大数值
Total MAC Addresses : 1 //此端口现有的安全MAC地址的数值
Configured MAC Addresses : 1 //手工静态配置的安全MAC地址
Sticky MAC Addresses : 0 //sticky的安全地址
Last Source Address:Vlan : 0060.2FA6.E3C1:1 //最近的一个安全地址+vlan
Security Violation Count : 36 //此端口已发生违规的次数
2、端口静态绑定MAC实训文档
SWA1
Switch(config)#interface range fastEthernet 0/1-24
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport port-security
Switch(config-if-range)#switchport port-security mac-address sticky
Switch(config-if-range)#exit
在PC0和PC1发生通信后,查看交换机的当前运行配置文件
Switch#show run
Building configuration...
Current configuration : 3504 bytes
!
version 15.0
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Switch
!
!
!
!
!
!
spanning-tree mode pvst
spanning-tree extend system-id
!
interface FastEthernet0/1
switchport mode access
switchport port-security
switchport port-security mac-address sticky
switchport port-security mac-address sticky 000C.CFEB.B39C
!
interface FastEthernet0/2
switchport mode access
switchport port-security
switchport port-security mac-address sticky
switchport port-security mac-address sticky 000A.F36A.7972
!
interface FastEthernet0/3
switchport mode access
switchport port-security
switchport port-security mac-address sticky
...
查看交换机中MAC地址表
Switch#show mac address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 000a.f36a.7972 STATIC Fa0/2
1 000c.cfeb.b39c STATIC Fa0/1
可以看待Fa0/1端口与Fa0/3端口已有绑定的MAC地址,快速的实现了将交换机端口与MAC地址绑定。
十二、交换机IOS的备份与升级
任务
网络管理员在局域网管理中,通过TFTP进行交换机IOS的备份与升级。
拓扑图
1、交换机与TFTP服务器连通
Switch(config)#interface vlan 1
Switch(config-if)#ip address 192.168.0.1 255.255.255.0
2、IOS备份
Switch#show flash: //查看IOS的文件名及相关信息
Directory of flash:/
1 -rw- 4670455 <no date> 2960-lanbasek9-mz.150-2.SE4.bin
64016384 bytes total (59345929 bytes free)
Switch#copy flash: tftp //将flash中的IOS文件备份到TFTP服务器
Source filename []? 2960-lanbasek9-mz.150-2.SE4.bin //交换机需要备份的IOS文件名
Address or name of remote host []? 192.168.0.5 //TFTP服务器的IP地址
Destination filename [2960-lanbasek9-mz.150-2.SE4.bin]? //保存在TFTP上的IOS文件名,如果用原件名,直接“回车”就行
Writing 2960-lanbasek9-mz.150-2.SE4.bin...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 4670455 bytes]
4670455 bytes copied in 0.032 secs (11733990 bytes/sec)
3、IOS升级
Switch#copy tftp: flash: //从TFTP服务器中复制IOS文件
Address or name of remote host []? 192.168.0.5 //TFTP服务器地址
Source filename []? c2960-lanbase-mz.122-25.FX.bin //TFTP中的IOS文件名
Destination filename [c2960-lanbase-mz.122-25.FX.bin]? //“回车”确认
Accessing tftp://192.168.0.5/c2960-lanbase-mz.122-25.FX.bin...
Loading c2960-lanbase-mz.122-25.FX.bin from 192.168.0.5: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 4414921 bytes]
4414921 bytes copied in 0.031 secs (3869474 bytes/sec)
Switch#
IOS(Internetwork Operation System)是一个为网际互连优化的复杂的操作系统,是一个与硬件分离的软件体系结构,随网络技术的不断发展,可动态地升级以适应不断变化的技术。IOS类似于计算机的操作系统,是交换机和路由器的灵魂,所有的配置都是通过IOS来实现的。Cisco的IOS使用命令行界面(CommandLine Interface,CLI)来输入配置命令。