信创交换机(S5300G/S6300G、S3200G)

信锐技术自主研发的千兆盒式交换机产品,支持主流协议标准和应用程序,可方便快速的部署和管理,满足下一代企业网、数据中心、城域网和超融合等多种应用场合需求。
{{sendMatomoQuery("信创交换机(S5300G/S6300G、S3200G)","基础配置指导")}}

基础配置指导

更新时间:2025-07-14

2.1系统管理配置

2.1.1概述

简介

banner功能提供给设备管理员一个配置提示信息的渠道,可以配置任意想要提示该设备其他使用者的信息。 一些不当的操作会影响到所有用户,甚至引起业务中断等严重后果。因而提前给出提示是非常必要的(例如,请勿重启该设备)。

目前支持如下选择:

MOTD(全称message-of-the-day)。在用户连接到系统时显示在终端上。

login banner,在用户登录设备时候显示。注意这里必须使用login模式,登录模式相关的信息,请参考《用户管理配置》。

exec banner,在用户进入exec模式的时候显示。

本功能通过在终端上显示的提示信息,期望达到尽量减少人为误操作的目的。

2.1.2配置举例

配置消息Banner

步骤 1进入配置模式

Switch# configure terminal

步骤 2创建提示信息

用户可以创建一行或多行提示信息,这些信息将会显示在登录用户的终端上。该例子中第一个#号表示指定终止符为#号,也可以选用其他任何字符作为消息的起止符。在第一个#号之后输入需要的提示信息,全部输完以后再次输入一个#号。消息最多为99行,每行最多1023个字符。

Switch(config)# banner motd # This is a switch #

步骤 3退出配置模式

Switch(config)# exit

步骤 4检查配置

使用下列命令查看配置

switch# show running
banner motd ^C
This is a switch
^C

配置登录Banner

步骤 1进入配置模式

Switch# configure terminal

步骤 2创建提示信息

用户可以创建一行或多行提示信息,在用户登录到系统的时候显示在终端上。请参考《用户管理配置》,必须使用login模式才会显示。

该例子中第一个#号表示指定终止符为#号,也可以选用其他任何字符作为消息的起止符。在第一个#号之后输入需要的提示信息,全部输完以后再次输入一个#号。

消息最多为99行,每行最多1023个字符。

Switch(config)# banner login # admin login #

步骤 3退出配置模式

Switch(config)# exit

步骤 4检查配置

使用下列命令查看配置

switch# show running-config
banner login ^C
admin login
^C

配置Exec模式Banner

步骤 1进入配置模式

Switch# configure terminal

步骤 2创建提示信息

用户可以创建一行或多行提示信息,在用户进入exec模式时候显示在终端上。

该例子中第一个#号表示指定终止符为#号,也可以选用其他任何字符作为消息的起止符。在第一个#号之后输入需要的提示信息,全部输完以后再次输入一个#号。

消息最多为99行,每行最多1023个字符。

Switch(config)# banner exec # do not reboot! #

步骤 3退出配置模式

Switch(config)# exit

步骤 4检查配置

使用下列命令查看配置

switch# show running-config
banner exec ^C
do not reboot!
^C

应用场景一:说明设备用途

MOTD信息设置为“这是某某区域(部门)的交换机”,用户在连接到系统时就能看到该提示,如果因为IP地址错误而连错了设备,看到此条提示可以防止进一步误操作该设备。

1.配置过程

Switch# configure terminal
Switch(config)# banner motd # This is a switch of IT DEPARTMENT !!! #
Switch(config)# exit

2.配置文件

switch# show running
banner motd ^C
This is a switch of IT DEPARTMENT !!!
^C

2.2用户管理配置

2.2.1概述

简介

用户管理功能可用来增加系统的安全性,用户可以通过密码来登录。系统会限制登录用户的数量。

交换机上有三种模式登录:

no login”模式:直接登录交换机并且不需要密码。

login”模式:需要输入密码登录交换机。

login local”模式,使用本地创建的用户名和密码登录交换机。支持32个账户,用户可以为每个用户名设置不同的密码。用户名最大长度为32个字符。在用户启用本地账户验证之前,必须提前创建一个账户。用户可以设置每个账户的等级,有效的等级1-4

同一时刻只有一个用户可以进入配置模式。

