「Huawei VRP」- Telnet

  CREATED BY JENKINSBOT

解决方案

应用场景

为方便通过命令行管理设备,可以使用 Telnet 协议对设备进行管理;

Telnet 协议与使用 Console 接口管理设备不同,无需专用线缆直连设备的 Console 接口,只要 IP 地址可达、能够和设备的 TCP 23 端口通信即可;

支持通过 Telnet 协议进行管理的设备被称为 Telnet 服务器端,而对应的终端则被称为 Telnet 客户端。很多网络设备同时支持作为 Telnet 服务器端、Telnet 客户端;

概念术语

VTY(Virtual Type Terminal,虚拟类型终端)

当用户使用 Console 接口、Telnet 等方式登录设备的时候,系统会分配一个用户界面(user-interface)来管理、监控设备与用户间的当前会话,每个用户界面视图可以配置一系列参数用于指定用户的认证方式、登录后的权限级别,当用户登录设备后将会受这些参数限制;

Telnet 所对应的用户界面类型为 VTY(Virtual Type Terminal,虚拟类型终端);

配置使用

配置示例

针对 eNSP 环境:

[Huawei] telnet server enable

[Huawei] aaa
[Huawei-aaa] local-user huawei password irreversible-cipher Huawei@123
[Huawei-aaa] local-user huawei privilege level 15
[Huawei-aaa] local-user huawei service-type telnet

[Huawei] user-interface vty 0 4
[Huawei-ui-vty0-4] authentication-mode aaa
[Huawei-ui-vty0-4] protocol inbound { all | telnet } # 缺省情况下,VTY 用户界面支持的协议是 SSH 和 Telnet

补充说明:
1)在物理设备上操作时,操作过程存在细微差异,需要参考设备手册,以获取配置方法;

命令说明

# 开启 Telnet 服务器端功能
# 使能设备的 Telnet 服务器端功能;
# 缺省情况下,设备的 Telnet 服务器端功能处于去使能状态,undo telnet server enable 即可重新关闭 Telnet 服务器端功能;
[Huawei] telnet server enable

# 进入用户视图
# 配置 VTY 用户界面支持的协议
[Huawei] user-interface vty first-ui-number [ last-ui-number ]
[Huawei-ui-vty0-4]] protocol inbound { all | telnet } # 缺省情况下,VTY 用户界面支持的协议是 SSH 和 Telnet

# 配置认证方式以及密码认证方式下的认证密码
# 缺省情况下,无默认认证方式,需要进行手动配置;
[Huawei-ui-vty0-4] authentication-mode {aaa | none | password}
[Huawei-ui-vty0-4] set authentication password cipher

# 不同 VRP 版本执行 set authentication password cipher 命令有差异:
# 某些版本需要回车后输入密码,某些版本可直接在命令后输入密码;

常见问题处理

Huawei Telnet 登录故障常见原因有

路由不可达,客户端和服务器无法建立 TCP 连接;
服务器未开启 Telnet 功能;
登录设备的用户数到达了上限;
VTY 用户界面下绑定了 ACL;
VTY 用户界面下允许接入的协议不正确。如配置为 protocol inbound ssh 时,使用 Telnet 将无法登录;

从 Console 口登录到 R2,查询设备是否开启 Telnet 服务:

[R2]display telnet server status
 TELNET IPV4 server                      	:Enable
 TELNET IPV6 server                      	:Enable
 TELNET server port                    		:23

查看 VTY 下是否允许 Telnet:

[R2-ui-vty0-4]display this
user-interface vty 0 4
 authentication-mode aaa
 protocol inbound ssh

Linux,Telnet 连接交换机设备,无法删除

ASCII Code – The extended ASCII table

问题描述:
在终端下,按键 Backspace 无法删除字符,需要 Ctrl+Backspace 或 Ctrl+H 才能删除字符;

原因分析:
在 Windows 下,通过 Wireshark 抓包,Backspace 发送 0x08(ASCII Code/BS),也就是 Backspace;
在 Linux 下,通过 Wireshark 抓包,Backspace 发送 0x7f(ASCII Code/DEL),也就是 Delete;

解决方案:
1)在 GNOME Terminal 中,Preferences/Profiles/<Your Profile>/Compatibility/Backspace key generates: Control-H
2)对于其他终端或应用,参考对应文档,修改 Backspace 发送的键码;

Telnet 偶尔无法连接设备

在通过 telnet 设备时,无法连接设备,一直提示 Trying 192.168.56.1… 信息,可能原因如下:
1)连接数超过 Max TTY 限制:display user-interface maximum-vty
2)idle-timeout 时间过久,断开连接的客户端没有真正的释放连接;(我们也是猜测)

# 09/01/2021 具体原因我们暂不清楚,我们先将 idle-timeout 设置为 4.5 分钟(默认 5 分钟),并观察一段时间;此外,我们看到 Some packets are dropped by cpcar on the MPU 日志,而 Packet-type 与 telnet 相关,所以我们也猜测是 CPCAR 的设置导致的(还是频繁连接而引发问题);

# 09/02/2021 今天,我们设置 telnet 仅允许内网接口连接(telnet server permit interface …),然后再观察一段时间。如果不再出现问题,则多半是因为被攻击的原因(在默认配置中,公网能够访问 Telnet 端口,虽然连接被重置,但是依旧会建立 TCP 连接,存在被攻击的可能);