%# -*- coding: utf-8-unix -*-

\chapter{华为网络仿真平台ENSP简介}
\label{app:ENSP}

掌握华为ENSP软件的安装、操作和使用；熟悉华为模拟设备的基本配置及其配置命令；
掌握常见问题的解决方法。

\subsection{本地安装华为ENSP软件}
可在本机安装华为ENSP软件。

安装版本如选择的是华为ENSP17年版本的，
则安装包里自带所需软件，则无需另行下载，
默认4款软件全部安装；如选择的是华为ENSP最新版即19年的版本，
在安装之前须自行下载安装以下3款软件且最好版本号一致。

eNSP的正常实验依赖与WinPcap、Wireshark和VirtualBox三款软件，
支持的版本如下表。

\renewcommand{\arraystretch}{1.5}
\begin{table}[!ht]
  \small
  \centering
  \caption{华为ENSP需安装软件及对应版本号}
  \label{tab:a:wireshark_eth-format}
  \begin{tabular}{|c|c|} \hline
    \heiti 软件类别 & \heiti 版本号\\ \hline
    WinPcap & 4.1.3\\ \hline
    Wireshark & 2.6.6\\ \hline
    VirtualBox & 4.2.X-5.2.X\\ \hline
  \end{tabular}
\end{table}

\textbf{安装注意事项：}先装3款基础软件后再安装华为ENSP，
所有安装都建议默认安装，最好不要更改安装盘，更不要设置中文安装目录，
否则可能使用时会出现问题，则只能重装。

\subsection{华为ENSP操作和使用}
华为ENSP的操作和使用，强烈建议查看其帮助，并不断实践，如图：
\begin{figure}[!ht]
  \centering
  \includegraphics[width=13cm]{ENSP-UI}
  \caption{华为ENSP界面}
  \label{fig:a1_ENSP-ui}
\end{figure}

\begin{figure}[!ht]
  \centering
  \includegraphics[width=13cm]{ENSP-help}
  \caption{华为ENSP帮助界面}
  \label{fig:a1_ENSP-help}
\end{figure}

 \subsection{华为模拟设备的基本配置及其配置命令}
 命令行接口是用户对命令行使用的常用工具。
 通过命令行接口输入命令，您可以对交换机进行配置和管理。
 用户登录到交换机出现命令行提示符后，
 即进入命令行接口CLI（Command Line Interface）。
 命令行接口是用户与交换机进行交互的常用工具。
 系统向用户提供一系列命令，
 用户可以通过命令行接口输入命令，对交换机进行配置和管理。

\subsubsection{命令视图}

命令视图就是执行命令行的界面环境。
系统的所有命令都注册在某个（或某些）命令视图下，
只有在相应的视图下才能执行该视图下的命令。

\renewcommand{\arraystretch}{1.5}
\begin{table}[!ht]
  \small
  \centering
  \caption{命令视图分类表}
  \label{tab:a:ensp_command_ui}
  \begin{tabular}{|c|c|} \hline
    \heiti 视图 & \heiti 表现形式\\  \hline
    用户视图（缺省配置） & \texttt{<Quidway>}\\ \hline
    系统视图 & \texttt{[Quidway]}\\ \hline
    接口视图 & \texttt{[Quidway-ethernetX]}\\ \hline
    VLAN视图 & \texttt{[Quidway-VLANX]}\\ \hline
  \end{tabular}
\end{table}

\begin{itemize}
  \item 与交换机建立连接，如果此交换机是缺省配置，则进入用户视图，在屏幕上显示：
  \begin{code}[text]
    <Quidway>
  \end{code}
  \item 键入system-view后回车，进入系统视图。
  \begin{code}[text]
    <Quidway> system-view
    [Quidway]
  \end{code}
  \item 在系统视图下键入interface ethernetX/Y/Z，则可进入interface视图。
  \begin{code}[text]
    [Quidway] interface ethernetX/Y/Z
    [Quidway-ethernetX/Y/Z]
  \end{code}
  \item 返回到系统视图
  \begin{code}[text]
    [Quidway-ethernetX/Y/Z] quit
  \end{code}
  \item 在系统视图下键入VLAN   XX，则可进入VLAN视图。
  \begin{code}[text]
    [Quidway] VLAN 10
    [Quidway-VLAN10]
  \end{code}
  \item 返回到系统视图
  \begin{code}[text]
    [Quidway-VLAN10]quit
    [Quidway]
  \end{code}
\end{itemize}

说明：命令行提示符“Quidway”是缺省的主机名（sysname）。
通过提示符可以判断当前所处的视图，例如：“<>”表示用户视图，
“[]”表示除用户视图以外的其它视图。

\subsubsection{命令行操作基本技巧}

如果需要联机帮助可以随时键入“？”。

Ctrl+Z：(在其他模式下)保存设置并退出到特权模式

Tab键的功用：完成一个命令的输入。在超级终端中，可能不支持某些组合键。

\textbf{注：}在不引起歧义的情况下，命令和参数均可以缩写

\textbf{在线帮助}

输入命令行或进行配置业务时，在线帮助可以提供在配置手册之外的实时帮助。
命令行接口提供如下三种在线帮助：

\begin{itemize}
  \item 完全帮助
  \item 部分帮助
  \item 命令行错误信息
\end{itemize}