2.2.2配置举例

配置用户等级

步骤 1进入配置模式

Switch# configure terminal

步骤 2创建用户名和密码

Switch(config)# username testname privilege 4 password 123abc<>

步骤 3进入用户管理模式并设置验证模式,然后退出

Switch(config)# line vty 0 7
Switch(config-line)# login local
Switch(config-line)# exit

步骤 4退出配置模式

Switch(config)# exit

步骤 5检查配置

经过以上配置,登录交换机时,系统会首先提示用户输入用户名:

Username:

在输入用户名之后,会提示输入密码:

Username: testname
Password:

登录成功:

Password:

Switch#

配置用户管理

步骤 1进入配置模式

Switch# configure terminal

步骤 2进入用户管理模式并设置验证模式和登陆密码,然后退出

Switch(config)# line vty 0 7
Switch(config-line)# line-password abc
Switch(config-line)# login

步骤 3退出配置模式

Switch(config)# exit

步骤 4检查配置

经过以上配置后,登录交换机时系统会提示类似如下的验证信息,用户可以使用之前创建的密码来登录交换机。

Password:

密码恢复

用户忘记交换机密码的时候,可以用以下方法恢复:

步骤 1通过Console线连接交换机并加电,console显示如下

CPU:   MPC8247 (HiP7 Rev 14, Mask 1.0 1K50M) at 350 MHz
Board: 8247 (PCI Agent Mode)
I2C:   ready
DRAM:  256 MB
In:    serial
Out:   serial
Err:   serial
Net:   FCC1 ETHERNET, FCC2 ETHERNET [PRIME]
Press ctrl+b to stop autoboot: 3

步骤 2ctrl + b进入Uboot模式

Bootrom#

步骤 3使用没有密码的空配置文件启动系统

Bootrom# boot_flash_nopass
Bootrom# Do you want to  revert  to the default config file ? [Y|N|E]:

请牢记您的用户名和密码。

忘记用户名和密码后通过串口恢复,可能会导致配置丢失及业务中断,所以请务必牢记您的用户名和密码。

2.3FTP配置

2.3.1概述

简介

设备可以作为FTP 客户端。

用户可从FTP服务器下载一个交换机配置文件,或从交换机上传文件到FTP服务器上。 从FTP服务器下载一个交换机的配置文件以升级交换机的配置,只需用新的文件覆盖当前的启动配置文件即可。交换机配置文件上传到服务器可以起到备份作用,如后续需要,可下载到本交换机或者相同类型的交换机,以更新交换机的配置。

原理描述

FTPFile Transfer Protocol,文件传输协议)用于在FTP 服务器和FTP 客户端之间传输文件,是IP 网络上传输文件的通用协议。

FTP 协议使用TCP 端口20 21 进行传输。端口20 用于传输数据,端口21 用于传输控制消息。FTP 协议基本操作在RFC959 中进行了描述。

FTP 有两种文件传输模式:

二进制模式,用于传输程序文件(比如后缀名为.app.bin .btm 的文件);

ASCII 码模式,用于传输文本格式的文件(比如后缀名为.txt.bat .cfg 的文件)。

缺省情况下,FTP 文件传输模式为二进制模式。

FTP 有两种工作方式:Standard (PORT方式,主动方式)Passive (PASV,被动方式)

PORT方式:建立数据连接时由FTP 服务器发起连接请求,当FTP 客户端处于防火墙后时不适用(如FTP 客户端处于私网内)。

Passive方式:建立数据连接时由FTP 客户端发起连接请求,当FTP 服务器限制客户端连接其高位端口(一般情况下大于1024)时不适用。

是否使用被动方式由 FTP 客户端程序决定,不同FTP 客户端软件对FTP 工作方式的支持情况可能不同,请在使用时以软件的实际情况为准。

2.3.2配置

前置任务

用户可以复制或上传文件到FTP服务器。

FTP协议要求FTP客户端每次发送FTP请求到服务器时都要包含远程用户名和密码。在用户开始使用FTP上传或下载一个配置文件前,必须完成以下操作:

确保交换机到FTP服务器之间有一个可达路由。如果用户的网络中不存在子网间路由通信,交换机和FTP服务器就必须要在同一网络中,通过ping命令检查FTP服务器的连通性。

