本文档说明如何检索通过简单网络管理协议 (SNMP) 连接到思科设备 TTY 线路的用户的相关信息。 本文档还介绍所有可能的对象标识符 (OID) 以及如何使用 SNMP 清除特定 TTY 线路。
使用本文档中的信息之前,请确保满足以下要求:
了解如何查看有关思科设备的 TTY 信息。
SNMP walk、get 和 set 命令的一般用途。
了解如何在思科设备上配置 SNMP。
本文档适用于运行常规 Catalyst 操作系统 (OS) 或支持 OLD-CISCO-TS-MIB 的 Catalyst IOS 的思科路由器和交换机。
注意:默认情况下,NET-SNMP中不加载OLD-CISCO-TS-MIB。如果在系统上未加载管理信息库 (MIB),则必须使用 OID 而不是对象名称
本文档中的信息基于下列软件和硬件版本:
运行 12.2(13a) 的路由器 c3640
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
1.3.6.1.4.1.9.2.9.1 (OLD-CISCO-TS-MIB) tsLines OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Number of terminal lines on this device. Includes virtual lines." ::= { lts 1 } 1.3.6.1.4.1.9.2.9.2.1.1 (OLD-CISCO-TS-MIB) tsLineActive OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Boolean whether this line is active or not." ::= { ltsLineEntry 1 } 1.3.6.1.4.1.9.2.9.2.1.2 (OLD-CISCO-TS-MIB) tsLineType OBJECT-TYPE SYNTAX INTEGER { unknown(1), console(2), terminal(3), line-printer(4), virtual-terminal(5), auxiliary(6) } ACCESS read-only STATUS mandatory DESCRIPTION "Type of line." ::= { ltsLineEntry 2 } 1.3.6.1.4.1.9.2.9.2.1.21 (OLD-CISCO-TS-MIB) tsLineTimeActive OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The time in seconds since line was activated." ::= { ltsLineEntry 21 } 1.3.6.1.4.1.9.2.9.2.1.18 (OLD-CISCO-TS-MIB) tsLineUser OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "TACACS user name,if TACACS is enabled, of user on this line." ::= { ltsLineEntry 18 } 1.3.6.1.4.1.9.2.9.4 (OLD-CISCO-TS-MIB) tsMsgTtyLine OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "tty line to send the message to. -1 sends the messages to all tty lines." ::= { lts 4 } 1.3.6.1.4.1.9.2.9.10 (OLD-CISCO-TS-MIB) tsClrTtyLine OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "tty line to clear. Read returns the last line cleared. A value of -1 indicates no lines have been cleared." ::= { lts 10 }
示例中的值如下:
Device hostname = ponch
Read community = public
Write community = private
替换这些命令中的社区字符串和主机名。
要查找可用的 TTY 线路(包括虚拟线路)的数量,请查询对象 tsLines:
snmpwalk -c public ponch tsLines cisco.local.lts.tsLines.0 : INTEGER: 135
要列出活动 TTY 线路,请查询 tsLineActive 对象。活动 TTY 线路返回 1:
snmpwalk -c public ponch tsLineActive cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineActive.0 : INTEGER: 1 cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineActive.129 : INTEGER: 0 cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineActive.130 : INTEGER: 1 …
在路由器的命令行界面 (CLI) 上使用 show users 命令对此进行验证:
ponch#sh users Line User Host(s) Idle Location 0 con 0 idle 15:32:49 *130 vty 0 idle 00:00:00 10.61.64.9 Interface User Mode Idle Peer Address
要获取线路的类型,请查询 tsLineType 对象。这会显示用户的连接方式:
unknown(1)
console(2)
terminal(3)
line-printer(4)
auxiliary(6)
snmpwalk -c public ponch tsLineType cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineType.0 : INTEGER: console cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineType.129 : INTEGER: auxiliary cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineType.130 : INTEGER: virtual-terminal …
要确定时间线是否处于活动状态,请查询 tsLineTimeActive 对象。这是线路自激活以来经过的时间(以秒为单位):
snmpwalk -c public ponch tsLineTimeActive cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineTimeActive.0 : INTEGER: 172351 cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineTimeActive.129 : INTEGER: 0 cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineTimeActive.130 : INTEGER: 9069 …
要查看已连接到 TTY 的人员,您必须通过 TACACS 连接到设备。查询 tsLineUser 对象以查找用户名:
注意: 如果您未通过 TACACS 进行连接,则 tsLineUser 为空!
snmpwalk -c public ponch tsLineUser cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineUser.0 : DISPLAY STRING- (ascii): cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineUser.129 : DISPLAY STRING- (ascii): cisco.local.lts.ltsLineTable.ltsLineEntry.tsLineUser.131 : DISPLAY STRING- (ascii): cisco …
将此样本输出与 CLI 命令 show users 输出进行比较:
ponch#sh users Line User Host(s) Idle Location 0 con 0 idle 15:32:49 *131 vty 0 cisco idle 00:00:00 10.61.64.11 Interface User Mode Idle Peer Address
可以使用 SNMP 清除 telnet (VTY) 会话。SNMP 命令 与 clear line vty<number> 命令等效。用于清除线路的对象是 tsClrTtyLine。
通过下列命令使用 SNMP 清除 VTY 线路 132:
snmpset -c private ponch tsClrTtyLine.0 integer 132 cisco.local.lts.tcClrTtyLine.0 : INTEGER: 132
或
snmpset -c private ponch .1.3.6.1.4.1.9.2.9.10.0 integer 132 enterprises.9.2.9.10.0 = 132
要在清除线路 132 之前在路由器上对此进行检查,请在 CLI 上发出以下命令:
ponch#show users Line User Host(s) Idle Location 0 con 0 idle 05:23:17 130 vty 0 idle 1d03h 144.254.7.118 131 vty 1 idle 1d01h 144.254.7.118 132 vty 2 idle 00:04:36 144.254.8.54 *133 vty 3 idle 00:00:00 144.254.7.53 Interface User Mode Idle Peer Address
在发出以下命令后检查路由器,以确保清除线路 132:
ponch#show users Line User Host(s) Idle Location 0 con 0 idle 05:26:42 130 vty 0 idle 1d03h 144.254.7.118 131 vty 1 idle 1d01h 144.254.7.118 *133 vty 3 idle 00:00:00 144.254.7.53 Interface User Mode Idle Peer Address
线路 132 已完成清除。
注意: 请谨慎发出此命令,因为它可能会在不发出警告的情况下断开用户与设备之间的连接!