更新时间: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
步骤 2按ctrl + 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服务器下载一个交换机的配置文件以升级交换机的配置,只需用新的文件覆盖当前的启动配置文件即可。交换机配置文件上传到服务器可以起到备份作用,如后续需要,可下载到本交换机或者相同类型的交换机,以更新交换机的配置。
原理描述
FTP(File 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基于IPv4的FTP连接配置
DUT1# ftp mgmt-if 10.10.25.33
步骤 3基于IPv6的FTP连接配置
DUT1# ftp mgmt-if 1000:1001::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的协议,采用客户/服务器模式,占用端口号为20和21。通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。交换机可以配置为FTP服务端,为其它客户端提供FTP服务。
2.4.2配置举例
在配置FTP server前,必须完成以下操作:
• 确保交换机到FTP server之间有一个可达路由。如果用户的网络中不存在子网间路由通信,交换机和FTP服务器就必须要在同一网络中,通过ping命令检查FTP服务器的连通性。
• 确保端口打开,FTP server和client会在随机端口建立数据连接,需要确保端口状态打开。
• 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的管理口IP为10.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。指定源IP为1.1.1.1,指定源vrf为test,指定vrf为test且IP为2.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概述
简介
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。 此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。
2.5.2配置举例
在进行上传下载之前,需要执行如下操作:
确保作为TFTP服务器的工作站配置正确。
确保Switch到TFTP服务器的路由可达。如果子网间不存在进行路由通信的路由器,交换机和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概述
简介
SCP(Secure Copy,安全拷贝)是SSH协议的一部分,是基于SSH协议的远程文件复制技术,包括从SCP服务器下载文件至本地,或者从本地上传文件至远端scp服务器。用户可以从远程SCP 服务器下载文件到本地来更新交换机的配置,也能够覆盖当前已经存在的文件。用户可以上传配置文件到server作为备份,这个备份也可用作其它同类型的交换机。
2.6.2配置举例
在进行上传下载之前,需要执行如下操作:
确保作为SCP服务器的工作站配置正确。
确保Switch到SCP服务器的路由可达。如果子网间不存在进行路由通信的路由器,交换机和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到其他交换机
步骤 1例1 IPv4网络
Switch# telnet 10.10.29.247
Entering character mode
Escape character is '^]'.
Switch #
步骤 2例2 IPv6网络
Switch# telnet 2001:1000::71
Entering character mode
Escape character is '^]'.
Switch #
配置通过管理口Telnet到其他交换机
步骤 1例1 IPv4网络
Switch# telnet mgmt-if 10.10.29.247
Entering character mode
Escape character is '^]'.
Switch #
步骤 2例2 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)加密算法,三重DES(3DES)加密算法,并且提供基于密码的用户认证。
SSH 协议采用了典型的客户端/服务器模式,并基于TCP 协议协商建立用于保护数据传输的会话通道。设备既可以支持 SSH 服务器功能,接受多个SSH 客户端的连接,也可以支持SSH 客户端功能,允许用户通过设备与远程SSH 服务器建立SSH 连接。
2.8.2配置举例
图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用户名为aaa的RSA公钥
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用户名为aaa的ED25519公钥
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来执行该代码。其中HostIP为RpcServer设备的IP地址,Port为RpcServer监听的端口号(默认为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后会占用2个imish资源下发命令,当是有show users时RPC API占用imish的idle 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:目录。 参考FTP或TFTP用法介绍。
配置交换机的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概述
简介
Diag(diagnostic-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