如果用户正通过控制台或Telnet访问交换机,需确保当前的FTP用户名有效,是一个可以使用FTP下载功能的用户名。

当用户上传配置文件到FTP服务器,用户必须正确配置FTP服务器以接受来自交换机用户的写请求。

更多相关信息请依据选用的FTP服务器,查看相关参考资料。

2.3.3配置举例

FTP 连接

表2-1FTP常用命令表

命令

描述

ftp> ls

用于列出用户目录下所有文件

ftp> put 1.txt

将当前目录下的1.txt文件上传到ftp服务器中

ftp> get 1.txt

ftp服务器中的1.txt文件下载到当前目录

ftp> delete 1.txt

ftp服务器中的1.txt文件删除(ftp服务器有读写权限)

步骤 2基于IPv4FTP连接配置

DUT1# ftp mgmt-if 10.10.25.33

步骤 3基于IPv6FTP连接配置

DUT1# ftp mgmt-if 10001001::81

IPv4网络下载配置文件

步骤 1拷贝配置文件

Switch# copy mgmt-if ftp://test:test@10.10.10.163/ startup-config.conf  flash:/startup-config.conf

步骤 2检查配置

使用下列命令查看配置

Switch# show startup-config

IPv4网络上传配置文件

步骤 1拷贝配置文件

Switch# copy flash:/startup-config.conf mgmt-if ftp://test:test@10.10.10.163/startup-config.conf

IPv6网络下载配置文件

用户名和密码的配置与IPv4网络环境相同,不再赘述。

步骤 1拷贝配置文件

Switch# copy ftp://root: root@2001:1000::2/startup-config.conf  flash:/startup-config.conf

IPv6网络上传配置文件

用户名和密码的配置与IPv4网络环境相同,不再赘述。

步骤 1拷贝配置文件

Switch# copy flash:/startup-config.conf mgmt-if ftp://root:root@2001:1000::2 startup-config.conf

2.4FTP 服务器配置

2.4.1概述

简介

FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式,占用端口号为2021。通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。交换机可以配置为FTP服务端,为其它客户端提供FTP服务。

2.4.2配置举例

在配置FTP server前,必须完成以下操作:

确保交换机到FTP server之间有一个可达路由。如果用户的网络中不存在子网间路由通信,交换机和FTP服务器就必须要在同一网络中,通过ping命令检查FTP服务器的连通性。

确保端口打开,FTP serverclient会在随机端口建立数据连接,需要确保端口状态打开。

FTP server通过交换机配置的用户登录,需要配置登录用户。

FTP SERVER配置

步骤 1进入配置模式

Switch# configure terminal

步骤 2在管理口使能FTP server

Switch(config)# ftp server mgmt-if enable

步骤 3配置交换机系统用户

用户需要配置密码且权限为4

Switch(config)# username admin privilege 4 password admin

步骤 4退出配置模式

Switch(config)# end

步骤 5检查配置

客户端连接FTP server并输入用户名和密码,其中server的管理口IP10.10.10.10.

Switch# ftp mgmt-if 10.10.10.10
Connected to 10.10.10.10.
220---------- Welcome to FTP-SERVER ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 06:41. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (10.10.10.10:LOGIN): admin
331 User admin OK. Password required
Password:
230 OK. Current directory is /
Remote system type is UNIX.
Using binary mode to transfer files.

其它可选配置

1.配置FTP server监听端口,默认21端口

Switch# ftp server port 10000

2.配置FTP server静默时间,默认15分钟

Switch# ftp server time-out 5

3.指定FTP server带内模式源vrf或源IP。指定源IP1.1.1.1,指定源vrftest,指定vrftestIP2.2.2.2

Switch# ftp server source address 1.1.1.1
Switch# ftp server source address vrf test 0.0.0.0
Switch# ftp server source address vrf test 2.2.2.2

2.5TFTP配置

2.5.1概述

简介

TFTPTrivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。 此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。

2.5.2配置举例

在进行上传下载之前,需要执行如下操作:

确保作为TFTP服务器的工作站配置正确。

确保SwitchTFTP服务器的路由可达。如果子网间不存在进行路由通信的路由器,交换机和TFTP服务器必须在同一网络中。ping命令可以检查是否能连接到TFTP服务器。

