简介:围绕Cisco交换机基本配置的doc格式研究方案,面向网络技术初学者、高校实验课学生和刚接触Catalyst系列设备的运维人员,解决从设备连接、基础参数设置到安全加固的常见问题。文档以实训为主线,依托Boson Netsim模拟软件和Windows 2000主机搭建实验环境,先详细介绍IOS命令行接口、用户模式与特权模式的差异、命令简写与帮助机制、不区分大小写等操作特性,再分步演示Console口和Telnet两种登录交换机的方式,并梳理hostname、interface、ip address、vlan、switchport等常用配置命令的使用场景,以及特权密码和远程登录密码的安全设置要点。整份资源共1个doc文件,压缩包约96KB,内容紧凑并配有实训目的、实验环境、理论基础和详细步骤,适合考前复习、课堂练习或作为实验报告参考。已有94人学习,尤其适合需要快速梳理配置流程、理解CLI操作逻辑的读者,可帮助建立从设备登录、基础配置到VLAN划分与远程访问控制的完整思路,也为实际设备维护提供排错参照。
1. Cisco交换机基本配置:从开机到能跑业务,一篇讲透
做网络这行,早晚要跟Cisco交换机打交道。很多读者手头有这份《Cisco 交换机的基本配置.doc》文档,但翻开之后发现命令是抄下来了,真要对着生产环境配一遍,还是不知道怎么下手——VLAN起不来、Trunk放通没效果、SSH死活连不上,这些都是最常见的新手翻车现场。这份文档的价值恰恰在于它把开局配置、VLAN划分、Trunk链路、三层SVI这些基础操作按顺序串起来了,不是零散的命令堆砌,而是一条完整的配置链路。本文不会复述文档原文,而是基于它覆盖的知识点,结合我在实际项目中踩过的坑,把每个配置步骤掰开揉碎讲清楚:这条命令是干什么的、参数怎么改、改错了会有什么现象、怎么排查。适合刚接手Cisco设备、或者从华为/H3C转过来的工程师,也适合准备网络方向认证、需要系统捋一遍基础命令的读者。
2. 开局配置与Console登录:七条命令建立远程管理基础
2.1 物理连接与终端参数:第一步错后面全错
拿到一台全新的Cisco交换机,第一步不是敲命令,而是先把Console线接对。Cisco设备随机附带的Console线通常是RJ-45转DB-9的蓝色扁平线,现在很多笔记本没有串口,需要配一条USB转Console线。连接时Console口在设备正面或背面,标注为CON/Console,别接到AUX口上,那个是辅助口,不能用来做首次配置。
终端仿真软件我常用SecureCRT和MobaXterm,前者老牌稳定,后者免费且内置SFTP,传配置文件方便。连接参数是固定的:波特率9600、数据位8、停止位1、无校验、无流控。这个参数如果不对,典型现象是屏幕出现乱码,或者敲回车没反应。还要注意一点,Cisco交换机的Console口是DTE接口,线缆直连即可,不需要交叉线。
# SecureCRT会话参数设置(菜单路径:Options -> Session Options -> Serial) # 连接类型: Serial # 端口: COM3(以设备管理器里看到的实际COM口为准) # 波特率: 9600 # 数据位: 8 # 停止位: 1 # 奇偶校验: None # 流控: None(一定要关掉RTS/CTS和XON/XOFF,否则输入会被吞字符)参数说明:流控这里是最容易忽略的选项,很多人在SecureCRT里连上后感觉敲命令像打字机漏墨,时有时无,十有八九就是流控没关。另外USB转Console线建议用FTDI芯片的,CH340芯片的线在部分Cisco设备上会出现连接不稳定,这是硬件兼容性问题,换线就好。
Console登录成功后,如果设备是全新的,会直接进入用户模式Switch>;如果是二手设备或别人配置过的,可能需要输入enable密码才能进入特权模式。这个阶段先不急着敲配置,把设备信息看清楚:show version看IOS版本和型号,show flash:看存储空间,确认设备状态正常再往下走。
2.2 全局基础参数配置:主机名、密码与远程管理准备
进入全局配置模式后,最先做的几件事是:配主机名、配enable加密密码、配console口密码、配vty远程登录密码。很多人图省事把密码直接写在配置里看明文,这在等保审计和甲方巡检时会被直接点名批评,所以必须用service password-encryption做全局加密。
Switch> enable Switch# configure terminal Switch(config)# hostname Core-SW01 # 设置主机名 Core-SW01(config)# service password-encryption # 对配置文件中明文密码做加密 Core-SW01(config)# enable secret Cisco@2024 # 进入特权模式的加密密码 Core-SW01(config)# line console 0 Core-SW01(config-line)# password Console@2024 # Console口登录密码 Core-SW01(config-line)# login Core-SW01(config-line)# exec-timeout 5 0 # 会话空闲5分钟自动断开 Core-SW01(config-line)# exit Core-SW01(config)# line vty 0 4 Core-SW01(config-line)# password Telnet@2024 # vty远程登录密码(临时) Core-SW01(config-line)# login Core-SW01(config-line)# transport input telnet # 先用telnet做临时管理,后续改SSH Core-SW01(config-line)# exit参数说明:enable secret和enable password是两种不同的命令,前者用MD5哈希存储,后者是明文或弱加密,生产环境必须用enable secret。line vty 0 4表示虚拟终端线路0到4,即同时允许5个远程会话,默认是0到4,如果想扩大容量可以写line vty 0 15。transport input这句容易被忽略,它限制这条vty线路允许什么协议接入,如果写成transport input none,远程怎么都连不上,这是个隐蔽坑。
注意exec-timeout 5 0这个参数,很多网络管理员为了省事不设,但安全审计时会查这个,而且从运维习惯上讲,交换机挂在机房里,一个没人看的Console会话敞着,谁路过都能敲两下,设个超时是基本职业素养。测试环境下可以设exec-timeout 0 0表示永不超时,但生产环境不建议。
2.3 管理IP与默认路由:没有它远程就是空中楼阁
交换机的管理IP和设备的业务接口IP是两回事。二层交换机没有接口IP的概念,管理IP是配在VLAN 1或专门的管理VLAN上的;三层交换机则可以在SVI(交换虚拟接口)上配IP。这里先给一个最基础的管理配置方法:
Core-SW01(config)# interface vlan 1 Core-SW01(config-if)# ip address 192.168.10.2 255.255.255.0 Core-SW01(config-if)# no shutdown Core-SW01(config-if)# exit Core-SW01(config)# ip default-gateway 192.168.10.1参数说明:ip default-gateway是给二层交换机用的默认网关命令,三层交换机用的是ip route 0.0.0.0 0.0.0.0 192.168.10.1,两者不要搞混。如果发现远程ping不通管理IP,先检查网关写没写、写的对不对,再用show ip interface brief看vlan接口状态。vlan接口的no shutdown经常被忘掉,接口administratively down的现象是ping不通,但show run里看配置好像又都在,这种玄学问题最消耗排查时间。
做完这一步,理论上从网络内任意一台机器就能telnet到这台交换机了。不过还是先把SSH配置放一放,因为现在配了telnet密码,但SSH需要额外的配置步骤,后面专门讲。
3. VLAN与二层接口实战:Access和Trunk的每个坑都踩一遍
3.1 VLAN的创建与命名:id从哪开始、名字怎么起
VLAN是二层网络最核心的抽象机制,它的本质是把一个物理交换机划分成多个逻辑广播域。常见误区是觉得VLAN就是随手建几个数字,但到了实际运维阶段,VLAN的编号和命名直接关系到故障定位效率。
Core-SW01(config)# vlan 10 Core-SW01(config-vlan)# name Office_Floor1 Core-SW01(config-vlan)# exit Core-SW01(config)# vlan 20 Core-SW01(config-vlan)# name Office_Floor2 Core-SW01(config-vlan)# exit Core-SW01(config)# vlan 99 Core-SW01(config-vlan)# name Management Core-SW01(config-vlan)# exit参数说明:VLAN 1是系统默认VLAN,默认存在且不可删除,通常是管理VLAN,但这在安全上是不推荐的——把管理流量和数据流量放在同一个VLAN里,等于把钥匙挂在门口。我一般的习惯是单独建一个VLAN 99做管理,把VLAN 1空出来或者干脆只承载基础设施流量。VLAN编号范围是1到4094,其中1002到1005是保留的,1006到4094是扩展VLAN,取决于IOS版本是否支持。
3.2 Access接口配置:接PC到底要不要设access模式
很多培训教材讲接入交换机时都会写switchport mode access,但实际项目中我发现一个反复出现的问题:默认模式下Cisco交换机的接口是dynamic auto状态,它会尝试和对面设备协商Trunk。如果对面是路由器或防火墙,DTP协商行为会很奇怪,出现接口状态up但流量不通的情况。
Core-SW01(config)# interface gigabitEthernet 0/1 Core-SW01(config-if)# switchport mode access Core-SW01(config-if)# switchport access vlan 10 Core-SW01(config-if)# description PC_Floor1_Room101 Core-SW01(config-if)# spanning-tree portfast Core-SW01(config-if)# no shutdown参数说明:switchport mode access是强制把这个接口设成二层access模式,不参与DTP协商。switchport access vlan 10把它划入VLAN 10。spanning-tree portfast这个参数很多人不理解,它的作用是让接终端的端口跳过STP的listenning和learning阶段,直接进入forwarding状态,避免接入的PC在开机时等30秒才能拿到IP。这对PC上网体验影响很大,但注意portfast只能配在接终端或服务器的接口上,如果配在接交换机的上联口上,一旦网络里有环路,STP还没来得及阻塞,广播风暴就已经把网络打瘫了,这是血泪教训。
3.3 Trunk接口配置:allowed vlan才是关键
Trunk是交换机之间或交换机与路由器之间传多VLAN流量的链路。配置本身不难,但最典型的故障是:配了trunk,结果对端交换机上看不到对应VLAN的流量,或者VLAN间ping不通。问题往往出在switchport trunk allowed vlan这里。
Core-SW01(config)# interface gigabitEthernet 0/24 Core-SW01(config-if)# switchport mode trunk Core-SW01(config-if)# switchport trunk native vlan 99 Core-SW01(config-if)# switchport trunk allowed vlan 10,20,99 Core-SW01(config-if)# no shutdown参数说明:switchport mode trunk启用Trunk模式。switchport trunk native vlan 99把Native VLAN从默认的VLAN 1改成VLAN 99,这样VLAN 1不承载用户流量,降低误配风险。switchport trunk allowed vlan这一句是必须的,默认状态下Cisco trunk是允许所有VLAN通过的(allowed vlan all),但实际生产环境里我们应该只放行需要的VLAN——否则一个VLAN里的广播流会通过trunk传到另一个交换机,占用带宽,还可能被不该看到的人看到。
这里有个隐蔽细节:native vlan不匹配是二层网络里最恶性的故障之一。如果A交换机的native vlan是VLAN 1,B交换机的native vlan是VLAN 99,两边trunk口状态都是up,但VLAN间流量就是不通,而且show interface trunk看状态还是正常的,不报错。这个坑我遇到过好几次,排查起来非常痛苦,因为链路层和物理层都显示正常。我的习惯是配完trunk后,用show interface trunk确认native vlan和allowed vlan列表跟预期一致再离开机房。
3.4 单臂路由还是三层交换机:别再纠结了
VLAN间路由有两种方案:单臂路由(Router on a Stick)和三层交换机SVI。单臂路由的原理是把一个路由器物理接口划分子接口,每个子接口对应一个VLAN的网关,子接口上配encapsulation dot1q封装。三层交换机的SVI则直接在交换机上创建VLAN接口并配IP做网关,转发效率高得多。
# 单臂路由配置(路由器侧) Router(config)# interface gigabitEthernet 0/0.10 Router(config-subif)# encapsulation dot1Q 10 Router(config-subif)# ip address 192.168.10.1 255.255.255.0 Router(config-subif)# exit Router(config)# interface gigabitEthernet 0/0.20 Router(config-subif)# encapsulation dot1Q 20 Router(config-subif)# ip address 192.168.20.1 255.255.255.0 Router(config-subif)# exit # 注意:物理接口上不要配IP,且不要加no shutdown——子接口默认继承物理口状态参数说明:encapsulation dot1Q 10告诉路由器这个子接口处理带VLAN 10 tag的帧。单臂路由的瓶颈在于所有VLAN间流量都挤在一条物理链路上,适合实验室或流量极小的场景。车间里有人用单臂路由跑生产环境,一到业务高峰期就卡成PPT,换了三层交换机做SVI后问题瞬间消失。所以我的建议是:能上三层交换机就别纠结单臂路由,除非你手头只有路由器,或者只是做个实验验证VLAN间路由原理。
4. 三层交换与VLAN间路由:SVI、网关和ACL的配置思路
4.1 SVI接口配置:三层交换的灵魂
三层交换机本质上是“二层交换芯片+三层路由引擎”的结合,SVI(Switch Virtual Interface)是它做VLAN间路由的核心手段。SVI可以理解为为一个VLAN创建的三层逻辑接口,它需要依赖对应的VLAN存在且至少有一个物理接口属于这个VLAN并且状态是up的。
Core-SW01(config)# ip routing Core-SW01(config)# interface vlan 10 Core-SW01(config-if)# ip address 192.168.10.254 255.255.255.0 Core-SW01(config-if)# no shutdown Core-SW01(config-if)# exit Core-SW01(config)# interface vlan 20 Core-SW01(config-if)# ip address 192.168.20.254 255.255.255.0 Core-SW01(config-if)# no shutdown Core-SW01(config-if)# exit参数说明:ip routing这一句是全局开启三层路由功能,在大多数Catalyst 3560/3750/4500系列上是默认开启的,部分型号需要手动打开。如果漏了这句,SVI配了IP也不生效,VLAN间流量还是走不通,现象是PC能ping通自己的网关,但ping不通另一个VLAN里的PC。
VLAN接口的IP地址就是对应VLAN内PC的默认网关。注意Cisco的设计里,网关通常是VLAN接口地址,而不是单臂路由里的子接口地址。在VLAN 10的PC上,网关要填192.168.10.254,和SVI地址一致。这里有个细节:如果VLAN 10里有PC手动配了别的网关,而且恰好那台设备也开了路由功能,会出现流量绕路甚至环路。在公司里还好,在实验室里经常有人在这种小环境里配出诡异的路由黑洞。
4.2 三层接口与路由引入:跨网段通信的最后一公里
除了VLAN间路由,三层交换机通常还要跟核心路由器或防火墙对接,这就要把交换机的直连网段宣告到上层路由协议里,或者写静态路由指向上游设备。
Core-SW01(config)# interface gigabitEthernet 0/24 Core-SW01(config-if)# no switchport # 把物理口从二层模式切换为三层模式 Core-SW01(config-if)# ip address 10.0.0.2 255.255.255.252 Core-SW01(config-if)# no shutdown Core-SW01(config-if)# exit Core-SW01(config)# ip route 0.0.0.0 0.0.0.0 10.0.0.1参数说明:no switchport是二层交换机不支持的命令,只有三层交换机才有这个能力,作用是把物理端口从二层的交换口变成三层的路由口,类似路由器上的接口。注意一旦执行no switchport,这个口上就不能配VLAN了。ip route 0.0.0.0 0.0.0.0 10.0.0.1是默认路由,指向防火墙或核心路由器。如果上层还有别的网段要回指,还要在上层设备写回程路由指向Core-SW01的10.0.0.2地址。
常见问题场景:VLAN间能通了,但PC访问外网不通。优先查三层交换机有没有默认路由,以及上层设备有没有回程路由指到这台交换机。这两个问题一个漏了路由、一个漏了回程,现象都是不通,但排查路径相差很远。
4.3 ACL基础:让某几台PC能访问、其他PC不能访问
ACL是网络工程师最常用的流量过滤手段。新手最常见的误区是把ACL直接挂在接口的ip access-group上,配完发现不生效,原因是ACL匹配规则是从上往下逐条匹配的,第一条匹配了就执行对应动作,后面的条目不再看。所以ACL的组织顺序极其重要。
Core-SW01(config)# access-list 100 permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255 Core-SW01(config)# access-list 100 deny ip any any Core-SW01(config)# interface vlan 10 Core-SW01(config-if)# ip access-group 100 in参数说明:access-list 100是扩展ACL,编号100是扩展ACL的起始编号(100-199是扩展ACL,1-99是标准ACL)。permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255表示允许VLAN 10的网段访问VLAN 20网段,反掩码0.0.0.255和子网掩码255.255.255.0是反过来的关系。
这一句ACL的含义要逐字说清楚:第一个网段是源,第二个网段是目的,permit后面的ip表示所有IP协议。如果只想放行HTTP流量,可以写成permit tcp 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255 eq 80。如果ACL挂在in方向,它对进入该接口的流量生效;挂在out方向则对从该接口出去的流量生效。我一般建议靠近源端做入向过滤,这样被deny的流量不会白白穿过网络核心。
注意:ACL最后有一条隐式的deny any any,如果没有在列表里显式写一条permit,那么所有流量都会被丢掉。所以上面的例子里第一条permit后要加一条deny ip any any吗?其实不需要——因为隐式deny已经存在,写了显式deny只是让配置更可读,且方便后续追加规则。
5. 避坑与常见问题排查:四类最耗时的故障现象与根因
5.1 交换机死机:CPU可以高到什么程度才算异常
现象:设备Console还能敲命令,但转发面完全不动了,show processes cpu显示CPU usage超过90%,网络时断时续。
原因:最常见的是广播风暴或路由环路。广播风暴的源头往往是Trunk口上误配了portfast,导致STP收敛没来得及做,一台PC发了广播,在环路上无限复制。另外一种是有人把交换机的一个口同时配了access vlan 10和另一个配置互相冲突,会让交换芯片的TCAM表项错乱。
解决:接上Console(死机时SSH基本连不上),执行show processes cpu看是哪个进程吃CPU,show spanning-tree看阻塞端口状态,show interfaces看每个接口的input/output rate。如果发现某个接口input rate持续打满,直接把那个接口shutdown,然后检查物理链路和下游设备。从那以后我给所有接入交换机的终端口强制走一遍portfast+环路检测,同时要求所有上联口绝对不能开portfast。
5.2 光口链路正常但ping丢包:光衰要会看
现象:某台交换机光口连接的另一端设备,接口状态是up的,但ping延迟忽高忽低,甚至丢包率超过10%。
原因:光模块收发光功率异常是主要原因。模块的RX光功率如果落在接收灵敏度边界,接口虽然能协商up,但误码率高到一定程度就会丢包。很多人光看接口状态是up就往下走,忽略了光模块是主动告警还是被动劣化。
解决:登录到交换机上执行show interface transceiver看收发功率。Cisco IOS的典型输出格式中Temperature、Voltage、Current、Tx Power、Rx Power这几项要重点看。Rx Power如果低于-20dBm(具体取决于模块型号和速率,1000BASE-LX的接收灵敏度一般在-20dBm到-23dBm之间),基本就是光路衰耗过大。处理路径是:先查法兰盘连接是否松动 → 清洁光纤接头 → 换跳线 → 换光模块 → 看是否中间ODF架熔接点衰耗大。千万别上来就换光模块,很多时候换模块是白花钱——光纤或法兰盘才是病灶。
5.3 SSH连不上:telnet可以但SSH不行
现象:交换机上Telnet可以正常登录,但SSH客户端报Connection refused,或者连接被重置。
原因:SSH服务没有启动,或者没有配置域名和RSA密钥。Cisco IOS上启用SSH需要三个必要条件:主机名不能是默认的Switch、要有ip domain-name、要生成crypto key generate rsa。
解决:
Core-SW01(config)# hostname Core-SW01 Core-SW01(config)# ip domain-name company.com Core-SW01(config)# crypto key generate rsa modulus 2048 Core-SW01(config)# ip ssh version 2 Core-SW01(config)# line vty 0 4 Core-SW01(config-line)# transport input ssh注意:transport input ssh一旦配了,telnet就失效了,这是好事——生产环境建议只留SSH。另外Cisco IOS的crypto key generate rsa modulus的参数如果设置过低(比如512),在现行安全策略下会被扫描器直接判定为不合规。我当时配置的时候按甲方要求直接上2048位,建议你也一步到位。
5.4 华为交换机连接Cisco交换机无法转发包
现象:华为交换机与Cisco交换机用光口互连,物理口状态是up的,但业务VLAN的流量互不来往,ping网关都不同。
原因:这个问题在混合厂商网络里出现的频率极高。华为交换机的Trunk口默认native VLAN是VLAN 1,Cisco交换机的native VLAN也是VLAN 1,看起来没问题,但实际上两家厂商对Trunk帧的处理有一些细节差异:Cisco默认在Trunk上发送ISL或802.1Q封装,华为只支持802.1Q;如果Cisco这边配置了switchport trunk encapsulation dot1q而华为那边对接的Trunk口忘了放通对应VLAN,两边就是“各说各话”。更隐蔽的坑是VLAN ID的tag行为不一致——华为的Trunk口在发送native VLAN流量时不打tag,但Cisco也不打tag,二者如果在VLAN 1上有流量互通,表面上正常,但VLAN 10的流量会因为封装方式不一致而丢弃。
解决:先把两台设备的Trunk口参数对齐。核心是保证两边encapsulation都是dot1q,native vlan一致,allowed vlan列表一致。然后分别在两台设备上执行show interface trunk对照看,确保VLAN列表完全匹配。对于Cisco侧的配置,我一般会在Trunk口上加上switchport trunk encapsulation dot1q强制指定封装格式,避免它用默认的ISL。
6. 验证与配置归档技巧:show命令组合拳是最大的后悔药
配置做完并不意味着收工,验证环节才是真正检验配置是否生效的地方。最基础也是最有用的验证命令是show running-config,但它的输出太长,生产环境的交换机配置动辄几百行,肉眼根本看不过来。我的习惯是用以下命令组合组合起来做快速体检:
# 查看接口状态与IP地址 show ip interface brief # 查看VLAN与接口对应关系 show vlan brief # 查看Trunk状态,确认native vlan和allowed vlan show interface trunk # 查看所有SVI接口状态 show interface vlan | begin Vlan # 查看MAC地址表(确认设备接入正确) show mac address-table | include 10 # 查看ACL配置与实际匹配计数 show access-lists # 查看邻居设备(CDP) show cdp neighbors这几条命令的执行顺序也很关键:先看接口状态(接口是否up)、再看VLAN分配(设备是否在正确的VLAN里)、再看Trunk(跨交换机链路是否干净)、最后看MAC地址表(终端设备是否真的学到了MAC)。如果MAC地址表里看不到某台PC的MAC,说明PC的流量根本没有到交换机,问题出在物理链路或PC配置上,而不是交换机的配置。
然后是配置归档。这是我最强调的一个习惯——在Cisco IOS上,copy running-config startup-config是写进NVRAM保存配置的命令,很多人配完忘执行这一句,设备一重启全配置就丢了,前面几个小时全白干。这真的是血泪经验,当年给一个客户配完核心交换机,刚走不久客户那边的电闸跳了,设备重启完配置全空,整个办公室网络瘫痪,甲方直接打电话问配置到底保存没有。从那以后我每次配置完都强制走一遍copy running-config startup-config,并且顺手用show startup-config核对关键配置,再导出一份备份到本地方便回滚。
关于配置文件备份,我习惯确定网络结构后第一件事就把show run的输出存成文本文件,命名规则是设备名_日期_配置版本.txt。后续每次变更配置前先备份,变更后再备份一次。这样万一改炸了,直接粘贴回去就能恢复,不需要现场重建配置。这个方法不花一分钱,但节省的排查时间无法估量。
最后再补一个看家技巧:Cisco设备上很多故障是从现象上反推会走弯路,但有一个命令能帮你快速定位配置层面的错误——debug系列命令,比如debug ip packet,不过生产环境慎开,因为debug会吃CPU,而且默认会打到Console口上,量大会把交换机卡死。我的做法是开debug前先配logging buffered,把日志缓冲到内存里,开个terminal monitor,等复现完就立刻no debug all关掉。这是用过才懂的习惯。
这篇笔记里讲的都是些最基础但最要命的东西,从Console线缆参数到ACL匹配顺序,从Trunk的native vlan到SSH的密钥生成,几乎每个坑我都在项目里真实撞过。希望能帮你在配置Cisco交换机时少走些弯路,更希望你能养成配置完必验证、验证完必备份的习惯——这才是这行不吃亏的根本。希望帮到你。
本文还有配套的精品资源,点击获取