\renewcommand{\arraystretch}{1.5}
\begin{table}[!ht]
  \small
  \centering
  \caption{帮助类型与对应命令表}
  \label{tab:a:ensp_help}
  \begin{tabular}{|m{2cm}<{\centering}|m{5cm}<{\centering}|m{6cm}<{\centering}|} \hline
    \heiti 帮助类型 & \heiti 表现形式 & \heiti 备注\\ \hline
    \multirow{2}{*}{完全帮助} & \texttt{<Quidway>?} & 相应命令模式下\\ \cline{2-3}
    & \texttt{[Quidway] sysname ?} & 键入命令，后接以空格分隔的“?”\\ \hline
    部分帮助 & \texttt{<Quidway>d?} & 键入一字符串，其后紧接“?”，列出以该字符串开头的所有关键字\\ \hline
    命令行错误信息 & & 如未通过语法检查则系统会向用户报告错误信息\\ \hline
  \end{tabular}
\end{table}

\begin{enumerate}
  \item \textbf{完全帮助}

  应用完全帮助，系统可以协助您在输入命令行时，给予全部关键字或参数的提示。

  命令行的完全帮助可以通过以下3种方式获取：

  在所有命令视图下，键入“?”获取该命令视图下所有的命令及其简单描述。

  \begin{code}[text]
    <Quidway>?
  \end{code}

  键入命令，后接以空格分隔的“?”，如果该位置为关键字，则列出全部关键字及其描述。
  举例如下。
  \begin{code}[text]
    [Quidway-ui-vty0] authentication-mode ?
    aaa       AAA authentication
    none      Login without checking
    password  Authentication through the password of a user terminal interface
    [Quidway-ui-vty0] authentication-mode aaa ?
    <cr>
    [Quidway-ui-vty0] authentication-mode aaa
  \end{code}

  其中aaa、none和password是关键字，
  AAA authentication、
  Login without checking和Authentication through the password of a user terminal interface
  是对关键字的分别描述。
  <cr>表示该位置没有关键字或参数，在紧接着的下一个命令行该命令被复述，
  直接键入回车即可执行。
  键入命令，后接以空格分隔的“?”，如果该位置为参数，
  则列出有关的参数名和参数描述。举例如下。

  \begin{code}[text]
    <Quidway>system-view
    [Quidway] sysname ?
  \end{code}

  \begin{code}[text]
    TEXT  Host name(1 to 246 characters)
  \end{code}

  其中TEXT是参数名，Host name(1 to 246 characters)是对参数的描述。

  \item 部分帮助

  应用部分帮助，系统可以协助您在输入命令行时，
  给予以该字符串开头的所有关键字或参数的提示。

  背景信息

  命令行的部分帮助可以通过以下三种方式获取。

  操作步骤

  键入一字符串，其后紧接“?”，列出以该字符串开头的所有关键字。

  \begin{code}[text]
    <Quidway>d?
    debugging                               delete
    dir                                     display
  \end{code}

  键入一命令，后接一字符串紧接“?”，列出命令以该字符串开头的所有关键字。
  \begin{code}[text]
    <Quidway>display b?
    Bfdbgp
    Bootrombpdu
    bpdu-tunnel buffer
  \end{code}

  输入命令的某个关键字的前几个字母，按下<tab>键，
  可以显示出完整的关键字，前提是这几个字母可以唯一标示出该关键字，
  否则，连续按下<tab>键，可出现不同的关键字，用户可以从中选择所需要的关键字。

\item 命令行错误信息

  所有用户键入的命令，如果通过语法检查，则正确执行，
  否则系统将会向用户报告错误信息。常见错误信息参见表\ref{tab:a:ensp_error}：

  \begin{table}[!ht]
    \small
    \centering
    \caption{命令行常见错误信息表}
    \label{tab:a:ensp_error}
    \begin{tabular}{|m{4cm}<{\centering}|m{5cm}<{\centering}|} \hline
      \heiti 英文错误信息 & \heiti 错误原因\\ \hline
      \multirow{2}{*}{Unrecognized command} & 没有查找到命令\\ \cline{2-2}
      & 没有查找到关键字\\ \hline
      \multirow{2}{*}{Wrong parameter} & 参数类型错\\ \cline{2-2}
      & 参数值越界\\\hline
      Incomplete command & 输入命令不完整\\\hline
      Too many parameters & 输入参数太多\\\hline
      Ambiguous command & 输入命令不明确\\ \hline
    \end{tabular}
  \end{table}

  \textbf{注意：}可以用display~cur检查当前系统中已经配置的命令。
  如果命令输出过多，显示一屏幕后会暂停，
  这时可以用空格键翻页，用q或者ctrl+c退出。
\end{enumerate}

 \subsection{常见问题的解决方法}

 模拟器毕竟是模拟的，有问题是难免的，
 如下图令人崩溃的设备启动后进入命令配置界面的等待。
 如长时间都不能正常工作，建议新建一台设备，如正常后替代失常设备，
 重新连线。就本人多年指导经验，各种问题会小概率出现，
 默认重装，更换版本则解决地较为彻底。

 \begin{figure}[!ht]
  \centering
  \includegraphics[width=10cm]{error}
  \caption{令人崩溃的等待}
  \label{fig:a1_error}
\end{figure}