确保要下载的配置文件在TFTP服务器上的正确目录下。

下载操作,确保该文件的权限设置正确。

上传操作,如果要覆盖服务器上现有的文件(包括空文件),确保该文件的权限设置正确。

IPv4网络下TFTP下载配置文件

Switch# copy mgmt-if tftp://10.10.10.163/startup-config.conf flash:/startup-config.conf

IPv4网络下TFTP上传配置文件

Switch# copy flash:/startup-config.conf mgmt-if tftp://10.10.10.163/startup-config.conf

IPv6网络下TFTP下载配置文件

Switch# copy mgmt-if tftp://2001:1000::2/startup-config.conf flash:/startup-config.conf

IPv6网络下TFTP上传配置文件

Switch# copy flash:/startup-config.conf mgmt-if tftp://2001:1000::2/startup-config.conf

2.6SCP配置

2.6.1概述

简介

SCPSecure Copy,安全拷贝)是SSH协议的一部分,是基于SSH协议的远程文件复制技术,包括从SCP服务器下载文件至本地,或者从本地上传文件至远端scp服务器。用户可以从远程SCP 服务器下载文件到本地来更新交换机的配置,也能够覆盖当前已经存在的文件。用户可以上传配置文件到server作为备份,这个备份也可用作其它同类型的交换机。

2.6.2配置举例

在进行上传下载之前,需要执行如下操作:

确保作为SCP服务器的工作站配置正确。

确保SwitchSCP服务器的路由可达。如果子网间不存在进行路由通信的路由器,交换机和SCP服务器必须在同一网络中。ping命令可以检查是否能连接到SCP服务器。

确保要下载的配置文件在SCP服务器上的正确目录下。

下载操作,确保该文件的权限设置正确。

上传操作,如果要覆盖服务器上现有的文件(包括空文件),确保该文件的权限设置正确。

IPv4网络下SCP 下载配置文件

Switch# copy mgmt-if scp://10.10.10.163/startup-config.conf flash:/startup-config.conf

IPv4网络下SCP 上传配置文件

Switch# copy flash:/startup-config.conf mgmt-if scp://10.10.10.163/startup-config.conf

IPv6网络下SCP 下载配置文件

Switch# copy mgmt-if scp://2001:1000::2/startup-config.conf flash:/startup-config.conf

IPv6网络下SCP 上传配置文件

Switch# copy flash:/startup-config.conf mgmt-if scp://2001:1000::2/startup-config.conf

2.7Telnet配置

2.7.1概述

简介

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程登录主机工作的能力。在终端用户的电脑上使用Telnet程序,用它连接到服务器。终端用户可以在Telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。通过Telnet程序,用户在本地就能控制服务器。要开始一个Telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

2.7.2配置举例

配置通过带内口Telnet到其他交换机

步骤 11 IPv4网络

Switch# telnet 10.10.29.247
Entering character mode
Escape character is '^]'.
Switch #

步骤 22 IPv6网络

Switch# telnet 2001:1000::71
Entering character mode
Escape character is '^]'.
Switch #

配置通过管理口Telnet到其他交换机

步骤 11 IPv4网络

Switch# telnet mgmt-if 10.10.29.247
Entering character mode
Escape character is '^]'.
Switch #

步骤 22 IPv6网络

Switch# telnet mgmt-if 2001:1000::2
Entering character mode
Escape character is '^]'.
Switch #

配置交换机的Telnet服务

步骤 1进入配置模式

Switch# configure terminal

步骤 2使能Telnet服务

Switch(config)# service telnet enable

步骤 3退出配置模式

Switch(config)# exit

2.8SSH配置

2.8.1概述

简介

SSH Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议。当设备进行远程访问时,SSH 提供了比Telnet 更强大的加密功能,SSH 支持数据加密标准(DES)加密算法,三重DES3DES)加密算法,并且提供基于密码的用户认证。

SSH 协议采用了典型的客户端/服务器模式,并基于TCP 协议协商建立用于保护数据传输的会话通道。设备既可以支持 SSH 服务器功能,接受多个SSH 客户端的连接,也可以支持SSH 客户端功能,允许用户通过设备与远程SSH 服务器建立SSH 连接。

