文章目录无论在国内市场还是国际市场,CISCO交换机、路由器在网络设备领域都占据了主导地位。本文主要总结网络设备相关的概念以及CISCO设备基础配置命令,以便记录和学习。
- 一、基础概念
- (一) 交换机与集线器
- (二) VLAN标签
- (三) 管理方式
- (四) 工作模式
- (五) 加密级别
- 二、配置命令
- (一) 基本配置
- (二) 配置DHCP
- (三) 划分VLAN
- (四) 配置VTP
- (五) 配置ACL
- (六) 端口镜像
交换机工作在链路层或网络层,这和工作在物理层的集线器有本质上的区别:
- 集线器 (Hub):内部本质是总线型拓扑,数据转发只能通过广播的形式,端口之间通道为半双工通信,所有端口存在于同一个冲突域
- 二层交换机 (Switch):通过自学习建立“MAC-端口”对应表,从而可以实现单播,端口之间为全双工通信,这样得以将每个端口冲突域相隔离
- 三层交换机 (Router):具有路由功能的交换机,可以简单理解为在二层交换机的基础上添加了路由模块
尽管交换机有“MAC-端口”对应表,而且端口间为全双工通信,但这只是隔离了冲突域,并不能隔离广播域,对于ARP、DHCP等广播包一样会广播到所有端口,所以当链路复杂时一样容易产生广播风暴,对此有效的解决方法就是配置VLAN,每个VLAN都是一个独立的广播域,可以有效避免广播风暴。
(二) VLAN标签要使交换机能够分辨不同的VLAN报文,需要在报文中添加标识VLAN信息的字段,即VLAN标签 (VLAN Tag) ,这个过程需要使用IEEE 802.1Q协议封装帧头,只能由交换机、路由器等网络设备实现。协议规定在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN Tag,用以标识VLAN信息,如下图所示:
主机、集线器收发的数据包中无VLAN Tag,交换机、路由器等设备收发的数据包中可以有,也可以没有VLAN Tag。VLAN Tag是二层的概念,如果需要三层设备处理VLAN Tag,就需要配置其二层功能,否则收到携带VLAN Tag的数据包无法正常识别和处理,例如路由器的三层接口如果不配置虚拟子接口,或者在三层交换机上关闭接口二层、开启三层功能,这些情况下接口都无法正常处理携带VLAN Tag的数据包。
CISCO交换机不同类型的接口 (链路) 在收发Tag/Untag报文时处理方式不同:
- Access接口:一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,只能收发Untag帧,且只能为Untag帧添加唯一VLAN的Tag
- Trunk端口:一般用于连接交换机、路由器等可同时收发Tag和Untag报文的设备,可以允许多个VLAN的报文携带Tag通过
对于交换机、路由器等CISCO设备,很多配置命令都是通用的,这两类网络设备管理的模式也是相同的:
- Console接口:设备的控制台接入端口,一般为RJ45接口,管理员通过“Console转串口”或“Console转USB”数据线,一端接交换机另一端接PC控制端,在本地进行管理
- AUX接口:辅助接口,用于远程配置,很少使用
- 虚拟终端 (vty):通过Telnet、SSH等远程连接交换机时分配,需要先通过Console接口配置才能使用
- WEB界面:通过WEB界面管理设备,需要先通过Console接口或其他方式将WEB服务启用
CISCO设备四种基本的工作模式,分别如下:
- 用户模式 >:低权限用户接入交换机的初始工作模式
- 特权模式 #:用户模式下输入命令 enable 进入特权模式
- 全局配置模式 (config)#:特权模式下输入命令 configuration terminal 进入全局配置模式
- 接口配置模式 (config-if)#:全局配置模式下选择具体接口进入接口配置模式,如:int f0/1-4
CISCO设备特权级别范围 0-15,级别≥3时,用户登入交换机即特权模式,不用输入enable命令和特权模式的密码。当用户处于较低权限级别,通过enable命令默认进入15级最高权限。
(五) 加密级别不同系列的设备支持的加密方式不同,常见如下:
- 0:不加密,显示密码本身
- 5:MD5哈希加密
- 7:CISCO加密,可以逆转破解,安全性低
- 8:PBKDF2哈希加密
- 9:SCRYPT哈希加密
[
no
include —> 结合管道符|使用,提取信息
exit —> 退出当前模式
SW> enable// 提升权限至level,默认进入15级特权模式 SW# show users // 查看当前登陆用户,主要包括console和vty // 有*标注的代表自己当前登录用的模式 SW# show privilege // 显示当前用户权限等级 SW# show running-config // 显示当前设备所有配置 SW# show version // 显示设备版本、系统等信息 SW# show vlan brief // 简洁显示所有VLAN状态、名称 SW# show ip interface brief // 简洁显示所有接口(包括虚拟接口)分配IP和激活状态 SW# show ip route // 查看路由表(三层设备) SW# show access-lists // 查看ACL规则(三层设备) SW# show vtp status // 查看VTP状态信息 SW# show monitor // 查看端口镜像配置(交换机) SW# config terminal // 进入全局配置模式 SW(config)# hostname // 配置设备名称 SW(config)# service password-encryption // 开启加密服务,采用CISCO私有算法加密存储密码 SW(config)# username privilege {secret|password} //配置设备名称 // privilege有16个等级:0-15,等级越高权限越大 // secret代表加密, 代表不同的加密算法 // password代表不加密,在show run时直接可见密码明文 // 如果开启password-encryption服务,则password设置的密码会被加密 // secret命令优先级大于password,若同时设置则secret命令生效 SW(config)# enable {secret|password} // 设置低权限用户进入特权模式的密码 SW(config)# line console 0 // line表示接入交换机的线路,通常包括console和vty // 对控制台接口进行配置,0代表console端口号 // 命令执行后进入SW(config-if)#配置模式 SW(config)# line vty 0 4 // 对虚拟终端进行配置,0-4代表5个虚拟终端 // 命令执行后进入SW(config-if)#配置模式 SW(config-line)# password // 配置进入当前模式(console/vty)需要的密码 SW(config-line)# login // 登录时启用密码检查,只需要输入密码 SW(config-line)# login local // 登录时启用密码检查,需要输入用户名和密码 SW(config-line)# no login // 当前line不允许登录 SW(config)# interface // 进入接口配置模式 SW(config-if)# // 可以是VLAN、物理接口、虚拟子接口 SW(config-if)# no shutdown // 激活端口 SW(config-if)# ip address // 为接口(SVI、物理接口、虚拟子接口)配置静态IP SW(config-if)# ip address dhcp // 为接口(SVI、物理接口、虚拟子接口)配置DHCP SW(config-if)# no switchport // 关闭三层交换机物理接口的二层功能,启用三层功能 // 这样就可以为三层交换机物理接口配置IP地址 SW(config)# ip route // 配置静态路由(三层设备)
注意:配置命令支持缩略表示,如:username root privi 15 pass asdf、show run
(二) 配置DHCP在三层设备上配置DHCP服务,为使DHCP服务器可以被VLAN中的DHCP客户端发现,三层设备上为VLAN实现路由的IP地址 (路由器物理接口或虚拟子接口的IP / 三层交换机SVI的IP) 必须和DCHP服务分配的默认网关地址一致。:
Router(config)# service dhcp // 开启DCHP服务 Router(config)# ip dhcp pool(三) 划分VLAN 1.创建VLAN// 进人dhcp地址池进行配置 Router(dhcp-config)# network // 配置dhcp地址池 Router(dhcp-config)# default-router // 配置网关地址 Router(dhcp-config)# dns-server // 配置dns服务器地址 Router(dhcp-config)# exit Router(config)# ip dhcp excluded-address // dhcp不分配的地址 Router(config)# exit Router# show ip dhcp binding // 查看dhcp地址分配情况
在VLAN数据库模式和全局模式下都可以实现对VLAN信息进行配置,但推荐在全局模式下进行配置,因为VLAN数据库模式正在被弃用,下面对VLAN的配置统一在全局模式下进行。
SW(config)# vlan2.配置端口// 创建vlan并对其进行配置 SW(config-vlan)# name // 为vlan命名name
SW(config)# interface// 进入物理端口进行配置,如fa0/1、gi0/1、gi0/0/1 // 可以一次配置多个接口,如 interface range fa0/1-2 // fa代表Fast百兆以太网接口 // gi代表Gigabit千兆以太网接口 // 端口代码的完整表示为x/y/z,代表第x台设备,第y个插槽板卡,第z个端口 SW(config-if)# switchport mode access // 配置端口为access模式,只允许指定vlan数据包通过 SW(config-if)# switchport access vlan // 配置交换机端口,将其分配给vlan id,且只允许vlan id数据包通过 // 只有交换机设备有此命令 SW(config-if)# switchport mode trunk // 配置端口为trunk模式,可以允许多个vlan数据包通过 SW(config-if)# switchport trunk allowed vlan all // 允许所有vlan数据包通过
注意:交换机默认存在VLAN 1(本征VLAN),所有端口初始都划分在VLAN 1中。
3.配置SVI交换机虚拟接口 (Switch Virtual Interface, SVI) 是VLAN的虚拟接口,为SVI配置IP,通常作用如下:
- 实现对设备进行远程管理
- 作为网关实现不同VLAN间路由
不同设备 (交换机) 如果需要通过同一个VLAN进行管理,需要为VLAN在不同设备上的SVI配置不同的IP,例如:在SW1和SW2上都配置有VLAN10的信息,想要通过VLAN10对这两个设备进行管理,可以在SW1上配置VLAN10的IP为10.1.1.1,在SW2上配置VLAN10的IP为10.1.1.2。
SW(config)# interface vlan4.配置路由// 针对Vlan的SVI进行配置 SW(config-if)# descryption demo test // 对SVI添加描述 SW(config-if)# ip address // 为SVI分配IP
在成功划分VLAN后,要使VLAN间可以正常路由需要在三层设备上配置,一般有三种方式:
(1) 多臂路由:即普通路由,为每个Vlan分配一个物理端口,每个物理端口配置为相应Vlan的网关,但是这种方式需要耗费大量路由器端口,在实际实施中基本行不通。
Router(config)# interface// 进入物理接口配置,如fa0/1 Router(config-if)# no shutdown // 激活端口 Router(config-if)# ip address 192.168.100.1 255.255.255.0 // 分配IP Router(config-if)# exit
(2) 单臂路由:在一个物理端口上划分多个虚拟子接口,每个虚拟子接口分配一个VLAN,并作为VLAN的网关,这样解决了路由器物理端口需求量过大的问题,但由于所有VLAN数据包都通过一条链路,所以性能上限会受到单链路的局限。
交换机和路由器之间链路是中继链路,交换机连接路由器的接口配置为trunk口,允许多个VLAN的数据帧通过,默认封装格式为802.1Q,只有路由器接口同样封装为802.1Q,才能保证打上VLAN标签的数据帧能够被交换机区分,从而实现跨越VLAN通信,所以交换机在配置虚拟子接口时要封装802.1Q协议。
Router(config)# interface// 进入物理接口配置,如fa0/1 Router(config-if)# no shutdown // 激活接口 Router(config-if)# exit Router(config)# interface // 进入虚拟子接口配置,如fa0/0.1 // 虚拟子接口并不是实际存在的物理接口,但是功能和物理接口相同 Router(config-subif)# encapsulation dot1q // 接口配置802.1Q协议(vlan封装方式) Router(config-subif)# ip address 192.168.100.1 255.255.255.0 // 为该接口划分网关地址,针对虚拟接口设置ip是为了分配网关 Router(config-subif)# exit
(3) 三层交换机:在二层交换机的基础上添加路由模块,为每个VLAN分配一个物理接口,每个物理接口配置为相应的Vlan的网关,解决了物理端口需求量大和链路局限的问题,是解决VLAN间路由的首选。三层交换机默认只开启了二层功能,如果需要使用三层功能需要手动开启。
在交换机接口上配置VLAN间路由有两种思路,第一种是利用交换机接口二层功能+路由:
SW(config)# vlan// 和连接的二层交换机配置相同的vlan信息 SW(config-vlan)# name // 为vlan命名 SW(config-vlan)# exit SW(config)# interface // 进入物理接口配置,如fa0/1,配置三层功能 SW(config-if)# no shutdown // 激活接口 SW(config-if)# switchport mode access // 允许单个VLAN通过配置接口为access模式 // 允许多个VLAN通过配置接口为trunk模式 SW(config-if)# switchport access vlan // 配置允许通过的vlan id SW(config-if)# exit SW(config)# interface vlan // 进入SVI配置 SW(config-if)# ip address // 为SVI配置IP,与网关IP一致 SW(config-if)# exit SW(config)# ip routing // 开启IP路由功能
第二种是利用交换机接口三层功能+路由:
SW(config)# vlan// 和连接的二层交换机配置相同的vlan信息 SW(config-vlan)# name // 为vlan命名 SW(config-vlan)# exit SW(config)# interface // 进入物理接口配置,如fa0/1,配置二层功能 SW(config-if)# no shutdown // 激活接口 SW(config-if)# no switchport // 关闭接口二层功能,开启三层功能 // 三层功能接口配置方法和路由器接口相同,但是不能配置虚拟子接口 SW(config-if)# ip address // 配置接口IP,与网关IP一致 SW(config-if)# exit SW(config)# ip routing // 开启IP路由功能
注意:
① 路由器自动开启路由功能,而三层交换机默认没有开启,需要ip routing命令
② 对三层交换机物理接口配置IP需要先使用no switchport命令关闭接口二层功能,开启三层功能
③ 配置链路两端接口模式时要匹配,如果不匹配,比如Trunk-Access,则会出现Native VLAN mismatch discovered报错
VTP (Vlan Trunk Protocol) 是CISCO私有的VLAN中继协议,通过同步交换机上VLAN的配置信息简化和统一网络管理。在VTP域中建立VTP Server和VTP Client,在一台VTP Server上配置VLAN时,VLAN信息将自动通过域中所有VTP Server/Client进行分发。
VTP中交换机有Server、Client、Transparent三种模式:
- Server:维护VTP域中所有VLAN 信息,可以建立、删除或修改VLAN,可以同步VLAN配置,并把配置保存在NVRAM存储器中
- Client:从VTP Server学习VLAN配置信息,不能建立、删除或修改VLAN,但可以同步VLAN配置,不保存配置到NVRAM存储器中
- Transparent:独立于VTP域的交换机,仅维护本机上的VLAN信息,不参与VTP的信息同步和自学习机制,可以建立、删除和修改本机上的VLAN信息,并把配置保存在NVRAM存储器中
通常一个VTP域内的设置一个VTP Server和多个VTP Client,交换机之间必须要用中继链路Trunk模式,具体配置如下:
1.VTP ServerSW(config)# vtp mode server // 配置交换机为VTP Server SW(config)# vtp version2.VTP Client// 配置vtp版本 SW(config)# vtp domain // 配置VTP域 SW(config)# vtp password // 配置VTP密码 SW(config)# interface // 配置交换机相连的物理接口为trunk模式 SW(config-if)# switchport mode trunk SW(config-if)# switchport trunk allowed vlan all SW(config-if)# exit
SW(config))# vtp mode client // 配置交换机为VTP Client SW(config)# vtp version(五) 配置ACL// 配置vtp版本,必须与VTP Server一致 SW(config)# vtp domain // 配置VTP域,必须与VTP Server一致 SW(config)# vtp password // 配置VTP密码,必须与VTP Server一致 SW(config)# interface // 配置交换机相连的物理接口为trunk模式 SW(config-if)# switchport mode trunk SW(config-if)# switchport trunk allowed vlan all SW(config-if)# exit
访问控制列表 (Access Control Lists, ACL) 可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃,从而限制多个VLAN间互访。ACL需要在三层设备上进行配置,所有规则都是基于出/入两个方向:
- 出:表示已经由设备处理完毕,正离开设备接口的数据包
- 入:表示已经到达设备接口的数据包,将要被设备处理
分为标准ACL、扩展ACL和命名ACL三类:
1.标准ACL对三层数据包中的源IP地址进行过滤,使用访问控制列表号1-99来创建相应的ACL,命令为:
SW(config)# access-list2.扩展ACL{permit|deny} // 标准ACL --> num: 1-99 // CISCO规定ACL中用反向掩码表示子网掩码,比如:192.168.1.1 0.0.0.255 表示192.168.1.1/24 // 替换成any,相当于 0.0.0.0 255.255.255.255 // 替换成host ,如:host 192.168.1.1,相当于:192.168.1.1 0.0.0.0 SW(config)# access-list permit any // CISCO的ACL默认添加deny any的命令,即丢弃所有不符合匹配规则的数据包 // 因此在配置完限制规则后要加上这一句,否则匹配不到的规则包默认被丢弃 SW(config)# ip access-list standard SW(config-std-nacl)# {deny|permit} // 可以指定添加ACL中具体规则的序号,如果不指定,默认序号按照10,20,30...递增 SW(config-std-nacl)# no // 只删除ACL中序号为seq_num的规则 SW(config)# exit SW(config)# interface SW(config-if)# ip access-group {in|out} // 接口类型可以是物理端口、SVI和虚拟子接口 // 针对接口入/出端口应用ACL规则 SW(config)# no access-list // 删除ACL规则
对三层、四层数据包的源IP地址、端口以及目的IP地址、端口信息进行过滤,使用访问控制列表号100-199来创建相应的ACL,命令为:
SW(config)# access-list3.命名ACL{permit|deny} protocol // 扩展ACL --> num: 100-199 // operator具体包括:It小于,gt大于,eq等于,neq不等于 // 如:access-list 1 deny tcp any host 192.168.1.1 eq www --> 将所有主机访问192.168.1.1的www(80)服务的tcp数据包丢弃 SW(config)# no access-list // 删除整个ACL规则 SW(config)# ip access-list extend SW(config-std-nacl)# {deny|permit} // 可以指定添加ACL中具体规则的序号,如果不指定,默认序号按照10,20,30...递增 SW(config-std-nacl)# no // 只删除ACL中序号为seq_num的规则 SW(config)# exit SW(config)# interface SW(config-if)# ip access-group {in|out}
基于名称建立标准/扩展ACL规则,或是选择相应的规则对其进行编辑,注意序号可以当成是一种特殊的名称,所以也可以针对序号规则进行编辑,命令为:
SW(config)# ip access-list {standard|extended}
// 建立一个名为name的标准/扩展ACL
SW(config-std-nacl)# {deny|permit}
// 可以指定ACL中具体规则的序号,如果不指定,默认序号按照10,20,30...递增
SW(config-std-nacl)# no
// 只删除ACL中序号为seq_num的规则
SW(config-std-nacl)# exit
SW(config)# no ip access-list standard
// 删除整个ACL规则
SW(config)# interface
SW(config-if)# ip access-group {in|out}
注意:
① CISCO规定ACL中用反向掩码表示子网掩码,比如用 192.168.1.1 0.0.0.255 表示192.168.1.1/24
② ACL按照优先生效的原则,先匹配到的规则直接生效,不会继续向下寻找匹配
③ CISCO默认在ACL结尾添加deny any的命令,即丢弃所有不符合匹配规则的数据包
端口镜像即把交换机源端口 (一个或多个) 的流量完全拷贝一份,然后从目的端口 (一个或多个) 发出,目的端口通常接IDS、Sniffer PC等流量分析设备,以便网络流量监控和故障诊断。在CISCO设备上通过SPAN (Switched Port ANalyzer) 和RSPAN (Remote Switched Port ANalyzer) 技术做端口镜像。
1.SPAN本地设备端口监控,所有被监听的源端口与镜像目的端口同处于一台交换机上:
SW(config)# monitor sessionsource {tx|rx|both} // 配置span镜像源接口 // interface既可以是物理接口,如fa0/1,也可以是SVI,如vlan 100 // tx: 接口发送流量,rx: 接口接收流量,both: 接口收发流量 (默认) SW(config)# monitor session destination // 配置span镜像目的接口 // interface_phy是连接流量分析设备的物理接口
镜像目的接口配置后,只能接收镜像流量,无法收发正常流量。
2.RSPAN远端设备端口监控,被监听的源端口与镜像目的端口不在同一台交换机上,这时要在中间经过所有的交换机上配置相同的RSPAN VLAN用于传递镜像流量,交换机之间为Trunk连接。
(1) 在源端口交换机上配置,使镜像端口流量 interface —> rspan vlan:
SW(config)# vlan// vlan id不能和已配置正常vlan相同 SW(config-vlan)# name SW(config-vlan)# remote-span // 配置RSPAN模式,专用于传递镜像流量 SW(config-vlan)# exit SW(config)# monitor session source {tx|rx|both} // 配置rspan镜像源接口 // interface既可以是物理接口,如fa0/1,也可以是SVI,如vlan 100 SW(config)# monitor session destination remote vlan reflector-port // 镜像目的端口配置为rspan vlan // 反射端口(reflector-port)负责将镜像流量转发到rspan vlan
(2) 在中间交换机上配置 (如果存在的话) RSPAN VLAN,使镜像端口流量 rspan vlan —> interface:
SW(config)# vlan// vlan id要与镜像源端口所在交换机的vlan一致 SW(config-vlan)# name SW(config-vlan)# remote-span // 配置RSPAN模式,专用于传递镜像流量 SW(config-vlan)# exit SW(config)# monitor session source remote vlan // 镜像源端口配置为rspan vlan SW(config)# monitor session destination // 配置rspan镜像目的端口的流量 // session id不需要和源交换机一致 // interface_phy是连接下一个交换机的物理接口
(3) 在目的端口交换机上配置,使镜像端口流量 rspan vlan —> interface:
SW(config)# vlan// vlan id要与镜像源端口所在交换机的vlan一致 SW(config-vlan)# name SW(config-vlan)# remote-span // 配置RSPAN模式,专用于传递镜像流量 SW(config-vlan)# exit SW(config)# monitor session source remote vlan // 镜像源端口配置为rspan vlan SW(config)# monitor session destination // 配置rspan镜像目的端口的流量 // interface_phy是连接流量分析设备的物理接口



