无论在国内市场还是国际市场,CISCO交换机、路由器在网络设备领域都占据了主导地位。本文主要介绍网络设备相关的概念以及CISCO设备基础配置命令,以便记录和学习。
一、基础概念
(一) 交换机与集线器
交换机工作在链路层或网络层,这和工作在物理层的集线器有本质上的区别:
- 集线器 (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,CISCO交换机不同类型的接口 (链路) 在收发Tag/Untag报文时处理方式不同:
1.Access接口
一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,只能收发Untag帧,且只能为Untag帧添加唯一VLAN的Tag。
- 接收报文时:当收到不带Tag的报文,则根据接口分配的VLAN打上Tag;当收到带Tag的报文,则交换机不做处理,直接丢弃
- 发送报文时:向主机发送报文时,剥离Tag,发送普通的以太网帧
2.Trunk端口
一般用于连接交换机、路由器等可同时收发Tag和Untag报文的设备,可以允许多个VLAN的报文带Tag通过。
- 接收报文时:当收到不带Tag的报文,则根据接口分配的VLAN打上Tag;当收到带Tag的报文,则根据规则查看是否允许进入,如果允许则接收,否则丢弃
- 发送报文时:根据接口配置的规则,如果Tag中VLAN ID允许通过,则直接透传,否则丢弃
(三) 管理方式
对于交换机、路由器等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哈希加密
二、配置命令
(一) 基本配置
[<command>] ? —> 帮助命令,常用于查看子命令 no <command> —> 取消command相应的配置 include —> 结合管道符| 使用,提取信息 exit —> 退出当前模式
SW> enable <level>
SW# show users
SW# show privilege
SW# show running-config
SW# show version
SW# show vlan brief
SW# show ip interface brief
SW# show ip route
SW# show access-lists
SW# show vtp status
SW# config terminal
SW(config)# hostname <hostname>
SW(config)# service password-encryption
SW(config)# username <name> privilege <level> {secret|password} <num> <pass>
SW(config)# enable {secret|password} <num> <pass>
SW(config)# line console 0
SW(config)# line vty 0 4
SW(config-line)# password <pass>
SW(config-line)# login
SW(config-line)# login local
SW(config-line)# no login
SW(config)# interface <interface>
SW(config-if)# ip address <addr> <mask>
SW(config-if)# ip address dhcp
SW(config)# ip route <dst_addr> <mask> <gw_addr>
注意:配置命令支持缩略表示,如:username root privi 15 pass asdf 、show run
(二) 配置DHCP
在三层设备上配置DHCP服务:
Router(config)# service dhcp
Router(config)# ip dhcp pool <name>
Router(dhcp-config)# network <addr> <mask>
Router(dhcp-config)# default-router <addr>
Router(dhcp-config)# dns-server <addr>
Router(dhcp-config)# exit
Router(config)# ip dhcp excluded-address <addr>
Router(config)# exit
Router# show ip dhcp binding
(三) 划分VLAN
1.创建VLAN
在VLAN数据库模式和全局模式下都可以实现对VLAN信息进行配置,但推荐在全局模式下进行配置,因为VLAN数据库模式正在被弃用,下面对VLAN的配置统一在全局模式下进行。
SW(config)# vlan <id>
SW(config-vlan)# name <name>
2.配置端口
SW(config)# interface <interface_phy>
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan <id>
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk allowed vlan all
注意:交换机默认存在VLAN 1(本征VLAN),所有端口初始都划分在VLAN 1中。
3.配置SVI
交换机虚拟接口 (Switch Virtual Interface, SVI) 是VLAN的虚拟接口,为SVI配置IP,通常作用如下:
- 实现对设备进行远程管理
- 作为网关实现不同VLAN间路由
SW(config)# interface vlan <id>
SW(config-if)# descryption demo test
SW(config-if)# ip address <address> <mask>
SW(config-if)# no shutdown
4.配置路由
在成功划分VLAN后,要使VLAN间可以正常路由需要在三层设备上配置,一般有三种方式:
(1) 多臂路由:即普通路由,为每个Vlan分配一个物理端口,每个物理端口配置为相应Vlan的网关,但是这种方式需要耗费大量路由器端口,在实际实施中基本行不通。
Router(config)# interface <interface_phy>
Router(config-if)# no shutdown
Router(config-if)# ip address 192.168.100.1 255.255.255.0
Router(config-if)# exit
(2) 单臂路由:在一个物理端口上划分多个虚拟子接口,每个虚拟子接口分配一个VLAN,并作为VLAN的网关,这样解决了路由器物理端口需求量过大的问题,但由于所有VLAN数据包都通过一条链路,所以性能上限会受到单链路的局限。
交换机和路由器之间链路是中继链路,交换机连接路由器的接口配置为trunk口,允许多个VLAN的数据帧通过,默认封装格式为802.1Q,只有路由器接口同样封装为802.1Q,才能保证打上VLAN标签的数据帧能够被交换机区分,从而实现跨越VLAN通信,所以交换机在配置虚拟子接口时要封装802.1Q协议。
Router(config)# interface <interface_phy>
Router(config-if)# no shutdown
Router(config-if)# exit
Router(config)# interface <sub_interface>
Router(config-subif)# encapsulation dot1q <vlan_id>
Router(config-subif)# ip address 192.168.100.1 255.255.255.0
Router(config-subif)# exit
(3) 三层交换机:在二层交换机的基础上添加路由模块,为每个Vlan分配一个物理端口,每个物理接口配置为相应的Vlan的网关,解决了物理端口需求量大和链路局限的问题,是解决Vlan间路由的首选。
SW(config)# vlan <id>
SW(config-vlan)# name <name>
SW(config-vlan)# exit
SW(config)# interface <interface_phy>
SW(config-if)# no shutdown
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan <id>
SW(config-if)# exit
SW(config)# interface vlan <id>
SW(config-if)# ip address <addr> <mac>
SW(config-if)# exit
SW(config)# ip routing
注意: ① 路由器自动开启路由功能,而三层交换机默认没有开启,需要ip routing 命令 ② 在VLAN中继的不同设备之间管理地址不要和网关地址重复 ③ 三层交换机只能对SVI配置IP,无法对物理端口配置IP
(四) 配置VTP
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 Server
SW(config)# vtp mode server
SW(config)# vtp version <ver>
SW(config)# vtp domain <name>
SW(config)# vtp password <pass>
SW(config)# interface <port>
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk allowed vlan all
SW(config-if)# exit
2.VTP Client
SW(config))# vtp mode client
SW(config)# vtp version <ver>
SW(config)# vtp domain <name>
SW(config)# vtp password <pass>
SW(config)# interface <port>
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk allowed vlan all
SW(config-if)# exit
(五) 配置ACL
访问控制列表 (Access Control Lists, ACL) 可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃,从而限制多个VLAN间互访。ACL需要在三层设备上进行配置,所有规则都是基于出/入两个方向:
- 出:表示已经由设备处理完毕,正离开设备接口的数据包
- 入:表示已经到达设备接口的数据包,将要被设备处理
分为标准ACL、扩展ACL和命名ACL三类:
1.标准ACL
对三层数据包中的源IP地址进行过滤,使用访问控制列表号1-99来创建相应的ACL,命令为:
SW(config)# access-list <num> {permit|deny} <addr> <r_mask>
SW(config)# access-list <num> permit any
SW(config)# ip access-list standard <num>
SW(config-std-nacl)# <seq_num> {deny|permit} <addr> <r_mask>
SW(config-std-nacl)# no <seq_num>
SW(config)# exit
SW(config)# interface <interface>
SW(config-if)# ip access-group <num> {in|out}
SW(config)# no access-list <num>
2.扩展ACL
对三层、四层数据包的源IP地址、端口以及目的IP地址、端口信息进行过滤,使用访问控制列表号100-199来创建相应的ACL,命令为:
SW(config)# access-list <num> {permit|deny} protocol <src_addr> <r_mask> <dst_addr> <r_mask> <operator> <service|port>
SW(config)# no access-list <num>
SW(config)# ip access-list extend <num>
SW(config-std-nacl)# <seq_num> {deny|permit} <addr> <r_mask>
SW(config-std-nacl)# no <seq_num>
SW(config)# exit
SW(config)# interface <interface>
SW(config-if)# ip access-group <num> {in|out}
3.命名ACL
基于名称建立标准/扩展ACL规则,或是选择相应的规则对其进行编辑,注意序号可以当成是一种特殊的名称,所以也可以针对序号规则进行编辑,命令为:
SW(config)# ip access-list {standard|extended} <name>
SW(config-std-nacl)# <seq_num> {deny|permit} <addr> <r_mask>
SW(config-std-nacl)# no <seq_num>
SW(config-std-nacl)# exit
SW(config)# no ip access-list standard <name>
SW(config)# interface <interface>
SW(config-if)# ip access-group <name> {in|out}
注意: ① CISCO规定ACL中用反向掩码表示子网掩码,比如用 192.168.1.1 0.0.0.255 表示192.168.1.1/24 ② ACL按照优先生效的原则,先匹配到的规则直接生效,不会继续向下寻找匹配 ③ CISCO默认在ACL结尾添加deny any 的命令,即丢弃所有不符合匹配规则的数据包
|