2.8.2配置举例

SSH system application

图2-1SSH system application

RSA密钥登录配置

1.方式1 交换机作为客户端创建RSA key

步骤 1进入配置模式

Switch# configure terminal

步骤 2创建一个RSA key

Switch(config)# rsa key rsakey1 generate

步骤 3导出一个名字为rsakey1.pub的公钥到Flash目录

Switch(config)# rsa key rsakey1 export url flash:/rsakey1.pub public ssh2

步骤 4退出配置模式

Switch(config)# exit

2.方式2 使用支持SSH2.0的客户端或者客户端软件创建RSA key

[root@test1 tftpboot]$ ssh-keygen -t rsa -f rsakey1
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in rsa1.
Your public key has been saved in rsa1.pub.
The key fingerprint is:
SHA256:j6S/gu8/+JJ22mydprhZ8UNQt7myOHONe/mD3onmQoY root@test1
The key's randomart image is:
+---[RSA 2048]----+
|          . .    |
|         . . o   |
|        .   o    |
|         .   .   |
|        S.o .    |
|       oEBo=     |
|     ..o*+B..o   |
|    . *B++=o=o.. |
|     +BXO=.*+.+. |
+----[SHA256]-----+

3.服务器导入SSH RSA公钥

步骤 1将客户端生成的rsakey1.pub公钥文件拷贝到服务器的flash目录下

步骤 2进入配置模式

Switch# configure terminal

步骤 3导入一个名字为rsakey1.pub的公钥

Switch(config)# rsa key importKey import url flash:/rsakey1.pub public ssh2

步骤 4创建用户名密码

Switch(config)# username aaa privilege 4 password abc

步骤 5指定SSH用户名为aaaRSA公钥

Switch(config)# username aaa assign rsa key importKey

步骤 6退出配置模式

Switch(config)# exit

4.客户端使用SSH RSA私钥连接设备

方式1 使用交换机作为客户端连接服务器

Switch# ssh -l aaa -i rsakey1 10.10.39.101

方式2 SSH客户端连接交换机

[root@test1 tftpboot]# ssh -i rsakey1 aaa@10.10.39.101
Switch#

ED25519密钥登录配置

1.方式1 交换机作为客户端创建ED25519 key

步骤 1进入配置模式

Switch# configure terminal

步骤 2创建一个ed25519 key

Switch(config)# ed25519 key ed25519key1 generate

步骤 3导出一个名字为ed25519key1.pub的公钥到Flash目录

Switch(config)# ed25519 key ed25519key1 export url flash:/ed25519key1.pub public ssh2

步骤 4退出配置模式

Switch(config)# exit

2.方式2 使用支持SSH2.0的客户端或者客户端软件创建ED25519 key

[root@test1 tftpboot]$ ssh-keygen -t ed25519 -f ed25519key1
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ed25519key1.
Your public key has been saved in ed25519key1.pub.
The key fingerprint is:
SHA256:5hcjel/aGbHUxFaFN/k4hNG0+vCRrz8nFnkz6WMsT0c root@test1
The key's randomart image is:
+--[ED25519 256]--+
|            .=..=|
|            ..+=.|
|             .=oo|
|             =o..|
|        S o = +oE|
|       + . + *oB.|
|      . o . + =+=|
|       . o + ++Bo|
|          o o.=+=|
+----[SHA256]-----+

3.服务器导入ED25519公钥

步骤 1将客户端生成的ed25519key1.pub公钥文件拷贝到服务器的flash目录下

步骤 2进入配置模式

Switch# configure terminal

步骤 3导入一个名字为ed25519key1.pub的公钥

Switch(config)# ed25519 key importKey import url flash:/ed25519key1.pub public ssh2

步骤 4创建用户名密码

Switch(config)# username aaa privilege 4 password abc

步骤 5指定SSH用户名为aaaED25519公钥

Switch(config)# username aaa assign ed25519 key importKey

步骤 6退出配置模式

Switch(config)# exit

4.客户端使用SSH ED25519私钥连接设备

方式1 使用交换机作为客户端连接服务器

Switch# ssh -l aaa -i ed25519key1 10.10.39.101

方式2 SSH客户端连接交换机

[root@test1 tftpboot]# ssh -i ed25519key1 aaa@10.10.39.101
Switch#

用户名&密码登录配置

1.服务器创建用户名密码

步骤 1进入配置模式

Switch# configure terminal

步骤 2创建用户名和密码

Switch(config)# username testname privilege 4 password aaa

2.客户端使用SSH连接设备

[root@test1 tftpboot]# ssh testname@10.10.39.101
testname@10.10.39.101's password:
Switch#

2.9时间与时区配置

2.9.1概述

简介

为了保证与其他设备协调工作,用户需要将系统时间设置准确。在没有其他外部时间源的情况下,您可以在系统启动后手动的设置时间和日期。

如果您还有其他同步时间的方式可以选择(比如NTP),则不建议使用手动设置的时间。

外部时间源同步请参见《网络管理配置指导》章节中的NTP/PTP部分。

注:部分设备不支持PTP,以具体型号实物为主。

2.9.2配置举例

手动配置时间

步骤 1进入配置模式

Switch# configure terminal

步骤 2配置时间

Switch(config)# clock set datetime 11:30:00 10 26 2013

步骤 3配置时区

clock set timezone beijing add 8

步骤 4配置夏令时(可选)

Switch(config)# clock set summer-time dst date 6 1 2013 02:00:00 10 31 2013 02:00:00 120

步骤 5退出配置模式

Switch(config)# exit

步骤 6检查配置

使用下列命令显示当前的时间日期信息

Switch# show clock detail
13:31:10 dst Sat Oct 26 2013
Time zone: (GMT + 08:00:00)  beijing
Summer time starts at beijing 02:00:00  06/01/2013
Summer time ends at dst 02:00:00  10/31/2013
Summer time offset:  120 minutes

2.10证书配置

2.10.1概述

简介

交换机的高级功能特性需要使用证书认证才可以使用,每台交换机有自己专属的证书来防止未授权的用户使用高级特性造成未知错误。一共有3类证书:Enterprise Base, Metro Service, and Metro Advanced。不同种类的证书包含不同的功能特性,用户可以根据需要来申请不同种类的证书。如果交换机没有证书,该交换机只能使用L2相关的功能特性。 不同的交换机不能共享同一份证书,为了能够获得指定交换机的证书,首先需要生成指定交换机的设备唯一标识符(UDI), 将UDI发送给设备商来申请该交换机的证书。获得证书后将其应用到对应交换机上即可。

2.10.2配置举例

步骤 1为当前交换机创建UDI并且发送到FTP服务器上

Switch# generate device identifier mgmt-if ftp://test:test@10.10.25.33/device.udi

步骤 2申请证书

UDI文件发送给设备商,设备商将根据客户需求来生成相应的证书并发送给客户。

步骤 3使用证书

将证书从FTP 服务器拷贝到本地,然后重启系统。

Switch# copy mgmt-if ftp://test:test@10.10.25.33/device.lic flash:/device.lic
Switch# reload

必须重启交换机才能让证书生效。

如果交换机没有有效证书,只能使用L2相关功能特性

如果交换机有多张有效证书,则可以使用所有证书中包含的功能特性。

步骤 4命令验证

使用下列命令,显示当前的证书信息:

Switch# show license
License files:
======================================================================
flash:/ma.lic:
  Created Time: Fri Dec  6 17:22:23 CST 2013
  Vendor:       switchVendor
  Customer:     switchCustomer
  Device MAC:   00:1E:08:09:03:00
  Feature Set:  QINQ MVR ERPS MEF ETHOAM
                VPWS VPLS HVPLS SMLK TPOAM
                OSPF PIM_SM IGMP VRF MPLS
                LDP BGP RSVP OSPF_TE EXTEND_ACL
                PTP BFD SSM IPV6 OSPF6
                PIM_SM6 MVR6 RIPNG TUNNEL_V6

2.11RPC API配置

2.11.1概述

简介

RPC API服务给用户通过软件远程控制交换机的能力, 目前只支持JSON-RPC over HTTP HTTP基本认证。

原理描述

RPC API 规范:

RPC API服务, 使用了标准的JSON-RPC规范。可以通过JSON RPC method: executeCmds’执行交换机的CLI命令行。默认初始模式为EXEC(#)特权模式。

用户需要通过发送JSON-RPC (over HTTP)请求URL: http://:/command-api, 请求和返回的JSON-RPC格式如下:

1.JSON-RPC Request

{
    "params":[                                         命令参数
        {
            "format":"text",                           期望命令返回格式, 可以是’text’或者’json, 默认’text
            "version":1,                               命令版本号
            "cmds":[                                   命令列表
                "show run",                            命令行1
                "config t",                            命令行2
                "vlan database",                       命令行3
                "vlan 1-8",                            命令行4
                "interface eth-0-1",                   命令行5
                "switchport mode trunk",               命令行6
                "switchport trunk allowed vlan add 2", 命令行7
                "shutdown",                            命令行8
                "end",                                 命令行9
                "show interface switchport"            命令行10
            ]
        }
    ],
    "jsonrpc":"2.0",                                   JSON RPC协议版本号
    "method":"executeCmds",                            运行交换机CLI命令的方法
    "id":"70853aff-af77-420e-8f3c-fa9430733a19"        JSON RPC协议中的UID
}

2.JSON-RPC Response

{
    "jsonrpc":"2.0",                                        JSON RPC协议版本号
    "id":"70853aff-af77-420e-8f3c-fa9430733a19",            JSON RPC协议中的UID
    "result":[                                              JSON RPC返回值列表
        {
            "sourceDetails":"version 5.1.6.fcs\n!\n ",     命令行1的返回值。
                                                            如果运行成功, 原始文本输出在”sourceDetails” 属性中。
            "errorCode":-1003,                              如果有错, 会输出在
            "errorDesc":"unsupported command",             warnings/errorCode/errorDesc属性中。
            "warnings":"% Invalid ",                             
                                                            JSON格式化对象也会输出到这里。
        },
        { },                                                命令行2的返回值。
        { },                                                命令行3的返回值。
        { },                                                命令行4的返回值。
        { },                                                命令行5的返回值。
        { },                                                命令行6的返回值。
        { },                                                命令行7的返回值。
        { },                                                命令行8的返回值。
        { },                                                命令行9的返回值。
        {
            "sourceDetails":" Interface name          : eth-0-1\n Switchport mode         : trunk\n \n"
        }                                                   命令行10的返回值。
    ]
}

3.Python Client代码示例

以标准request库为例, python脚本示例代码如下:

import requests
import json

def http_post(host,port,cmd_list):
    url='http://%s:%s/command-api' % (host,port)
    values =\
        {
            "params":[                                               
                {
                    "format":"text",                                    
                    "version":1,                                
                    "cmds":cmd_list
                }
            ],
            "jsonrpc":"2.0",                                                 
            "method":"executeCmds", 
          "id":"70853aff-af77-420e-8f3c-fa9430733a19"  
        }
    headers = {"Content-Type":"application/json"}
    jdata = json.dumps(values)
    r = requests.post(url,data=jdata,headers=headers)
    print(r.status_code)
    return r

if __name__ == "__main__":
    cmd_list = ["show run", "config t", "vlan database", "vlan 1-8", "interface eth-0-1", "switchport mode trunk", "switchport trunk allowed vlan add 2", "shutdown", "end", "show interface switchport"]
    while cmd_list:
        resp = http_post(sys.argv[1],sys.argv[2],cmd_list[:999])
        payload = resp.json()
        formatted_payload = json.dumps(payload, indent=4)
        print(formatted_payload)
        cmd_list = cmd_list[999:]

将上述python代码保存为rpc_client.py文件,随后使用python3 rpc_client.py HostIP Port来执行该代码。其中HostIPRpcServer设备的IP地址,PortRpcServer监听的端口号(默认为80)。

4.错误码

下面列出了JSON-RPC 2.0的错误码:

错误码

描述

-32700

JSON 解析错误

-32600

无效请求

-32601

方法无效

-32602

无效参数

-32603

内部错误

下面列出了RPC-API的错误码:

错误码

描述

-1000

普通错误

-2001

不支持的JSON RPC API版本

-2002

JSON RPC中必须指定’params’ 和 ‘cmds

-2003

不支持的JSON返回格式

-3001

命令执行错误: 超时

-3002

命令执行错误: 不支持该命令

-3003

命令执行错误: 该命令未授权

-3004

命令执行错误: 找不到该命令

-3005

命令执行错误: 不能够转换为JSON格式

-3006

命令执行错误: 命令行数目太少

-3007

命令执行错误: 命令行数目太多

2.11.2配置举例

配置RPC API服务

用户可以按照下列步骤启用RPC API服务, 默认使用80端口。

步骤 1进入配置模式

Switch# configure terminal

步骤 2启动RPC API 服务

Switch(config)# service rpc-api enable

使用下列命令停止RPC API服务:

Switch(config)# service rpc-api disable

步骤 3退出配置模式

Switch(config)# end

配置RPC API服务的HTTP

用户可以配置RPC API服务器的HTTP认证。 目前只支持HTTP Basic基本认证, 用户认证失败将会返回401 状态码。

步骤 1进入配置模式

Switch# configure terminal

步骤 2配置用户名和密码,启用HTTP认证

Switch(config)# username myuser password mypass privilege 4
Switch(config)# service rpc-api auth-mode basic

使用下列命令关闭认证:

Switch(config)# no service rpc-api auth-mode

启用或关闭HTTP认证后, 用户需要手动重启RPC API服务, 或者重启交换机,配置才能生效。启用RPC API后会占用2imish资源下发命令,当是有show usersRPC API占用imishidle time一直是0

步骤 3退出配置模式

Switch(config)# end

步骤 4检查配置

Switch# show services rpc-api
RPC API service configuration:
Server State        : enable
Port                : 80
Authentication Mode : basic
VRF                 : default

2.12HTTP配置

2.12.1概述

简介

本章介绍交换机HTTP相关配置,便于通过WEB登录设备。

2.12.2配置举例

准备工作

将一个合法的web镜像上传到flash:目录。 参考FTPTFTP用法介绍。

配置交换机的HTTP服务

步骤 1进入配置模式

Switch# configure terminal

步骤 2加载WEB镜像

Switch(config)# http server load flash:/webImage.bin

步骤 3配置HTTP服务器地址 (可选)

此步骤用于配置Web服务器的源地址,仅支持环回口地址。 Web服务器的源地址指定以后,只能通过该地址登陆web。 如不指定Web服务器的源地址,可使用telnet登陆设备时相同的IP地址来登陆web。 不管是否指定,都需要在设备和PC客户端之间有路由可达。

Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.1.100/32
Switch(config-if)# quit
Switch(config)# http server source address 192.168.1.100
This operation will cause all the online HTTP(S) users to be offline.
Continue? [yes/no]: yes
Switch(config)# ip route 0.0.0.0/0 192.168.1.1

步骤 4使能HTTP服务

Switch(config)# service http enable
This operation will cause all the online HTTP(S) users to be offline.
Continue? [yes/no]: yes

步骤 5退出配置模式

Switch(config)# exit

步骤 6通过浏览器登录web页面

在地址栏输入设备IP地址,登录页面。

2.13诊断信息配置

2.13.1概述

简介

Diagdiagnostic-information)模块主要用于系统信息收集、状态统计、寄存器查看,提供给用户进行交换机信息诊断。总而言之,为用户提供详细、明确的信息用于问题诊断。

2.13.2配置举例

步骤 1进入配置模式

Switch# configure terminal

步骤 2使能diagnostic-information discard功能

Switch(config)# diagnostic-information discard enable

步骤 3退出配置模式

Switch(config)# end

步骤 4查看报文丢失原因

Switch# show diagnostic-information discard
Diagnostic-Information Discard:
Drop-Reason                    Description
------------------------------+------------------------------------
DROP_TTL_CHK                   TTL check fail
DROP_ACL_DENY                  Acl deny
DROP_PKT_ERR                   Packet check error
DROP_ISOLATE_CHK               Port isolate check fail
DROP_TRANSIT_DISABLE           Transit disable
DROP_IP_CHK                    Ip address or packet check fail
DROP_VLAN_FILTER               Vlan filtering
DROP_STP_CHK                   Stp check fail
DROP_CHKSUM_ERR                Checksum error
DROP_PARSER_ERR                Parser error
DROP_TRAFFIC_MANAGER           Trafic manager check fail
DROP_NET_RX                    Netrx check fail
DROP_NET_TX                    Nettx check fail
Others                         Other drop reasons